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 并不耗尽交换空间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操作是很频繁。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论