1. 程式人生 > >系統技術非業餘研究 » disktop per裝置per應用層面的IO讀寫統計

系統技術非業餘研究 » disktop per裝置per應用層面的IO讀寫統計

我們在調優IO 密集型的應用是通常需要知道IO的使用情況. 但是iostat只能知道系統全域性的,iotop只能知道每個應用的, 我們有時候需要細化到每個應用對每個裝置的使用情況. 比如說mysql資料庫我們通常把日誌和資料分開到不同的裝置, 那我們需要知道資料讀寫多少,日誌讀寫多少,分開的瞭解.

目前還沒有工具能夠很輕鬆的瞭解. 幸運的是systemtap自己帶的disktop可以幫我們做到,位於/usr/share/doc/systemtap/examples/io/disktop.stp.

我們先來配置下環境:

$ uname -r
2.6.18-164.el5
$ rpm -i kernel-debuginfo-common-2.6.18-164.el5.x86_64.rpm
$ rpm -i kernel-debuginfo-2.6.18-164.el5.x86_64.rpm  
$stap -V
Systemtap translator/driver (version 1.5 /0.137 commit release-1.4-144-gdce37b5 + changes)
Copyright (C) 2005-2011 Red Hat, Inc. and others
This is free software; see the source for copying conditions.
enabled features: AVAHI LIBRPM LIBSQLITE3 NSS BOOST_SHARED_PTR TR1_UNORDERED_MAP NLS

這樣就好了.
我們接著看如何使用:

$mount
/dev/sda11 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda6 on /tmp type ext3 (rw)
/dev/sda5 on /home type ext3 (rw)
/dev/sda3 on /usr type ext3 (rw)
/dev/sda2 on /var type ext3 (rw)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sdb1 on /u01 type ext3 (rw,noatime,nodiratime,barrier=0)

$sudo stap /usr/share/doc/systemtap/examples/io/disktop.stp

Mon May 16 05:39:20 2011 , Average:4054Kb/sec, Read:    2219Kb, Write:  18051Kb

     UID      PID     PPID                       CMD   DEVICE    T        BYTES
     502     8914     8639                    mysqld     sdb1    W     18366678
     502     8914     8639                    mysqld    sda11    R      2020497
   50672    24711     9796                     mysql     sda5    W       117430
     502    24748    30385                     mysql    sda11    R        47895
     502    24752    30385                     mysql    sda11    R        47895
     502    24756    30385                     mysql    sda11    R        47895
     502    24760    30385                     mysql    sda11    R        47895
     502    24747    24745                      grep     sda3    R         4528
     502    24751    24749                      grep     sda3    R         4528
     502    24755    24753                      grep     sda3    R         4528

...

很簡單的把,每5秒打印出使用IO最多的10個程序,有需要的話可以自己改下指令碼.

祝玩得開心!

Post Footer automatically generated by wp-posturl plugin for wordpress.