كيفية استخدام ProxySQL كموازن تحميل لخادم MySQL على نظام التشغيل أوبنتو 16.04
مقدمة
تعد عملية تحسين أداء قاعدة البيانات أحد أهم الجوانب التي يسعى إليها مسؤولو الأنظمة والمطورون في بيئات الإنتاج. من بين العديد من الحلول المتاحة، يأتي ProxySQL كأداة قوية تعمل كموازن تحميل لخوادم MySQL. فهي تتيح تحسين استجابة النظام وتقليل العبء على الخوادم الرئيسية عن طريق توزيع الحمل بين عدة خوادم MySQL.
في هذا المقال، سنتعرف على كيفية استخدام ProxySQL على نظام أوبنتو 16.04 كموازن تحميل لخوادم MySQL. سنغطي جميع الخطوات من البداية وحتى تكامل ProxySQL مع خوادم MySQL لضمان تحسين الأداء والاستجابة في بيئة الإنتاج.
ما هو ProxySQL؟
ProxySQL هو خادم وكيل (Proxy Server) يمكن أن يعمل بين تطبيقات العملاء وخوادم قاعدة البيانات، مما يساعد على توجيه استعلامات SQL إلى خوادم مختلفة بناءً على استراتيجيات محددة، مثل موازنة الحمل، أو تحسين الأداء. كما أنه يتمتع بالقدرة على تحسين استعلامات SQL، وإعادة التوجيه التلقائي عند حدوث فشل في الخوادم، وتقديم تقارير إحصائية حول أداء الخوادم.
الفوائد الرئيسية لاستخدام ProxySQL:
-
موازنة الحمل: يقوم بتوزيع الاستعلامات بين عدة خوادم MySQL لضمان توزيع الحمل بشكل متساوٍ.
-
تحسين الأداء: من خلال تخزين الاستعلامات الشائعة في الذاكرة، يمكن تحسين استجابة النظام بشكل كبير.
-
المرونة: يدعم ProxySQL تقنيات متعددة لموازنة الحمل مثل round-robin، و least-connections، وغيرها.
-
التكرار والموثوقية: في حالة حدوث مشكلة في أحد الخوادم، يقوم ProxySQL بإعادة توجيه الاستعلامات إلى الخوادم الأخرى.
الخطوة الأولى: تثبيت ProxySQL على أوبنتو 16.04
في البداية، يجب تثبيت ProxySQL على جهاز أوبنتو 16.04. لنبدأ بتحديث النظام:
bashsudo apt-get update sudo apt-get upgrade
ثم قم بتثبيت ProxySQL باستخدام الأمر التالي:
bashsudo apt-get install proxysql
بعد اكتمال عملية التثبيت، تحقق من تثبيت ProxySQL بنجاح عن طريق تشغيل الأمر:
bashproxysql --version
الخطوة الثانية: إعداد خوادم MySQL
قبل إعداد ProxySQL، من الضروري أن يكون لديك على الأقل خادم MySQL يعمل في بيئة إنتاجية. إذا لم يكن لديك خوادم MySQL جاهزة، يمكنك تثبيت MySQL على نفس الجهاز أو على جهاز آخر. افترض أنك تستخدم MySQL 5.7 على أوبنتو 16.04، يمكنك تثبيته عبر:
bashsudo apt-get install mysql-server
تأكد من تشغيل خوادم MySQL عبر التحقق من حالة الخدمة:
bashsudo systemctl status mysql
الخطوة الثالثة: تكوين ProxySQL
بعد تثبيت ProxySQL، تحتاج إلى تكوينه لتوجيه الاستعلامات إلى خوادم MySQL. للقيام بذلك، يجب تعديل إعدادات ProxySQL.
-
إعداد الاتصال بـ ProxySQL:
افتح قاعدة البيانات الإدارية لـ ProxySQL عبر الأداةmysql:bashmysql -u root -p -h 127.0.0.1 -P 6032بعد الدخول إلى الواجهة، يمكنك بدء عملية التكوين.
-
إضافة خوادم MySQL إلى ProxySQL:
أولاً، قم بإضافة خوادم MySQL إلى جدول خوادم ProxySQL باستخدام الاستعلام التالي:sqlINSERT INTO mysql_servers (hostgroup_id, hostname, port) VALUES (0, 'mysql1.example.com', 3306); INSERT INTO mysql_servers (hostgroup_id, hostname, port) VALUES (1, 'mysql2.example.com', 3306);في هذا المثال، لدينا خادمان MySQL يعملان على المضيفين
mysql1.example.comوmysql2.example.com، واللذين يتم إضافتهما إلى ProxySQL. -
إعداد موازنة الحمل:
يمكنك الآن تكوين استراتيجية موازنة الحمل. في هذا المثال، سنستخدم أسلوب round-robin حيث يتم توزيع الاستعلامات بشكل دوري بين الخوادم:sqlUPDATE mysql_servers SET weight = 100 WHERE hostname IN ('mysql1.example.com', 'mysql2.example.com'); -
إعداد قواعد التوجيه:
يمكنك الآن إضافة قواعد التوجيه في ProxySQL لتوجيه الاستعلامات إلى مجموعات معينة من الخوادم بناءً على نوع الاستعلام:sqlINSERT INTO mysql_query_rules (rule_id, match_pattern, destination_hostgroup) VALUES (1, '^SELECT', 0); -
تفعيل التغييرات:
بعد إدخال التعديلات، تأكد من إعادة تحميل القواعد وتحديث الإعدادات:sqlLOAD MYSQL SERVERS TO RUNTIME; LOAD MYSQL QUERY RULES TO RUNTIME; SAVE MYSQL SERVERS TO DISK; SAVE MYSQL QUERY RULES TO DISK;
الخطوة الرابعة: اختبار تكامل ProxySQL مع MySQL
بعد تكوين ProxySQL، يجب اختبار الاتصال بين ProxySQL وخوادم MySQL للتأكد من أن الموازنة تتم بشكل صحيح.
-
التحقق من الاتصال:
يمكنك التحقق من حالة الخوادم عبر الاتصال بقاعدة البيانات باستخدام الأدوات المناسبة مثلmysql:bashmysql -u root -h 127.0.0.1 -P 6033ثم تأكد من أن الاستعلامات يتم توزيعها على الخوادم بشكل صحيح.
-
اختبار الأداء:
لاختبار فعالية ProxySQL في موازنة الحمل، يمكنك تشغيل عدة استعلامات متوازية والتحقق من توزيع الحمل بين الخوادم:bashab -n 1000 -c 10 http://127.0.0.1:6033حيث يقوم الأمر أعلاه بمحاكاة 1000 طلب بتوازي 10 طلبات في نفس الوقت. يمكنك مراقبة الأداء باستخدام أدوات مثل
htopأوmysqladmin.
الخطوة الخامسة: الصيانة والرقابة
من المهم متابعة حالة ProxySQL بشكل دوري لضمان استقرار النظام. يوفر ProxySQL العديد من الأدوات والإحصائيات التي يمكن استخدامها لمراقبة أداء الخوادم والتأكد من التوزيع السليم للأحمال.
-
مراقبة الأداء:
يمكنك التحقق من إحصائيات ProxySQL من خلال استعلامات SQL مثل:sqlSELECT * FROM stats_mysql_query_digest;توفر هذه الاستعلامات معلومات شاملة حول الاستعلامات التي تم تنفيذها والأداء العام لخوادم MySQL.
-
إعادة تحميل التكوينات:
إذا كان هناك أي تغيير في التكوينات، يجب إعادة تحميل التغييرات باستخدام الأوامر التالية:sqlLOAD MYSQL SERVERS TO RUNTIME; LOAD MYSQL QUERY RULES TO RUNTIME;كما يجب التأكد من حفظ التغييرات إلى القرص:
sqlSAVE MYSQL SERVERS TO DISK; SAVE MYSQL QUERY RULES TO DISK;
الختام
يعد ProxySQL أداة فعالة لتحسين أداء قاعدة البيانات، خاصة في بيئات الإنتاج ذات الازدحام العالي. من خلال تكوينه بشكل صحيح كموازن تحميل لخوادم MySQL، يمكنك تحسين استجابة النظام، وتوزيع الأحمال بشكل عادل بين الخوادم المختلفة، وبالتالي تحسين تجربة المستخدم والموثوقية في النظام. من خلال استخدام ProxySQL على نظام أوبنتو 16.04، يتم الحصول على حل مرن وقوي يدعم أعباء العمل المتزايدة مع الحفاظ على الأداء العالي للنظام.

