PmaControl logo PmaControl
  • مرحباً
  • PmaControl
    • وكلاء الذكاء الاصطناعي 13 وكلاء محليين
    • عروضنا المجتمع، السحابة، محليًا، المميز
    • التوثيق أدلة، API، الهندسة المعمارية
    • سجل التغييرات كل إصدارات 5.x المستقرة
    • السوق المكونات الإضافية للمجتمع
    • عملاء أكثر من 28 شركة
    • الأسئلة الشائعة 25 سؤالا / 7 فئات
    قواعد البيانات
    • ماريا دي بي 34 articles
    • ماي إس كيو إل 14 articles
    • مجموعة جاليرا 6 عناصر
    • ماكس سكيل 4 عناصر
    • ProxySQL 3 عناصر
    • أمازون أورورا ماي إس كيو إل 0 العناصر
    • قاعدة بيانات أزور 0 العناصر
    • انقر البيت 0 العناصر
    • GCP CloudSQL 0 العناصر
    • بيركوناسيرفر 0 العناصر
    • متجر واحد 0 العناصر
    • تي دي بي 0 العناصر
    • سرعة 0 العناصر
    الحلول
    • دعم 24 × 7 حالات الطوارئ MariaDB وMySQL
    • Observabilité SQL المراقبة والتنبيهات والطوبولوجيا
    • Haute disponibilité النسخ المتماثل، تجاوز الفشل، جاليرا
    • Disaster Recovery النسخ الاحتياطي والاستعادة، RPO/RTO
    • Sécurité & conformité التدقيق، اللائحة العامة لحماية البيانات، SOC2
    • Migration & upgrade صفر توقف عن العمل، pt-osc، gh-ost
  • عروضنا
  • موارد
    • التوثيق الأدلة الفنية وواجهات برمجة التطبيقات
    • مركز تحسين MySQL مؤشر تخفيض السعر والمقاييس والإعدادات والحوادث
    • الأسئلة الشائعة 25 سؤالا متكررا
    • الشهادات ملاحظات العملاء وحالات الاستخدام
    • مدونة مقالات ورؤى
    • خريطة الطريق الميزات القادمة
    مجالات الخبرة
    • Observabilité SQL المراقبة والتنبيهات وطوبولوجيا Dot3
    • Haute disponibilité النسخ المتماثل، تجاوز الفشل، جاليرا
    • Sécurité & conformité التدقيق، اللائحة العامة لحماية البيانات، SOC2، ISO 27001
    • Disaster Recovery النسخ الاحتياطي والاستعادة، RPO/RTO
    • Performance & optimisation ملخصات، شرح، ضبط
    • Migration & upgrade صفر توقف عن العمل، pt-osc
    روابط سريعة
    • جيثب ويكي 26 صفحة - التثبيت والمحرك والمكونات الإضافية
    • كود المصدر مستودع جيثب الرسمي
    • دعم 24 × 7 حالات الطوارئ MariaDB وMySQL
    • احجز عرضًا توضيحيًا 30 دقيقة - هندسة معمارية حقيقية
  • دعم 24 × 7
  • احجز عرضًا توضيحيًا
احجز عرضًا توضيحيًا
🇫🇷 FR Français 🇬🇧 EN English 🇵🇱 PL Polski 🇷🇺 RU Русский 🇨🇳 ZH 中文 🇸🇦 AR العربية
← العودة إلى بلوق

ProxySQL من 2.7 إلى 3.0: تدقيق الذاكرة المؤقتة في PmaControl أسرع بنحو 4 مرات

تم النشر بتاريخ 27 سبتمبر 2026 بواسطة Aurélien LEQUOY
pmacontrol proxysql benchmark mariadb mysql observability
يشارك X LinkedIn Facebook Email PDF
ProxySQL من 2.7 إلى 3.0: تدقيق الذاكرة المؤقتة في PmaControl أسرع بنحو 4 مرات

لاحظنا تحسناً واضحاً أثناء اختبارات الأداء في PmaControl: انخفض متوسط زمن فحص الذاكرة المؤقتة الكامل نفسه من 8.112 إلى 2.015 مللي ثانية بين بنائي ProxySQL 2.7.3 و3.0.5 اللذين اختبرناهما. هذا يعني وقتاً أقل بنسبة 75.16%، أي أن متوسط الزمن أصبح أقصر بمقدار 4.03 مرات.

ننشر الأرقام وتعريفها والاستعلامات ومنهجية القياس لتوضيح معنى هذه النتيجة بدقة. المهمة المقاسة هي فحص فعالية الذاكرة المؤقتة الذي ينفذه PmaControl عبر واجهة Admin في ProxySQL.

النتائج عند تنفيذ العمل نفسه

المقياس ProxySQL 2.7.3 ProxySQL 3.0.5 انخفاض الزمن
المتوسط, ms/audit 8.112204 2.014760 75.16 %
وسيط متوسطات الدفعات, ms/audit 7.895812 2.053810 73.99 %
أكبر متوسط للدفعات, ms/audit 11.914402 2.919234 75.50 %
ذروة الذاكرة المخصصة لـ PHP بوحدة MiB 4 4 دون تغيير

