系統技術非業餘研究 » disktop per裝置per應用層面的IO讀寫統計
阿新 • • 發佈:2018-12-31
我們在調優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.