disktop per设备per应用层面的IO读写统计

时间 : 15-05-16 栏目 : 性能优化 作者 : 老薛 评论 : 0 点击 : 1,622 次

我们在调优IO 密集型的应用是通常需要知道IO的使用情况. 但是iostat只能知道系统全局的,iotop只能知道每个应用的, 我们有时候需要细化到每个应用对每个设备的使用情况. 比如说mysql数据库我们通常把日志和数据分开到不同的设备, 那我们需要知道数据读写多少,日志读写多少,分开的了解.

目前还没有工具能够很轻松的了解. 幸运的是systemtap自己带的disktop可以帮我们做到,位于/usr/share/doc/systemtap-1.6/examples/io/disktop.stp
注意:因为systemtap版本的不同,/usr/share/doc/systemtap-1.6/examples/io/disktop.stp 中systemtap-1.6要是情况有所改变

我们先来配置下环境:
$ 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-1.6/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个进程,有需要的话可以自己改下脚本.

本文标签 ,

除非注明,文章均为( 老薛 )原创,转载请保留链接: http://www.bdkyr.com/performance/738.html

博主微信号,很高兴为您提供帮助

随便看看

为您推荐

0