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下查看进程占用端口和端口占用进程命令
Linux下查看进程占用端口: 查看程序对应进程号:ps –ef|grep 进程名 REDHAT :查看进程号所占用的端口号:netstat –nltp|grep 进程号 ubuntu:查看进程占用端 ...
linux下查看进程路径
在linux下查看进程大家都会想到用 ps -ef|grep XXX可是看到的不是全路径,怎么看全路径呢?每个进程启动之后在 /proc下面有一个于pid对应的路径例如:ps -ef|grep pyt ...
Linux下查看进程的命令输出的内容解释
Linux下查看进程的命令输出的内容解释 ps (process status) ps -e 或者ps -A (-e和-A完全一样) PID TTY TIME ...
linux 下查看进程占用端口和端口号占用进程命令
linux 下查看进程占用端口:(1)查看程序对应的进程号: ps -ef | grep 进程名字 (2)查看进程号所占用的端口号: netstat -nltp | grep 进程号 ubuntu ...
linux下查看进程的状态 /proc/[pid]/status
查看进程的状态: 1.查看进程的pid,以java为例:ps -ef | grep java 2.查看进程状态:cat /proc/[pid]/status 关键字: linux [root@loca ...
linux 下的进程管理工具 supervisor
在linux下监控进程: 1)yum install python-setuptools linux下的python安装工具 2)easy_install supervisor 安装sup ...
Linux下查看进程占用内存的最好方式
今天看到stackoverflow上关于linux下如何查看某个进程占用的内存是多少的回答,觉得非常棒,不过是全英文的,很多人可能看不懂,所以我翻译一下 翻译自http://stackoverflow ...
Linux下查看进程打开的文件句柄数和如何修改
修改文件句柄数在Linux下,我们使用ulimit -n 命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面).系统默认值1024. 对于一般的应用来说(象Apache.系统进 ...
Linux下查看进程和线程
在linux中查看线程数的三种方法 1.top -H 手册中说:-H : Threads toggle 加上这个选项启动top,top一行显示一个线程.否则,它一行显示一个进程. 2.ps xH 手册 ...
随机推荐
5天揭秘js高级技术-第二天
一.数组 1. 什么是数组? 数组就是一组数据的集合: 其表现形式就是内存中的一段连续的内存地址: 数组名称其实就是连续内存地址的首地址: 2. 关于js中的数组定义 数组定义无需指定数据类型: 数组 ...
Linux添加主机路由
Linux添加主机路由:参考:http://zhidao.baidu.com/link?url=50qQ232ZiJqq1iftHvBdPzZh-JlQGi1DZ8wvF-j9dvQYsKiNgc-6 ...
<;转>;boost 1.53 and STLPort build binary for windows
1.编译STLPort: 1.1 .开始菜单运行vs2008的命令行工具 1.2.进入E:\00.CODE.SDK\STLport-5.2.1\ 1.2.运行configure ...
select中无法使用click的处理
今天工作用到了select,想要给option添加click点击事件,可是却没有任何效果,百度了才发现,原来竟然是不支持呀! 众所周知(其实我才知道哎),在IE里, select的option是不支持 ...
Linux 内核同步机制
本文将就自己对内核同步机制的一些简要理解,做出一份自己的总结文档. Linux内部,为了提供对共享资源的互斥访问,提供了一系列的方法,下面简要的一一介绍. Technorati 标签: ...
html元素
类型 HTML元素 描述 主窗体元素 超文本的开始和结束
超文本信息头的开始和结束微信小程序,超能装的实例教程
序言 开始开发应用号之前,先看看官方公布的「小程序」教程吧!(以下内容来自微信官方公布的「小程序」开发指南) 本文档将带你一步步创建完成一个微信小程序,并可以在手机上体验该小程序的实际效果.这个小程序 ...
SERVLET中的doGet与doPost两个方法之间的区别
get和post是http协议的两种方法,另外还有head, delete等 这两种方法有本质的区别,get只有一个流,参数附加在url后,大小个数有严格限制且只能是字符串.post的参数是通过另外的 ...
GIT的使用中的问题处理
GIT 的常规操作 常规操作也是我自己平时常用的几个命令, 学自于 pro git 这本书中 git 配置文件 git的配置文件位置针对所有用户:/etc/gitconfig针对当前用户: -/.gi ...
KNN和Kmeans聚类有什么不同?
这两种算法之间的根本区别是,Kmeans本质上是无监督学习而KNN是监督学习.Kmeans是聚类算法,KNN是分类(或回归)算法. Kmeans算法把一个数据集分割成簇,使得形成的簇是同构的,每个簇里 ...