الأزمنة في الجدول بوحدة ms/audit، أي مللي ثانية لكل تدقيق، باستثناء مقياس الذاكرة. يُحسب الوسيط والحد الأقصى من 15 متوسطاً لدفعات تحتوي كل منها على 10 عمليات تدقيق. لذلك لا يمثل الحد الأقصى أبطأ استدعاء فردي ولا إحدى النسب المئينية لزمن الاستجابة. تحتفظ ملفات البيانات بالدقة الأصلية، بينما يقرّب الرسم الأزمنة إلى ثلاث منازل عشرية.

تشير ذروة 4 MiB إلى الذاكرة المخصصة لعملية PHP، ولا تقيس استهلاك خادم ProxySQL للذاكرة.

اختبار PmaControl: ProxySQL 2.7.3 بزمن 8.112 ms/audit مقابل 2.015 ms/audit للإصدار 3.0.5 مع المنهجية والنطاق

ماذا تعني وحدة ms/audit

يعني التدقيق هنا استدعاءً كاملاً واحداً للدالة QueryCacheEffectiveness::run()، وليس جميع الفحوص الخاصة بالخادم. ينفذ الفحص استعلامي SELECT للقراءة فقط: يقرأ الأول قواعد التخزين المؤقت النشطة وعدادات مطابقتها، ويقرأ الثاني عدادات الذاكرة المؤقتة والحجم المضبوط. تعيد بيانات الاختبار صفاً واحداً ثم سبعة صفوف.

يشمل المؤقت فحص PHP بالكامل: تنفيذ استعلامات SQL الأصلية، والاتصال عبر loopback، وجلب النتائج ومعالجتها في PmaControl. يبقى إنشاء الاتصال الأولي وتشغيل عملية PHP وHTTP وعرض الواجهة خارج نافذة القياس. هذه أزمنة مرصودة من جهة العميل، ولا تعزل زمن التنفيذ الداخلي في ProxySQL.

فيما يلي الاستعلامان مع تنسيق يسهل قراءتهما. المنطق نفسه مستخدم في كلا الإصدارين.

SELECT r.rule_id, r.cache_ttl, r.digest,
       r.match_digest, r.match_pattern,
       COALESCE(h.hits, 0) AS hits
FROM runtime_mysql_query_rules r
LEFT JOIN stats_mysql_query_rules h
       ON h.rule_id = r.rule_id
WHERE r.active = 1 AND r.cache_ttl > 0
ORDER BY r.rule_id;
SELECT Variable_Name AS name, Variable_Value AS value
FROM stats_mysql_global
WHERE Variable_Name IN (
    'Query_Cache_count_GET', 'Query_Cache_count_GET_OK',
    'Query_Cache_count_SET', 'Query_Cache_Memory_bytes',
    'Query_Cache_Entries', 'Query_Cache_Purged'
)
UNION ALL
SELECT variable_name, variable_value
FROM global_variables
WHERE variable_name = 'mysql-query_cache_size_MB';

يحسب الحقل stats_mysql_query_rules.hits مرات مطابقة القاعدة، وليس إصابات الذاكرة المؤقتة المنسوبة إلى تلك القاعدة. عدادات الذاكرة المؤقتة تراكمية ولا تكفي وحدها لتحديد معدل إصابات حديث. القيمة mysql-query_cache_size_MB المقروءة من MAIN هي هدف مضبوط لعملية التنظيف وليست حداً صارماً؛ ولا يتحقق هذا الفحص من قيمتها في runtime.

منهجية اختبار الأداء

استخدم اختبار المصدر آلة افتراضية مشتركة للاختبار تعمل بنظام Ubuntu 24.04.4 LTS، مع 2 vCPU و4 GiB من RAM وPHP 8.4.26. استخدمت الاتصالات loopback وبنائي ProxySQL الأصليين التاليين:

  • 2.7.3-12-g50b7f85 لسلسلة 2.7؛
  • 3.0.5-60-g7e9e009 لسلسلة 3.0.

تتضمن البيانات المنشورة لكل إصدار 15 دفعة من 10 عمليات تدقيق مقاسة، بعد 3 استدعاءات للإحماء لكل دفعة: أي 150 عملية تدقيق كاملة لكل إصدار، و300 إجمالاً، و600 استعلام SELECT. كود PHP المساعد ونصوص SQL متطابقة؛ وتُفحص بصمة الكود وأعداد الصفوف المعادة في كل دفعة واستدعاء.

تناوبت التجربة الأصلية بين نسختي PmaControl القديمة والمصححة في 15 زوجاً من نوع AB/BA، مع عملية PHP منفصلة لكل نسخة. تختار هذه المقالة النسخة المصححة فقط. داخل كل عملية اختُبر ProxySQL 2.7.3 قبل 3.0.5: لم يتناوب ترتيب إصداري ProxySQL. الأعداد البالغة 600 استدعاء و900 SELECT في التجربة الكاملة، التي تشمل النسخة القديمة، ليست أحجام عينات المقارنة المعروضة هنا.

