من أين يأتي الرقم
%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) هو الحصة الخاصة بك. سرقة غير صفرية هي نحن، ويجب ألا تحدث.