Linux下的IO检测工具最常用的是iostat,不过iostat只能查看到总的IO情况。如果要细看具体那一个程序点用的IO较高,可以使用iotop 。不过iotop对内核版本和Python版本有要求,虽然目前主流的CentOS和Ubuntu版本上都适用。不过考虑到其无法适用的场景,推荐个可以查看程序IO使用情况的工具iopp作为替代方案。
 
安装iopp
安装编译工具
 
$ yum install cmake
编译安装iopp
 
$ git clone https://github.com/markwkm/iopp.git
$ cd iopp
$ cmake CMakeLists.txt
$ make && make install
如需指定安装位置,可按如下方法
 
# 指定安装的目标路径到/usr/bin下
$ make install DESTDIR=/usr
注:默认安装目录位置为/bin/iopp
 
使用iopp
iopp语法
 
$ iopp --help
usage: iopp -h|--help
usage: iopp [-ci] [-k|-m] [delay [count]]
            -c, --command display full command line #显示完整命令行
            -h, --help display help #显示帮助信息
            -i, --idle hides idle processes #隐藏空闲进程
            -k, --kilobytes display data in kilobytes #以KB为单位显示数据
            -m, --megabytes display data in megabytes #以MB为单位显示数据
            -u, --human-readable display data in kilo-, mega-, or giga-bytes #以方便读的方式显示数据
 
列出进程并隐藏I/O空闲的进程
$ iopp -i -k -c 1
  pid rchar wchar syscr syscw rkb wkb cwkb command
  pid rchar wchar syscr syscw rkb wkb cwkb command
 9311 31 0 0 0 0 0 0 iopp
  pid rchar wchar syscr syscw rkb wkb cwkb command
 9311 31 0 0 0 0 0 0 iopp
  pid rchar wchar syscr syscw rkb wkb cwkb command
 9311 31 0 0 0 0 0 0 iopp
  pid rchar wchar syscr syscw rkb wkb cwkb command
 9311 31 0 0 0 0 0 0 iopp
  pid rchar wchar syscr syscw rkb wkb cwkb command
 9311 31 0 0 0 0 0 0 iopp
  pid rchar wchar syscr syscw rkb wkb cwkb command
 9311 31 0 0 0 0 0 0 iopp
  pid rchar wchar syscr syscw rkb wkb cwkb command
  395 0 0 0 0 0 4 0 jbd2/dm-0-8
 1229 0 1 0 0 0 8 0 auditd
 1251 0 0 0 0 0 4 0 /sbin/rsyslogd
 1498 110 0 0 0 0 4 0 crond
 9311 31 0 0 0 0 0 0 iopp
 
iopp输出的结果解释如下
pid 进程ID
rchar 将要从磁盘读取的字节数
wchar 已经写入或应该要写入磁盘的字节数
syscr 读I/O次数
syscw 写I/O次数
rbytes 真正从磁盘读取的字节数
wbytes 真正写入到磁盘的字节数
cwbytes 因为清空页面缓存而导致没有发生操作的字节数
command 执行的命令

Linux下查看进程IO工具iopp的更多相关文章

  1. linux下查看进程占用端口和端口占用进程命令

    Linux下查看进程占用端口: 查看程序对应进程号:ps –ef|grep 进程名 REDHAT :查看进程号所占用的端口号:netstat –nltp|grep 进程号 ubuntu:查看进程占用端 ...

  2. linux下查看进程路径

    在linux下查看进程大家都会想到用 ps -ef|grep XXX可是看到的不是全路径,怎么看全路径呢?每个进程启动之后在 /proc下面有一个于pid对应的路径例如:ps -ef|grep pyt ...

  3. Linux下查看进程的命令输出的内容解释

    Linux下查看进程的命令输出的内容解释 ps (process status) ps -e 或者ps -A (-e和-A完全一样) PID           TTY         TIME   ...

  4. linux 下查看进程占用端口和端口号占用进程命令

    linux 下查看进程占用端口:(1)查看程序对应的进程号: ps -ef | grep 进程名字 (2)查看进程号所占用的端口号: netstat -nltp | grep  进程号 ubuntu ...

  5. linux下查看进程的状态 /proc/[pid]/status

    查看进程的状态: 1.查看进程的pid,以java为例:ps -ef | grep java 2.查看进程状态:cat /proc/[pid]/status 关键字: linux [root@loca ...

  6. linux 下的进程管理工具 supervisor

    在linux下监控进程: 1)yum install python-setuptools   linux下的python安装工具 2)easy_install supervisor     安装sup ...

  7. Linux下查看进程占用内存的最好方式

    今天看到stackoverflow上关于linux下如何查看某个进程占用的内存是多少的回答,觉得非常棒,不过是全英文的,很多人可能看不懂,所以我翻译一下 翻译自http://stackoverflow ...

  8. Linux下查看进程打开的文件句柄数和如何修改

    修改文件句柄数在Linux下,我们使用ulimit -n 命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面).系统默认值1024. 对于一般的应用来说(象Apache.系统进 ...

  9. Linux下查看进程和线程

    在linux中查看线程数的三种方法 1.top -H 手册中说:-H : Threads toggle 加上这个选项启动top,top一行显示一个线程.否则,它一行显示一个进程. 2.ps xH 手册 ...

随机推荐

  1. NYIST 46 最少乘法次数

    最少乘法次数 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘.如24:2*2 ...

  2. dos2unix和unix2dos命令使用【转】

    dos2unix, unix2dos 用来实现 DOS <=> UNIX text file 转换 aptitude install sysutils 行末: DOS 格式 0d 0a U ...

  3. 采药 水题 dp 01背包问题 luogu1048

    最基本的01背包,不需要太多解释,刚学dp的同学可以参见dd大牛的背包九讲,直接度娘“背包九讲”即可搜到 #include <cstdio> #include <cstring> ...

  4. Obfuscating computer code to prevent an attack

    A method and system for obfuscating computer code of a program to protect it from the adverse effect ...

  5. quick-cocos2d-x游戏开发【2】——项目结构分析、创建新场景

    创建完一个新项目之后,我们能够简单的看一看这个项目的文件组成,有这么一个文件层次结构 几个proj.*目录就不用说了,是相应的平台的解决方式,res专门存放我们的游戏资源.scripts存放我们的lu ...

  6. poj 2337 Catenyms 【欧拉路径】

    题目链接:http://poj.org/problem?id=2337 题意:给定一些单词,假设一个单词的尾字母与还有一个的首字母同样则能够连接.问能否够每一个单词用一次,将全部单词连接,能够则输出字 ...

  7. Cannot find the class file for javax.servlet.ServletContext.

    当eclipse中新导入的Java Project的时候.往往会碰到各种各样的问题,以下是个典型的问题: Cannot find the class file for javax.servlet.Se ...

  8. PAT(B) 101-111-1-2014-03-01

    1.个位数统计: #include<stdio.h> #include<iostream> #include<string.h> #include<set&g ...

  9. hibernate动态表名映射--仅仅有想不到,没有做不到

    近期的一个项目有一个需求,有N个考核单位,要对每一个考核单位生成一张考核情况表.这样做的目的是横切数据库,这这个需求的实现中,我的组员遇到了一个技术问题,我将我的解决的方法和整个思考过程与大家分享, ...

  10. zoj 3820 Building Fire Stations (二分+树的直径)

    Building Fire Stations Time Limit: 5 Seconds      Memory Limit: 131072 KB      Special Judge Marjar ...