Чому топ повідомляє про використання іншого процесора, ніж CloudWatch?


9

topпоказує середнє споживання процесора у пік приблизно 20%, тоді як CloudWatch моніторинг показує середнє використання процесора 40%. Що обумовлює цю невідповідність?

Відповіді:


15

Дуже добре спостереження, і ми також зіткнулися з цим. Ось що я знайшов:

Будьте уважні до вимірювання використання процесора в екземплярі EC2. Можливість бачити використання процесора набагато нижче 100% - і все-таки повністю заповнити. Повірте мені: був там, зробив це. (CloudWatch CPUUtilization, до речі, вимірюється поза екземпляром і завжди є правильним.)

Тут є дуже хороший опис всього цього: https://axibase.com/news/ec2-monitoring-the-case-of-stolen-cpu/

У наведеному вище прикладі m1.small EC2 екземпляр виділив 0,4 процесорних одиниці, і тому 40% зайнятості процесора означає відсоткове використання базового ядра. Однак, оскільки 40% - це максимальна частка CPU, яка може бути розподілена на цей VM, ефективне використання процесора становить 40% / 40% = 100%. Яке число відображається CloudWatch.

Якщо вам цікаво, звідки береться 40%, математика досить проста. Система m1.small linux має право на 1 обчислювальну одиницю EC2, яка забезпечує еквівалентну ємність процесора 1,0–1,2 ГГц 2007 Opteron або 2007 Xeon. Оскільки VM працює на машині з тактовою частотою 2,6 ГГц, він має право на 38,4% —46,2% частки процесора в цьому конкретному вузлі XEN. Ви можете запустити команду cat / proc / cpuinfo, щоб дізнатися архітектуру процесора за вашими екземплярами EC2.

Зверніть особливу увагу на підказку про те, як поводитися з інструментами, які не знають про спеціальну математику:

Інший варіант, який можна використати для модернізації існуючих інструментів моніторингу на основі агентів або SNMP, які не інтегруються з CloudWatch, - використовувати показник процесора в режимі очікування. Все, що вам потрібно зробити, - це переписати правила для вимірювання простою процесора, а не процесор зайнятий. Наприклад, якщо для CPU визначено поріг> 75%, створіть правило <25% для роботи в режимі очікування. Якщо у режимі очікування процесора 0, то ваш сервер пов'язаний з процесором.

Дуже просто. Дуже хороший.

Коли ви пробігаєте зверху в екземплярі EC2, він вимірює використання процесора фізичної основної машини, на якій працює ваш екземпляр та інші. Це використання невірно, якщо ви хочете вимірювати використання процесора лише свого екземпляра (обчислювальний блок EC2, призначений вашому екземпляру).

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

Дивіться тут - https://forums.aws.amazon.com/thread.jspa?threadID=99993


Іншими словами, вони обидва праві, але вимірюють різні речі.
Багамат

1
Ви можете сказати так. Однак ОП стурбований тим, що він думає, що бачить, - це не те, що амазонка каже, що бачить. Тож у його випадку топ-дані для нього неправильні. Але, якщо ви можете виміряти використання процесора базового ядра для налагодження проблем продуктивності, дуже корисно запустити верх. Якщо вас турбує лише використання вашого примірника, хмарний годинник - це шлях. Так, так, вони обидва вимірюють різні речі.
Чида

1
Я думаю, я мав би слідувати моїй заяві: "Перше - це те, що ти думаєш, що хочеш, друге - це те, що ти справді хочеш", але я вважав, що це вже було висвітлено.
bahamat

+1 за те, що ви щойно сказали :)
Чида

1
Я отримав вміст мертвого посилання з автомата зворотного зв'язку та додав його безпосередньо до публікації.
Johano Fierra
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.