لماذا نقارن الفحص الكامل

رافق الاختبار إصلاحاً وظيفياً: كانت قاعدة صالحة ذات معرّف بإشارة rule_id=-1 وTTL مقداره 5,000 مللي ثانية تؤدي سابقاً إلى إيقاف الفحص بعد القراءة الأولى. كان الفحص يبلغ خطأً عن عدم توفر الإحصاءات، ولم يكن يصل إلى الاستعلام الثاني.

مقارنة تلك النتيجة الناقصة بالفحص المصحح تعني مقارنة مقدارين مختلفين من العمل. لذلك نستخدم الكود المساعد المصحح نفسه على إصداري ProxySQL، مع القراءتين والملاحظات الكاملة. التحسن المنشور يقارن بنيتي ProxySQL في هذا السيناريو، ولا يُنسب إلى إصلاح التحقق في PmaControl. أُعيد التحقق من القياسات الموجودة، ولم نشغّل اختبار أداء جديداً من أجل هذه المقالة.

ما الذي يمكن استنتاجه من هذا التحسن

في هذه البيئة، كان المتوسط ووسيط متوسطات الدفعات وأكبر متوسط للدفعات أقل على بناء 3.0 المختبر. بقيت ذروة الذاكرة المخصصة لـ PHP دون تغيير. إنه تحسن قابل للقياس في مهمة مراقبة.

تخص النتيجة آلة افتراضية مشتركة ومجموعات نتائج صغيرة وفحصاً محدداً. وهي لا تثبت معدل معالجة استعلامات التطبيقات أو تأخر توجيه frontend أو تحقق التحسن نفسه تحت تزامن مرتفع. لا يفصل الاختبار مراحل الخادم prepare/step/copy/finalize، ولا يثبت زمناً لـ SQL دون 1 مللي ثانية، ولا يقيّم سعة الإنتاج أو متانة حفظ البيانات. لم يُحدد مجال ثقة إحصائي، وترتيب الإصدارات ثابت.

ضمن هذا النطاق، استغرق فحص الذاكرة المؤقتة الكامل في المتوسط نحو ربع الزمن. تحسن جميل يا ProxySQL!

إعادة حساب النتائج

تحتوي البيانات العامة على الدفعات الثلاثين المختارة، و300 مدة فردية، وأعداد الصفوف وبيانات المنهجية. أزيلت المسارات الداخلية والرسائل التشخيصية، وبقيت القياسات دون تغيير. يستخدم سكربت Python المكتبة القياسية فقط لإعادة حساب الجدول، ولا يعيد تشغيل اختبار الأداء.

يُحسب انخفاض الزمن بالصيغة 100 × (1 − time_3.0 / time_2.7)، والنسبة بالصيغة time_2.7 / time_3.0. جميع الدفعات متساوية الحجم. تحدد البصمة أدناه الكود المساعد الذي حُمّل فعلياً؛ ويشير commit إلى مراجعة طلب الدمج التي تحتوي على هذا التنفيذ.

curl -fsSLO https://pmacontrol.com/downloads/proxysql-2.7-vs-3.0/benchmark-data.json
curl -fsSLO https://pmacontrol.com/downloads/proxysql-2.7-vs-3.0/analyze.py
python3 analyze.py benchmark-data.json
PmaControl revision:
b4e7b4c6ca72cf27077ddbdb1f2c89af05800b5a
QueryCacheEffectiveness helper SHA-256:
c47a169935f665259554bd0fbaa85e90af9cbcd3983bf7ad3548e2caaf63d4dc

الرسوم والمشاركة والمصادر

  • الرسم الكامل بصيغة PNG بأبعاد 1600 × 2000
  • مصدر SVG قابل للتعديل يتضمن جميع العناصر
  • بيانات اختبار الأداء بصيغة JSON
  • سكربت Python لإعادة الحساب
  • منشور LinkedIn باللغة الإنجليزية
  • أرشيف الرسوم وسكربتات إنشائها

الرسم باللغة الإنجليزية لتسهيل مشاركته، وتعرض هذه المقالة جميع تفسيراته وقياساته. يتيح زر PDF في الصفحة أيضاً تصدير المقالة مع صورها.

العمل الأصلي: طلب دمج PmaControl رقم 6389 وتذكرة النشر رقم 6390. تتطلب روابط Forgejo هذه صلاحية الوصول إلى المستودع، بينما الملفات القابلة للتنزيل أعلاه عامة.

يشارك X LinkedIn Facebook Email PDF
← العودة إلى بلوق

تعليقات (0)

لا توجد تعليقات حتى الآن.

اترك تعليقا

الصق لقطة شاشة باستخدام Ctrl+V (أو Cmd+V على Mac) أو اختر صورة.

حتى 3 صور، بحد أقصى 2 ميبيبايت لكل صورة.

PmaControl
+33 6 63 28 27 47 contact@pmacontrol.com
إشعارات قانونية GitHub اتصال
لا تنتظر وقوع الحادث حتى تفهم هندستك المعمارية. © 2014-2026 PmaControl — 68Koncept