قاعدة المعرفة

سرقة الوقت، ولماذا يقرأ جهازك صفرًا

سرقة الوقت هي اعتراف برنامج المراقبة (hypervisor) بأن ضيفًا آخر أخذ نواتك؛ على النوى المخصصة لا يوجد ما يُسرق، لذا فإن الجزء المفيد هو ما يجب فحصه بدلاً من ذلك.

من أين يأتي الرقم

%st في top هو نسبة الوقت الذي كانت فيه وحدات المعالجة المركزية الافتراضية الخاصة بك قابلة للتشغيل ولكن لم تتم جدولتها على نواة مادية، كما ورد من المُشغِّل (hypervisor). يوجد العداد لأن الضيف (guest) لا يمكنه بخلاف ذلك التمييز بين نواة بطيئة ونواة لم يحصل عليها أبدًا.

top -bn1 | head -3
vmstat 1 5
mpstat -P ALL 1 5

القيمة الخام، لمن يرسمها بنفسه، هي الحقل الثامن من سطر cpu في /proc/stat، مُحصاة بوحدات USER_HZ:

grep -w cpu /proc/stat

لماذا هي صفر هنا

يتم تخصيص النوى مرة واحدة. يتم تثبيت vCPU على مثيلك على نواة مادية غير مخصصة لأي شخص آخر، على مضيف غير مُفرط في الاستيعاب، لذلك لا توجد قائمة انتظار للانتظار. ليس رقمًا منخفضًا، ولا رصيدًا ينفد في اليوم الرابع من الشهر — لا شيء ليُسرق.

إذا لم يكن الرقم صفرًا، فهذا عيب ونريد تذكرة الدعم. قم بتضمين تشغيل mpstat -P ALL 5 12 ومعرف المثيل.

لماذا أرقام الآخرين ليست صفرًا

الخطط القابلة للانفجار (Burstable) مبنية على وقت السرقة (steal time). تشارك عدة ضيوف نواة، كل واحد يحمل رصيدًا، وعندما ينفد الرصيد، يعطي المجدول النواة لشخص آخر. إذا تم بيعه بأمانة، فهو منتج مشروع لأحمال العمل التي تكون خاملة. لكن هذا ليس هذا المنتج. حذفنا الطبقة الرخيصة في عام 2021 وذهب معها البيع الزائد.

ما يجب التحقق منه عندما يكون الجهاز بطيئًا على أي حال

السرقة هي أول شيء ينظر إليه الجميع ونادرًا ما تكون الإجابة. حسب الاحتمالية:

قائمة التشغيل (Run queue)

vmstat 1 5

عدد سلاسل العمليات القابلة للتشغيل أكثر من النوى، في عمود r، يعني أنك ببساطة نفدت من المعالج. لا يمكن لأي ضبط أن يخلق نواة إضافية.

القرص

iostat -x 1 5

ارتفاع %iowait بينما يبقى وقت المستخدم منخفضًا يشير إلى التخزين، وليس المعالج.

مجموعة cgroup الخاصة بك

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

cat /sys/fs/cgroup/cpu.stat

ارتفاع nr_throttled و throttled_usec يعني أن الحد الذي حدده منسق الدعم الخاص بك هو السقف. ارفعه أو أزله.

التردد

تتحرك ساعات التعزيز مع الحمل، والاختبار أحادي الخيط هو الطريقة الصادقة لمعرفة أين أنت بالفعل:

apt install -y sysbench
sysbench cpu --cpu-max-prime=20000 --threads=1 run

قارن رقم الأحداث في الثانية مع مثيل آخر بدلاً من رقم من مشاركة مدونة لشخص ما في عام 2019.

الأعمدة الضيف والمتداخلة

%guest و %gnice ليست صفرًا إلا إذا كنت تشغل أجهزة افتراضية داخل مثيلك. المحاكاة الافتراضية المتداخلة متاحة على خطط EPYC الأكبر وعلى المعادن العارية؛ تحقق من الجهاز قبل أن تصمم حوله:

ls -l /dev/kvm

النسخة المختصرة

ارتفاع r مع وقت المستخدم بالقرب من مئة بالمئة هو المعالج. ارتفاع %iowait هو القرص. cpu.stat يحسب عمليات التقييد (throttles) هو الحصة الخاصة بك. سرقة غير صفرية هي نحن، ويجب ألا تحدث.

جاهز عندما تكون

اختر مدينة. اختر الحجم. ادفع بالعملة الرقمية.

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