Для одного з моїх проектів мені потрібно програмно використовувати ресурси (процесор, введення / виведення та дисковий простір).
В даний час я запускаю команди оболонки ( 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?
Ось приклади журналів:
Простий разовий
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
Простий
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
протягом найпершого значення.
/proc/*
OSX. Я не проти Чи знаєте ви про подібне рішення для вводу / виводу диска?