Інструменти для моніторингу часу крадіжки (st)


12

Ми працюємо на віртуальному "виділеному" сервері, що теоретично повинно означати, що ми єдині хлопці на сервері. На практиці .... Я думаю, що нас може не бути.

введіть тут опис зображення

Зауважте, що, хоча це виглядає так, що ми вбиваємо нашу машину, "час крадіжки" становить 71%

Я беру статистику щодо навантаження, і я був розчарований, що ця статистика не відображається в моїх графіках. Чи є інструменти, які слідкують за цим, які могли б допомогти?


Додаткова інформація:

У нас працює 4 ядра, модель:

# grep "model name" /proc/cpuinfo | sort -u
model name  : Intel(R) Core(TM)2 Duo CPU     E7500  @ 2.93GHz

1
Віртуальний присвячений? У випадку з XEN їм потрібно буде закріпити спеціальні сердечники для цільового використання у вашій машині управління. Схоже, ваш постачальник перевантажив центральні процесори несправедливим amout. Що він на це каже?
Нілс

1
Скільки vCPU у вас є і про який тип процесора повідомляється grep "model name" /proc/cpuinfo|sort -u? Якщо це дійсно виділений сервер, то на Dom0 є щось, що з'їдає час процесора. АБО вони дали вам більше vCPU, ніж доступно в Dom0.
Нілс

1
Якщо це не миттєвий зовнішній вигляд, схоже, ваш ісп бреше вам, і вони насправді на цій машині працюють інші важкі процесори CPU, або є щось налаштоване дуже неправильно, що призводить до того, щоб dom0 повісив багато процесорного часу .
psusi

1
SuSE рекомендує резервувати два ядра виключно для Dom0, щоб він міг виконувати всю IO-обробку, не турбуючи інші VM. По моїх очах, це було б необхідне лише для систем із вкраденим часом у DomUs І великому трафіку IO. Мені хотілося дізнатись, чи надав ваш провайдер більше vCPU, ніж логічні ядра - як, наприклад, призначити 4 vCPU, тоді як у Dom0 доступні лише 2 логічні процесори - це також пояснить "вкрадене" (і це досить ідея мозкового розуму - але це можливо в XEN) .
Нілс

1
Першопричиною цього виявилося те, що ISP неправильно налаштував VM. Гість сказали, що в ньому більше ядер, ніж насправді. Це, здавалося, спричинило хаос із плануванням. ISP не міг надати інтелектуальну технічну підтримку, але нам вдалося «довести» проблему, відключивши ядра з непарними номерами в / proc. Ніколи не проблема.
mgjk

Відповіді:


12

Ваше питання чітко визначене, але ви не даєте багато інформації про своє оточення, про те, як ви зараз контролюєте, або які графічні інструменти ви використовуєте. Однак, враховуючи, що SNMP використовується досить універсально для цього, я вважаю, що ви його використовуєте та маєте принаймні деяке ознайомлення з ним.

Хоча (наскільки я можу сказати) час скрадання процесора наразі недоступний для snmpd, ви можете продовжити його самостійно за допомогою UCD-SNMP-MIB::extOutputоб'єкта та execкоманд.

Найпростіший спосіб (який я знайшов) отримати час крадіжки - це звідси iostat. Використовуючи наступну конструкцію, ми можемо отримати лише час крадіжки:

$ iostat -c | awk 'NR==4 {print $5}'
0.00

Тому додайте до свого snmpd.conf наступне:

exec cpu_steal_time /usr/bin/iostat -c | /usr/bin/awk 'NR==4 {print $5}'

(Крім того, ви можете помістити команду в сценарій обгортки і викликати обгортку зсередини snmpd.conf.)

Кожен execдзвінок в snmpd.confіндексується, починаючи з 1. Отже, якщо у вас є лише один виконавець exec, ви хочете опитувати UCD-SNMP-MIB::extOutput.1. Якщо це заява 5-го виконання, тоді опитування UCD-SNMP-MIB::extOutput.5тощо.

Числовий OID для цього UCD-SNMP-MIB::extOutputє, .1.3.6.1.4.1.2021.8.1.101якщо ви знаходитесь в індексі 1, він би був .1.3.6.1.4.1.2021.8.1.101.1, а індекс 5 був би .1.3.6.1.4.1.2021.8.1.101.5і т.д.

Потім ви створюєте графік опитування, що відповідає SNMPD OID типу калібрування, починаючи від 0–100. Це має дати кілька гарних графіків.


Чудова відповідь. Як часто збиратимуться ці статики? Просто під час опитування, чи існує спосіб, як у RMON-MIB, який записуватиме значення без зовнішнього опитування?
Нілс

Я вважаю, що це потягне за собою кожен раз, коли snmpdзапит на цей OID.
bahamat

Якщо іостат не встановлений: top -bn1 | sed -nr '3s /.*,// gp'
надано

9

sar -uможе бути корисним у вашому випадку. sar зазвичай є частиною sysstat -packge.


Я б хотів, щоб я міг встановити більше, ніж одну відповідь як прийняту відповідь. Обидві відповіді були дуже корисними :-) Дякую!
mgjk

0

Відповідь найвищої якості є чудовою, але в цей час вона не працює в повній мірі: net-snmp втрачає трубку під час execвиклику, тому це має виглядати приблизно так

extend-sh cpu_steal_time /usr/bin/iostat -c 1 1 | /usr/bin/awk '!/%user|Linux|^$/ {print $5}'

А результат буде видно під nsExtendOutput1Table:

# snmpwalk localhost NET-SNMP-EXTEND-MIB::nsExtendOutput1Table
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."cpu_steal_time" = STRING: 0.60
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."cpu_steal_time" = STRING: 0.60
NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."cpu_steal_time" = INTEGER: 1
NET-SNMP-EXTEND-MIB::nsExtendResult."cpu_steal_time" = INTEGER: 0

де nsExtendOutput1Lineоїд .1.3.6.1.4.1.8072.1.3.2.3.1.1:

snmpwalk localhost .1.3.6.1.4.1.8072.1.3.2.3.1.1
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."cpu_steal_time" = STRING: 0.60
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.