diff options
Diffstat (limited to 'doc/README.utils')
-rw-r--r-- | doc/README.utils | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/doc/README.utils b/doc/README.utils new file mode 100644 index 0000000..66f9937 --- /dev/null +++ b/doc/README.utils @@ -0,0 +1,94 @@ +Systemtap disk and network statistic monitoring tools +===================================================== + +The netdevstat and diskdevstat are 2 systemtap tools that allow the user to +collect detailed information about network and disk aktivity of all +applications running on a system. These 2 tools were insipred by powertop, +which shows the wakeups of applications per second. + +The basic idea is to collect statistic about the running applications in a +form that allows a user to identify applications that behave power +inefficient, meaning instead of doing fewer and bigger IO operations they +do more and smaller ones. Current monitoring tools typically only show +the transfer speeds which isn't very meaningful in that context. + +To run them you need to have systemtap and kernel-debuginfo installed. +If both are installed a simple + + netdevstat + +or + + diskdevstat + +will start the scripts. There are no parameters or options for them. The +output will look similar to top and/or powertop. Here a sample output of +a longer diskdevstat run on a Fedora 10 system running KDE 4.2: + + + PID UID DEV WRITE_CNT WRITE_MIN WRITE_MAX WRITE_AVG READ_CNT READ_MIN READ_MAX READ_AVG COMMAND + 2789 2903 sda1 854 0.000 120.000 39.836 0 0.000 0.000 0.000 plasma +15494 0 sda1 0 0.000 0.000 0.000 758 0.000 0.012 0.000 0logwatch +15520 0 sda1 0 0.000 0.000 0.000 140 0.000 0.009 0.000 perl +15549 0 sda1 0 0.000 0.000 0.000 140 0.000 0.009 0.000 perl +15585 0 sda1 0 0.000 0.000 0.000 108 0.001 0.002 0.000 perl + 2573 0 sda1 63 0.033 3600.015 515.226 0 0.000 0.000 0.000 auditd +15429 0 sda1 0 0.000 0.000 0.000 62 0.009 0.009 0.000 crond +15379 0 sda1 0 0.000 0.000 0.000 62 0.008 0.008 0.000 crond +15473 0 sda1 0 0.000 0.000 0.000 62 0.008 0.008 0.000 crond +15415 0 sda1 0 0.000 0.000 0.000 62 0.008 0.008 0.000 crond +15433 0 sda1 0 0.000 0.000 0.000 62 0.008 0.008 0.000 crond +15425 0 sda1 0 0.000 0.000 0.000 62 0.007 0.007 0.000 crond +15375 0 sda1 0 0.000 0.000 0.000 62 0.008 0.008 0.000 crond +15477 0 sda1 0 0.000 0.000 0.000 62 0.007 0.007 0.000 crond +15469 0 sda1 0 0.000 0.000 0.000 62 0.007 0.007 0.000 crond +15419 0 sda1 0 0.000 0.000 0.000 62 0.008 0.008 0.000 crond +15481 0 sda1 0 0.000 0.000 0.000 61 0.000 0.001 0.000 crond +15355 0 sda1 0 0.000 0.000 0.000 37 0.000 0.014 0.001 laptop_mode + 2153 0 sda1 26 0.003 3600.029 1290.730 0 0.000 0.000 0.000 rsyslogd +15575 0 sda1 0 0.000 0.000 0.000 16 0.000 0.000 0.000 cat +15581 0 sda1 0 0.000 0.000 0.000 12 0.001 0.002 0.000 perl +15582 0 sda1 0 0.000 0.000 0.000 12 0.001 0.002 0.000 perl +15579 0 sda1 0 0.000 0.000 0.000 12 0.000 0.001 0.000 perl +15580 0 sda1 0 0.000 0.000 0.000 12 0.001 0.001 0.000 perl +15354 0 sda1 0 0.000 0.000 0.000 12 0.000 0.170 0.014 sh +15584 0 sda1 0 0.000 0.000 0.000 12 0.001 0.002 0.000 perl +15548 0 sda1 0 0.000 0.000 0.000 12 0.001 0.014 0.001 perl +15577 0 sda1 0 0.000 0.000 0.000 12 0.001 0.003 0.000 perl +15519 0 sda1 0 0.000 0.000 0.000 12 0.001 0.005 0.000 perl +15578 0 sda1 0 0.000 0.000 0.000 12 0.001 0.001 0.000 perl +15583 0 sda1 0 0.000 0.000 0.000 12 0.001 0.001 0.000 perl +15547 0 sda1 0 0.000 0.000 0.000 11 0.000 0.002 0.000 perl +15576 0 sda1 0 0.000 0.000 0.000 11 0.001 0.001 0.000 perl +15518 0 sda1 0 0.000 0.000 0.000 11 0.000 0.001 0.000 perl +15354 0 sda1 0 0.000 0.000 0.000 10 0.053 0.053 0.005 lm_lid.sh + + +Here a quick explanation of each column: + +PID: Process ID of the application +UID: User ID under which the applications is running +DEV: Device on which the IO took place +WRITE_CNT: Total number of write operations +WRITE_MIN: Lowest time in seconds for 2 consecutive writes +WRITE_MAX: Largest time in seconds for 2 consecutive writes +WRITE_AVG: Average time in seconds for 2 consecutive writes +READ_CNT: Total number of read operations +READ_MIN: Lowest time in seconds for 2 consecutive reads +READ_MAX: Largest time in seconds for 2 consecutive reads +READ_AVG: Average time in seconds for 2 consecutive reads +COMMAND: Name of the process + +In this example 3 very obvious applications stand out: + + PID UID DEV WRITE_CNT WRITE_MIN WRITE_MAX WRITE_AVG READ_CNT READ_MIN READ_MAX READ_AVG COMMAND + 2789 2903 sda1 854 0.000 120.000 39.836 0 0.000 0.000 0.000 plasma + 2573 0 sda1 63 0.033 3600.015 515.226 0 0.000 0.000 0.000 auditd + 2153 0 sda1 26 0.003 3600.029 1290.730 0 0.000 0.000 0.000 rsyslogd + +Those are the 3 applications that have a WRITE_CNT > 0, meaning they performed +some form of write during the measurement. Of those, plasma was the worst +offender by a large amount. For one in total number of writes and of course +the average time between writes was also the lowest. This would be the best +candidate to investigate if you're concerned about power inefficient +applications. |