
منذ وقت ليس ببعيد في مركز البيانات الذي نستأجر فيه الخوادم حدث حادث صغير آخر. نتيجة لذلك ، لم تكن هناك عواقب وخيمة على خدمتنا ؛ وفقًا للمقاييس المتاحة ، تمكنا من فهم ما كان يحدث في دقيقة واحدة حرفيا. ثم تخيلت كيف سأضطر إلى تحريك عقلي إذا كان هناك مقياسان بسيطان فقط في عداد المفقودين. تحت القص ، قصة قصيرة في الصور.
تخيل أننا رأينا شذوذًا في الجدول الزمني للاستجابة لخدمة معينة. من أجل البساطة ، نأخذ معالج / ping ، الذي لا يصل إلى قاعدة البيانات أو الخدمات المجاورة ، ولكن ببساطة إرجاع '200 OK' (مطلوب لموازنات التحميل و k8s لخدمة الفحص الصحي)

ما هو الفكر الأول؟ هذا صحيح ، الخدمة ليس لديها موارد كافية ، على الأرجح وحدة المعالجة المركزية! نحن ننظر إلى استهلاك المعالج:

نعم ، هناك رشقات نارية مماثلة. بعد ذلك ، ننظر إلى الاستهلاك حسب الخدمات على الخادم:

نرى أن استهلاك PROCA قد زاد بشكل متناسب مع جميع الخدمات. لا يمكنك قول أي شيء بشكل صريح أكثر: يمكنك الذهاب ومعرفة ما إذا كان ملف تعريف التحميل قد تغير (نظرًا لأن جميع المكونات متصلة ويمكن أن تتسبب الزيادة في طلبات الإدخال في الواقع في زيادة متناسبة في استهلاك الموارد) أو فهم ما حدث لموارد الخادم.
بالطبع ، حاولت الاحتفاظ بالمؤامرة بأفضل ما أستطيع ، ولكن في بداية المقال ، ربما كنت قد خمنت بالفعل أن الخادم ببساطة قلل من عدد علامات وحدة المعالجة المركزية المتاحة. في dmesg ، يبدو شيء مثل هذا:
CPU3: Core temperature above threshold, cpu clock throttled (total events = 88981)
تحدث تقريبًا ، لقد قللنا من التردد بسبب ارتفاع درجة حرارة المعالج. ننظر إلى درجة الحرارة:

الآن كل شيء واضح. نظرًا لأن لدينا سلوكًا مشابهًا على الفور في 6 خوادم ، أدركنا أن المشكلة تكمن في DC ، وليس في كل شيء ، ولكن فقط في صفوف معينة من الرفوف.
ولكن نعود إلى المقاييس. من المحتمل أن نرغب في معرفة ما إذا كانت الخوادم ستزداد سخونة في المستقبل ، ولكن هذا ليس سببًا لإضافة رسم بياني لدرجات حرارة المعالج إلى جميع لوحات التحكم والتحقق من ذلك في كل مرة.
عادةً ما يتم استخدام المشغلات لتتبع بعض المقاييس لتحسين العملية. ولكن ما العتبة التي يجب أن أختارها لتحفيز درجة حرارة المعالج؟
بسبب صعوبة اختيار عتبة جيدة للزناد ، يحلم العديد من المهندسين بكاشف الشذوذ ، والذي بدون إعدادات سيجد نفسه ، لا أعرف ماذا :)الفكرة الأولى هي تحديد درجة حرارة العتبة التي بدأت فيها خدمتنا تواجه مشاكل. وإذا لم يكن لديك سخونة مفرطة؟ بالطبع يمكنك إلقاء نظرة على جدولي الزمني وتقرر لنفسك أن 95 درجة مئوية هي ما تحتاجه ، ولكن دعونا نفكر أكثر قليلاً.
المشكلة معنا ليست بسبب الدرجات ، ولكن بسبب انخفاض التردد! دعونا نتتبع عدد هذه الأحداث.
في لينكس ، يمكن إزالة هذا من sysfs:
/sys/devices/system/cpu/cpu*/thermal_throttle/package_throttle_count

لنكون صادقين ، نحن لا نعرض هذا المقياس حتى في أي مكان ، لدينا فقط مشغل تلقائي لجميع العملاء الذي ينطلق عند الوصول إلى العتبة "> 10 أحداث / الثانية". وفقًا لإحصاءاتنا ، لا توجد أي نتائج إيجابية خاطئة عمليًا عند هذا الحد.
نعم ، نادرًا ما يعمل هذا الزناد ، ولكن عندما يحدث هذا ، يجعل الحياة سهلة للغاية!
نحن في okmeter.io نشارك في معظم الوقت في تطوير قاعدة بياناتنا الخاصة بالمشغلات التلقائية ، والتي تسهل على عملائنا العثور على مشاكل غير معروفة لهم.