أداء لينكس / المتوسط: الآلية والتشخيص النطاقي / الدرس 12
ربط أدلة لينكس بانتظار التطبيق
اربط مراحل الطلب ومجمعات الاتصال وانتظار القاعدة والمضيف قبل لوم مورد نظام عام.
في هذه الصفحة
أهداف الدرس
- بناء خط زمني مشترك بين التطبيق والنظام.
- فصل انتظار مجمع الاتصال من تنفيذ القاعدة.
- اختبار فرضيات تراعي الحمل وتحفظ الصحة.
البدء بالمسار الحرج للطلب
قد ينتظر التقرير القبول والعامل والمجمع والاستعلام والنقل والتسلسل والرد. ليس أطول مقطع بالضرورة السبب الأصلي؛ قد يمتلئ المجمع لبطء الاستعلامات. سجل الوقت والفئة والنتيجة ومعرفات الربط دون الحمولة الحساسة. حاذ الساعات واحتفظ بعدم اليقين. تصف مقاييس لينكس السياق والمقاطع موقع الانتظار؛ لا يكمل أحدهما السببية وحده. قارن مجتمعاً سليماً بالمتأثر.
المجمع طابور وحد تزامن
يختلف انتظار المجمع عن زمن القاعدة. قد تقلل زيادته المحلي وتغرق القاعدة بالتزامن، وقد يهدر صغره اعتماداً سليماً. تحتاج الإجابة قياساً لا حجماً عاماً. افحص العمر والنشط والمهل وعمر المعاملة والتشبع. قد يستنفد اتصال محتجز أثناء عمل آخر المجمع دون استعلام مكلف. افصل الوصول من المعاملات المكتملة واحفظ العزل والديمومة.
استخدام لغة انتظار القاعدة نفسها
قد تنتظر القاعدة أقفالاً أو سجل ديمومة أو قراءات أو مخبأ أو معالجاً أو العميل. لا ينفي خمول المعالج تسلسل المعاملة أو حجب مالك القفل. يغير حجم المدخل الطلب ولو ثبت SQL. استخدم الإحصاء والخطط المدعومة واعرف ما ينفذ. يفحص EXPLAIN دون ANALYZE خطة PostgreSQL بينما ينفذ الآخر العبارة. لا نشغل استعلامات إنتاج أو ضبط محرك هنا.
EXPLAIN SELECT report_id FROM lab_reports WHERE state = 'ready';
SQL لمختبر PostgreSQL مهيأ ويحذف ANALYZE عمداً. يستخدم التخطيط موارد ويحتاج تصريحاً؛ لا نخترع خطة أو نتيجة أداء.
ربط الأدلة في فترات متطابقة
إذا ارتفع انتظار القاعدة مع كمون الكتل والضغط فافحص التخزين والمزيج. وإذا ارتفعت الأقفال وسلم الجهاز فحدد المعاملة المالكة. وإذا ارتفع حساب التسلسل فقد لا يفيد الفهرس. حدد العملية ومجموعتها مع مراعاة مشاركة القاعدة. احفظ الأخطاء والمحاولات لتضخيمها الطلب. يقترح الارتباط آلية للاختبار لا يثبت السببية.
pidstat -u -r -d -p 4242 1 5
cat /proc/pressure/cpu
cat /proc/pressure/io
المعرف افتراضي والأوامر غير قابلة للتشغيل. اربط الفترات بأوقات التطبيق وانتظار المحرك ولا تساو بايتات العملية بكل عمل التخزين.
اختبار تغيير بطبقة تفسر التأخير
قد يفيد تقليل النتائج أو فهرس صحيح أو معاملة أقصر أو دفعة أو قبول أكثر من معاملات النواة. اختبر بيانات مؤقتة ممثلة واحفظ الدلالة. لا تثبت طاولة فارغة سرعة الحجم الحقيقي ولا المخبأ الدافئ كل التعافي. قارن الكمون والمعاملات والأقفال والأخطاء والموارد. سجل الخطة والإصدارات كي لا يبطل تحديث الإحصاء أو النشر الاستنتاج خفية.
الأخطاء الشائعة وإصلاحها
زيادة كل المجمعات بعد المهل
- لماذا يحدث؟
- أُهملت السعة وعمر المعاملة.
- كيف تصلحه؟
- افصل الانتظارين واختبر طلباً محدوداً.
- كيف تتجنب تكراره؟
- عامل المجمع حدود قبول.
تشغيل ANALYZE دون قصد
- لماذا يحدث؟
- افتُرض أن طلب الخطة لا ينفذ.
- كيف تصلحه؟
- استخدم الفحص غير المنفذ الموثق.
- كيف تتجنب تكراره؟
- راجع الآثار قبل التشخيص.
لوم لينكس على قيد قفل
- لماذا يحدث؟
- حلت المقاييس العامة محل أدلة المعاملة.
- كيف تصلحه؟
- حدد المالك ومسار المعاملة.
- كيف تتجنب تكراره؟
- اجمع المراحل وانتظار المحرك مع المضيف.
اختبر فهمك
1. ينمو انتظار المجمع بعد تضاعف الاستعلام. لماذا لا تصلحه الزيادة تلقائياً؟
اعرض الحل المشروح
قد تضيف الاتصالات عملاً للمرحلة الأبطأ فتزيد الانتظار. حدد سبب نمو الخدمة وافحص السعة وقارن قبولاً أو إصلاح استعلام بالدلالة نفسها.
2. المعالج خامل ومعاملة تمنع كثيرين. ماذا يحفظ الفحص؟
اعرض الحل المشروح
التقط عمر المعاملة وعلاقات القفل وانتظار المالك وربط الطلب والتخزين أو التطبيق. لا يجعل الخمول المالك غير ضار. احفظ الآلية قبل الاسترداد.
أهم ما تعلمته
- تتبع المسار الحرج عبر المجمع والمحرك.
- قلل الطلب المبرر مع صحة المعاملة.