linux 查看进程 io?linux查看io使用率
大家好,关于linux 查看进程 io很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于linux查看io使用率的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
linux查看磁盘io的几种方法
怎样才能快速的定位到并发高是由于磁盘io开销大呢?可以通过三种方式:
第一种:用 top命令中的cpu信息观察
Top可以看到的cpu信息有:
Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si
具体的解释如下:
Tasks: 29 total进程总数
1 running正在运行的进程数
28 sleeping睡眠的进程数
0 stopped停止的进程数
0 zombie僵尸进程数
Cpu(s):
0.3% us用户空间占用CPU百分比
1.0% sy内核空间占用CPU百分比
0.0% ni用户进程空间内改变过优先级的进程占用CPU百分比
98.7% id空闲CPU百分比
0.0% wa等待输入输出的CPU时间百分比
0.0% hi
0.0% si
0.0% wa的百分比可以大致的体现出当前的磁盘io请求是否频繁。如果 wa的数量比较大,说明等待输入输出的的io比较多。
第二种:用vmstat
vmstat命令报告关于线程、虚拟内存、磁盘、陷阱和 CPU活动的统计信息。由 vmstat命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。
输入命令:
vmstat 2 5
如果发现等待的进程和处在非中断睡眠状态的进程数非常多,并且发送到块设备的块数和从块设备接收到的块数非常大,那就说明磁盘io比较多。
vmstat参数解释:
Procs
r:等待运行的进程数 b:处在非中断睡眠状态的进程数 w:被交换出去的可运行的进程数。此数由 linux计算得出,但 linux并不耗尽交换空间
Memory
swpd:虚拟内存使用情况,单位:KB
free:空闲的内存,单位KB
buff:被用来做为缓存的内存数,单位:KB
Swap
si:从磁盘交换到内存的交换页数量,单位:KB/秒
so:从内存交换到磁盘的交换页数量,单位:KB/秒
IO
bi:发送到块设备的块数,单位:块/秒
bo:从块设备接收到的块数,单位:块/秒
System
in:每秒的中断数,包括时钟中断
cs:每秒的环境(上下文)切换次数
CPU
按 CPU的总使用百分比来显示
us: CPU使用时间
sy: CPU系统使用时间
id:闲置时间
准测
更多vmstat使用信息
第二种:用iostat
安装:
Iostat是 sysstat工具集的一个工具,需要安装。
Centos的安装方式是:
yum install sysstat
Ubuntu的安装方式是:
aptitude install sysstat
使用:
iostat-dx显示磁盘扩展信息
root@fileapp:~# iostat-dx
r/s和 w/s分别是每秒的读操作和写操作,而rKB/s和wKB/s列以每秒千字节为单位显示了读和写的数据量
如果这两对数据值都很高的话说明磁盘io操作是很频繁。
linux 系统查看哪个进程占io
lsof是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。
常用的参数列表
lsof filename显示打开指定文件的所有进程
lsof-a表示两个参数都必须满足时才显示结果
lsof-c string显示COMMAND列中包含指定字符的进程所有打开的文件
lsof-u username显示所属user进程打开的文件
lsof-g gid显示归属gid的进程情况
lsof+d/DIR/显示目录下被进程打开的文件
lsof+D/DIR/同上,但是会搜索目录下的所有目录,时间相对较长
lsof-d FD显示指定文件描述符的进程
lsof-n不将IP转换为hostname,缺省是不加上-n参数
lsof-i用以显示符合条件的进程情况
lsof-i[46] [protocol][@hostname|hostaddr][:service|port]
46--> IPv4 or IPv6
protocol--> TCP or UDP
hostname--> Internet host name
hostaddr--> IPv4地址
service-->/etc/service中的 service name(可以不只一个)
port-->端口号(可以不只一个)
在linux系统中如何查看cpu和io
在 Linux系统中,可以使用以下命令查看 CPU信息:
top:显示系统进程的实时状态
htop:与 top类似,但提供了更多的信息和更好的可视化
mpstat:显示多核 CPU的状态
lscpu:显示系统 CPU的配置信息
查看 IO信息,可以使用以下命令:
iostat:用于检测磁盘I/O的使用状况
vmstat:用于检测虚拟内存的使用状况
mpstat:用于检测 CPU和磁盘I/O的使用状况
dstat:用于检测磁盘I/O,网络,CPU等系统资源的使用状况
需要注意的是这些命令需要安装对应的工具包