Іостат і топ показують статичне використання ресурсів за першим значенням


2

Для одного з моїх проектів мені потрібно програмно використовувати ресурси (процесор, введення / виведення та дисковий простір).

В даний час я запускаю команди оболонки ( iostat) і аналізую результати, що працює досить добре для статистики дискового простору.

Що стосується CPU та I / O stat, з іншого боку, у мене є проблема.

Перевіряючи iostatі topкомандуйте далі, Mac OSX 10.9і Centos 6.5проблема полягає в тому, що перший результат, який друкується, є статичним.

Під "статичним" я маю на увазі постійну. Це завжди однакове число незалежно від того, скільки разів ви повторно запускаєте команду. Здається, що значення змінюється між перезавантаженнями.

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

Тепер вікно CentOS, на якому я проводив тести, - це VM, але OSX - це звичайний MacBook Pro.

Тож три мої питання такі:

  • Як вийшло , що статистичні дані є статичними - константи на iostatі topдля CPU і використання I / O?

  • Як я можу це виправити?

  • Якщо це не вдається виправити або це призначена поведінка, чи існують альтернативи, які працюють як на MacOSX, так і на CentOS?

Ось приклади журналів:

  1. Простий разовий iostatна CentOS без оновлення:

    Linux 2.6.32-431.5.1.el6.x86_64 08/04/2014 _x86_64_ (2 CPU)

    avg-cpu: %user %nice %system %iowait %steal %idle 24.64 0.00 0.57 0.10 0.00 74.70

    Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 1.44 0.22 26.26 656556 76917802 sdb 3.89 0.17 61.83 492714 181116136 dm-0 3.29 0.22 26.26 647474 76917776 dm-1 0.00 0.00 0.00 2416 0 dm-2 6.76 0.17 61.83 491914 181116136

  2. Простий iostat 1у CentOS, але на цей раз із 1 secondчастотою оновлення:

Linux 2.6.32-431.5.1.el6.x86_64 08/04/2014 _x86_64_ (2 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle 24.64 0.00 0.57 0.10 0.00 74.70

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 1.44 0.22 26.26 656556 76918018 sdb 3.89 0.17 61.83 492714 181118872 dm-0 3.29 0.22 26.26 647474 76917992 dm-1 0.00 0.00 0.00 2416 0 dm-2 6.76 0.17 61.83 491914 181118872

avg-cpu: %user %nice %system %iowait %steal %idle 0.51 0.00 0.00 0.00 0.00 99.49

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 7.00 0.00 56.00 0 56 sdb 0.00 0.00 0.00 0 0 dm-0 7.00 0.00 56.00 0 56 dm-1 0.00 0.00 0.00 0 0 dm-2 0.00 0.00 0.00 0 0

avg-cpu: %user %nice %system %iowait %steal %idle 1.00 0.00 1.50 0.50 0.00 97.00

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 3.00 0.00 32.00 0 32 sdb 8.00 0.00 176.00 0 176 dm-0 4.00 0.00 32.00 0 32 dm-1 0.00 0.00 0.00 0 0 dm-2 14.00 0.00 176.00 0 176

avg-cpu: %user %nice %system %iowait %steal %idle 0.51 0.00 0.00 0.00 0.00 99.49

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 0.00 0.00 0.00 0 0 sdb 0.00 0.00 0.00 0 0 dm-0 0.00 0.00 0.00 0 0 dm-1 0.00 0.00 0.00 0 0 dm-2 0.00 0.00 0.00 0 0

avg-cpu: %user %nice %system %iowait %steal %idle 1.00 0.00 1.00 0.00 0.00 98.01

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 0.00 0.00 0.00 0 0 sdb 0.00 0.00 0.00 0 0 dm-0 0.00 0.00 0.00 0 0 dm-1 0.00 0.00 0.00 0 0 dm-2 0.00 0.00 0.00 0 0

avg-cpu: %user %nice %system %iowait %steal %idle 0.50 0.00 0.50 0.00 0.00 99.00

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 0.00 0.00 0.00 0 0 sdb 0.00 0.00 0.00 0 0 dm-0 0.00 0.00 0.00 0 0 dm-1 0.00 0.00 0.00 0 0 dm-2 0.00 0.00 0.00 0 0

avg-cpu: %user %nice %system %iowait %steal %idle 0.50 0.00 0.50 0.00 0.00 99.00

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 0.00 0.00 0.00 0 0 sdb 0.00 0.00 0.00 0 0 dm-0 0.00 0.00 0.00 0 0 dm-1 0.00 0.00 0.00 0 0 dm-2 0.00 0.00 0.00 0 0

avg-cpu: %user %nice %system %iowait %steal %idle 0.00 0.00 0.51 0.00 0.00 99.49

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 0.00 0.00 0.00 0 0 sdb 0.00 0.00 0.00 0 0 dm-0 0.00 0.00 0.00 0 0 dm-1 0.00 0.00 0.00 0 0 dm-2 0.00 0.00 0.00 0 0

avg-cpu: %user %nice %system %iowait %steal %idle 0.50 0.00 0.50 0.00 0.00 99.00

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 0.00 0.00 0.00 0 0 sdb 2.00 0.00 24.00 0 24 dm-0 0.00 0.00 0.00 0 0 dm-1 0.00 0.00 0.00 0 0 dm-2 3.00 0.00 24.00 0 24

avg-cpu: %user %nice %system %iowait %steal %idle 0.51 0.00 0.51 0.00 0.00 98.99

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 0.00 0.00 0.00 0 0 sdb 4.00 0.00 80.00 0 80 dm-0 0.00 0.00 0.00 0 0 dm-1 0.00 0.00 0.00 0 0 dm-2 7.00 0.00 80.00 0 80

Обидва "експерименту" були проведені протягом інтервалу в кілька секунд.

Як ви можете бачити, для використання процесора, %userзавжди знаходяться 24.64%і %systemв 0.57протягом найпершого значення.

Відповіді:


1

Якщо ви хочете отримати cpu% програмно, вам може бути краще отримати інформацію безпосередньо з / proc / stat

Про це йдеться на веб- сайті https://stackoverflow.com/questions/3017162/how-to-get-total-cpu-usage-in-linux-c

А також це задокументовано на http://www.linuxhowtos.org/System/procstat.htm

Сподіваюся, це допомагає


Так, це насправді допоможе, навіть якщо ви не можете отримати доступ до /proc/*OSX. Я не проти Чи знаєте ви про подібне рішення для вводу / виводу диска?
Прокинься Золдьєк
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.