MySQL هو واحد من أكثر أنظمة إدارة قواعد البيانات العلائقية مفتوحة المصدر شعبيةً. إنه يقوّى العديد من أكثر خدمات وتطبيقات الويب زيارةً في العالم. مع نمو الاستخدام، يصبح توليف الأداء أمرًا أساسيًا لتحسين أداء MySQL وتجنّب المشاكل مثل بطء الاستعلامات.
Mysqltuner هو برنامج Perl مفتوح المصدر يُساعد في تحليل وتوليف أداء MySQL. إنه يوفر توصيات التكوين والأداء لتحسين أداء MySQL. في هذا الدليل الشامل، سنغطي:
نظرة عامة على mysqltuner
mysqltuner هو برنامج Perl كتبه ويحافظ عليه Major Hayden. إنه يتصل بـ MySQL ويشغّل تشخيص الأعطال ويوفر نصائح التكوين والتوليف لتحسين الأداء.
تتضمن الميزات الرئيسية لـ mysqltuner:
- تشخيص مشاكل أداء MySQL بسرعة
- اقتراح تغييرات التكوين لتحسين الأداء
- التوصية بالترقيات المادية للتثبيتات الكبيرة
- رصد الذاكرة والجداول المؤقتة ومعدل إصابة ذاكرة التخزين والملفات المفتوحة والمقاييس الأخرى
- تقدير اتجاهات النمو باستخدام الإحصاءات التاريخية
- توليد تقرير مع كل المقاييس والنصائح
mysqltuner سهل الاستخدام ويوفر توصيات واضحة وعملية. إنه أداة قيّمة لرصد أداء MySQL وتوليفه.
تثبيت mysqltuner
mysqltuner هو برنامج Perl مستقل. لتثبيته:
- قم بتثبيت Perl إذا لم يكن مثبتًا بالفعل:
$ sudo apt install perl
- قم بتنزيل أحدث برنامج mysqltuner:
$ wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
- جعل البرنامج قابلاً للتنفيذ:
$ chmod +x mysqltuner.pl
- إعادة تسمية البرنامج ونقله اختياريًا:
$ sudo mv mysqltuner.pl /usr/local/bin/mysqltuner
الآن أصبح mysqltuner مثبّتاً وجاهزًا للاستخدام!
استخدام mysqltuner لتوليف الأداء
استخدام mysqltuner بسيط. ما عليك سوى تشغيل البرنامج مع بيانات اعتماد MySQL الخاصة بك:
$ mysqltuner --host localhost --user root --pass password
سيتصل هذا بخادم MySQL على localhost كمستخدم root ويشغّل التشخيص ويطبع تقريرًا.
لحفظ التقرير في ملف:
$ mysqltuner --host localhost --user root --pass password > mysqlreport.txt
تتضمن الخيارات الرئيسية:
--host
– اسم مضيف MySQL--user
– اسم مستخدم MySQL--pass
– كلمة مرور MySQL--silent
– إخفاء نقاط التقدم أثناء المعالجة--nobad
– إزالة النصائح السيئة من التقرير النهائي--nogood
– إزالة النصائح الجيدة من التقرير النهائي--forcemem
– كمية ذاكرة الوصول العشوائي المثبتة بالميغابايت
استعرض التقرير للحصول على نصائح أداء وطبّق التوصيات. أعد تشغيل mysqltuner دوريًا لرصد التغييرات مع مرور الوقت.
تفسير توصيات mysqltuner
يحتوي تقرير mysqltuner على العديد من المقاييس والاقتراحات. فيما يلي بعض المجالات الرئيسية للتركيز عليها:
مقاييس الأداء
- وقت التشغيل – مدى تشغيل MySQL دون انقطاع. أوقات التشغيل الطويلة تشير إلى الاستقرار.
- مجموع المخابئ – إجمالي الذاكرة المخصصة لتخزين مؤشرات وجداول في الذاكرة المخبأة. كلما ارتفع، كان أفضل.
- الملفات المفتوحة – عدد الملفات المفتوحة. العديد من الملفات المفتوحة يمكن أن يشير إلى مشاكل في الفهرسة.
- معدل إصابة ذاكرة التخزين – ابحث عن معدل إصابة عالٍ، مثاليًا أكثر من 99٪. معدلات أقل تشير إلى الحاجة إلى ضبط.
اقتراحات التكوين
- الاستخدام الأقصى للذاكرة – زده إذا سمحت الذاكرة المتاحة بتحسين الأداء.
- حجم مخبأ المفتاح – زده إن أمكن لتحسين استخدام الفهرسة.
- ذاكرة تخزين الجداول – زدها لتجنب حدود فتح الملفات.
- حجم مخبأ خيوط – زده لتجنب تكاليف إنشاء الخيوط.
اقتراحات الأجهزة
- الذاكرة – أضف المزيد من الذاكرة إذا لزم الأمر لدعم مخابئ ذاكرة إضافية.
- وحدات المعالجة المركزية – قلل حمل وحدة المعالجة المركزية أو أضف نوى إذا كان استخدام وحدة المعالجة المركزية مرتفعًا.
- التخزين – يساعد التخزين السريع على تحسين أداء الإدخال/الإخراج.
أداء الاستعلام
- الاستعلامات البطيئة – ولِّف الاستعلامات المكلفة وأضف فهارس عند الحاجة.
- الجداول المؤقتة – يمكن أن تشير جداول مؤقتة عالية إلى فهارس غير مثالية.
تنفيذ توصيات mysqltuner
فيما يلي بعض الخطوات للتصرف بناءً على توصيات mysqltuner وتوليف أداء MySQL:
- ضبط تخصيص الذاكرة – إذا توفرت المزيد من الذاكرة، زد حجم مخبأ المفاتيح وحجم مخبأ الاستعلام وحجم تخزين مجموعة InnoDB وذاكرة تخزين الجداول. هذا يسمح لـ MySQL بالاحتفاظ بالمزيد من الفهارس والبيانات في الذاكرة.
- تحسين الاستعلامات البطيئة – استعرض الاستعلامات البطيئة وأضف فهارس و ولِّف الوصلات المكلفة أو الاستعلامات الفرعية. هذا يحسن الإنتاجية الإجمالية بشكل كبير.
- تحسين الفهرسة – فحص استخدام الفهرسة باستخدام أدوات مثل EXPLAIN. أضف الفهارس اللازمة وأزل غير المستخدمة. انتبه إلى حجم مخبأ المفتاح.
- ضبط التوازي – ولِّف حجم مخبأ الخيوط والاتصالات القصوى وخيوط العمل وإعدادات التوازي الأخرى. ابحث عن القيم المثالية.
- تحسين التخزين – تأكد من أن نظام التخزين لديه عرض نطاق إدخال/إخراج ومعدل نقل بيانات كافٍ لحمل العمل. يوفر التخزين على وحدات ذاكرة فلاشية جودة عالية مكاسب ضخمة.
- تحجيم الخادم – حجم موارد الخادم مثل نوى وحدة المعالجة المركزية والذاكرة والتخزين بشكل صحيح مع نمو قاعدة البيانات. راقب اتجاهات النمو.
- أفضل ممارسات التكوين – استعرض الإعدادات بالمقارنة مع القيم الموصى بها مثل ذاكرة تخزين الجداول وحجم مخبأ الوصلة وحجم مخبأ الاستعلام وما إلى ذلك.
- المراجعة الدورية – أعد تشغيل mysqltuner كل بضعة أسابيع. نفّذ توصيات إضافية حسب الحاجة.
مع الضبط الدؤوب الموجَّه بواسطة mysqltuner، يمكنك تحسين أداء MySQL للتعامل مع أحمال عمل ثقيلة وتقديم أقصى أد
شرح برنامج MySQLTuner
برنامج mysqltuner.pl مهيكل بشكل جيد ومعلّق عليه بشكل موسع. دعنا نستعرض الأقسام الرئيسية لفهم ما يفعله تحت الغطاء:
الاتصال الأولي
- يستورد وحدات لاتصالات قاعدة البيانات وتنسيق النصوص والإحصاءات
- يعالج حجج سطر الأوامر
- يجري اتصال قاعدة بيانات باستخدام بيانات الاعتماد المقدمة
جمع البيانات
- يهيئ المتغيرات للحسابات
- ينفذ أوامر SHOW لجمع التكوين
- ينفذ استعلامات على INFORMATION_SCHEMA للمقاييس
- يحسب النسب والإصابات والأخطاء والمجاميع على المقاييس
التحليل وإعداد التقارير
- يتحقق من المقاييس مقابل العتبات الموصى بها
- يقارن تقرير mysqltuner الحالي والسابق إن وجد
- يطبع متغيرات التكوين ومقاييس الجدول
- يقدم اقتراحات حول الأجهزة والتكوين والفهرسة
- ينسق إخراج التقرير ويسلط الضوء على المشاكل
تنظيف الاتصال
- يغلق اتصال قاعدة البيانات
- يخرج بنجاح
هذا يوضح التدفق الأساسي – الاتصال وجمع البيانات والتحليل وطباعة التقرير وقطع الاتصال. يتم القيام بالجزء الأكبر من العمل من خلال أقسام جمع البيانات والتحليل. يعتمد MySQLTuner على أوامر SHOW واستعلامات INFORMATION_SCHEMA للحصول على قيم التكوين ومقاييس الأداء.
طرق استخدام MySQLTuner
بالإضافة إلى الضبط العشوائي، فيما يلي طرق جيدة أخرى للاستفادة من mysqltuner:
اختبار التطبيقات – شغّل mysqltuner على بيئات التطوير والمرحلية والإنتاج لمقارنة التكوينات. ولِّف كل بيئة بدقة.
خادم قاعدة بيانات جديد – أنشئ تقرير أساسي بعد توفير خادم قاعدة بيانات جديد. استخدمه للتحجيم والضبط الأولي.
اتجاهات الأداء – نفّذ mysqltuner مع مرور الوقت واحفظ التقارير. تحقق من الاتجاهات مع نمو قاعدة البيانات.
بعد الترقية – كيف الأداء بعد ترقية MySQL أو نظام التشغيل؟ شغّل mysqltuner للتحقق.
التحول إلى الحوسبة السحابية – هل تقوم بالتحول من أجهزة مادية إلى الحوسبة السحابية؟ يساعد تقرير mysqltuner في تحديد الحجم الصحيح للخادم.
التخطيط للسعة – هل تخطط لتوسعة التخزين أو الذاكرة أو الحوسبة؟ يشير mysqltuner إلى الموارد اللازمة.
التشخيص – إذا كان MySQL بطيئًا، شغّل mysqltuner للمساعدة في كشف الاختناقات.
توضح هذه الأمثلة التطبيق الواسع لـ mysqltuner لمختلف سيناريوهات المراقبة والضبط.
بدائل أدوات الضبط
بينما mysqltuner سهل الاستخدام ومميز، توجد أدوات ضبط MySQL أخرى يجب النظر فيها:
- Percona Toolkit – مجموعة أدوات مفتوحة المصدر متقدمة مع pt-mysql-summary و pt-query-digest.
- MySQL Enterprise Monitor – لوحة معلومات قائمة على واجهة رسومية للمقاييس والمستشارين.
- MySQL Query Analyzer – تتبع أداء الاستعلام مع مرور الوقت.
- EXPLAIN ANALYZE – إحصاءات المحسن لاختيار خطط استعلام أفضل.
- Performance Schema – بيانات أداء MySQL مفصلة للغاية.
يشكل mysqltuner نقطة انطلاق ممتازة بسبب سهولة الاستخدام ووضوح النتائج. كمله مع أدوات أخرى توفر قدرات التعمق للضبط المتقدم.
الخاتمة
mysqltuner أداة لا تقدر بثمن لمراقبة وضبط أداء MySQL. إنه يشخص المشاكل بسرعة ويقدم اقتراحات واضحة وعملية للتحسين.
اتباع نصائح mysqltuner يمكن أن يساعد في حل أو تجنب العديد من فخاخ الأداء الشائعة في MySQL. إنه أداة أساسية لأي مدير قاعدة بيانات أو مطور تطبيقات يستخدم MySQL في الإنتاج.
الاستخدام المتسق لـ mysqltuner وأدوات تكميلية أخرى سيحسّن كفاءة قاعدة البيانات ويقلل من تكاليف البنية التحتية ويوفر أفضل تجربة للتطبيقات ومستخدميها.