技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> Linux --> disktop per设备per应用层面的IO读写统计

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

浏览:2001次  出处信息

    我们在调优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个进程,有需要的话可以自己改下脚本.

建议继续学习:

  1. vim几个小技巧(批量替换,列编辑)    (阅读:35893)
  2. 关于IO的同步,异步,阻塞,非阻塞    (阅读:14455)
  3. ps - 按进程消耗内存多少排序    (阅读:11215)
  4. 100个常用的linux命令    (阅读:10099)
  5. 每个程序员都应该知道的8个Linux命令    (阅读:9373)
  6. 最受欢迎的10个 Linux 单行命令    (阅读:8824)
  7. Linux date 命令获取某日期的前一天    (阅读:8443)
  8. Linux服务器性能评估    (阅读:8151)
  9. ps 命令常见用法    (阅读:7862)
  10. find命令的一点注意事项    (阅读:8141)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1