linux中关于磁盘IO

你离开我真会死。 提交于 2019-12-18 19:04:50

查看磁盘IO负载 - 看哪些进程在读写磁盘
一、lsof命令 查看进程打开的文件
lsof全名为 list open files,也就是列举系统中已经被打开的文件,通过lsof命令,可以根据文件找到对应的进程信息,也可以根据进程信息找到进程打开的文件。
#个别环境需要安装
sudo yum install lsof -y
参数选项
-c<进程名> 显示指定的进程名所打开的文件
-p<进程号> 显示指定的进程号所打开的文件
-i 通过监听指定的协议、端口和主机等信息,显示符合条件的进程信息
-u 显示指定用户使用的文件
-U 显示所有socket文件

1、显示占用文件的进程
linux中关于磁盘IO

内容详解:
COMMAND :命令,进程的名称
PID:进程号
USER:进程的所有者
FD:文件描述符,包含以下内容:
0:标准输出
1:标准输入
2:标准错误
u:该文件被打开并处于读取/写入模式
r: 该文件被打开并处于只读模式
w:该文件被打开并处于写入模式
TYPE:文件类型,REG(regular)为普通文件
DEVICE:指定磁盘的名称
SIZE/OFF:文件的大小
NODE:索引节点
NAME:文件名称

2、显示指定进程所打开的文件
linux中关于磁盘IO
3、显示指定进程号所打开的文件

linux中关于磁盘IO
4、监听指定协议、端口和主机等信息,显示符合条件的进程信息
4.1查看所有进程
linux中关于磁盘IO
4.2显示所有tcp网络连接的进程信息
linux中关于磁盘IO
4.3显示端口为22的进程 **
linux中关于磁盘IO
5、显示指定用户占用的文件
linux中关于磁盘IO
6、显示所有socket文件
linux中关于磁盘IO

二、cat /proc/$pid/io 直接查看进程pid文件
如果内核版本大于2.6.20,通过cat /proc/pid/io 便可以获取进程的io信息。
linux中关于磁盘IO

pidstat - 监控并统计Linux进程的数据

pidstat是sysstat工具的一个命令,用于监控全部或指定进程的cpu、内存、线程、设备IO等系统资源的占用情况。pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。

#个别环境需要安装
RHEL系
yum install sysstat -y
Ubuntu
apt-get install sysstat
参数选项
-u 默认的参数,显示各个进程的CPU使用统计
-r 显示各个进程的内存使用统计
-d 显示各个进程的IO使用情况
-p 指定进程号
-w 显示每个进程的上下文切换情况
-t 显示选择任务的线程的统计信息外的额外信息

一、cpu、内存统计
1、显示所有进程的CPU使用率 等效于 pidstat -u -p ALL
linux中关于磁盘IO
1.1 指定进程的CPU使用率
linux中关于磁盘IO

内容详解:
PID:进程ID
%usr:进程在用户空间占用cpu的百分比
%system:进程在内核空间占用cpu的百分比
%guest:任务花费在虚拟机上的CPU使用率(运行在虚拟处理器)
%CPU:任务总的CPU使用率
CPU:正在运行这个任务的处理器编号
Command:这个任务的命令名称
2、所有进程的内存使用情况统计
linux中关于磁盘IO

2.1指定进程的内存使用情况统计
linux中关于磁盘IO

内容详解:
minflt/s:从内存中加载数据时每秒出现的次要错误的数目,这些不要求从磁盘载入内存页面
majflt/s:从内存中加载数据时每秒出现的主要错误的数目,这些要求从磁盘载入内存页面
VSZ:虚拟地址大小,虚拟内存的使用KB
RSS:长期内存使用,非交换区物理内存的使用量 KB
%MEM:进程使用的物理内存百分比,top命令也会输出该字段

二、进程的IO统计   
1、pidstat -d -p 1385 1 5    每隔一秒,一共输出5次进程ID为1385的IO统计信息

linux中关于磁盘IO

内容详解:
kB_rd/s:进程每秒从磁盘读取的数据量(以kB为单位)
kB_wr/s:进程每秒向磁盘写入的数据量(以kB为单位)
kB_ccwr/s:任务写入磁盘被取消的速率(KB);当任务截断脏的pagecache的时候会发生。

2、显示选择任务的线程的统计信息外的额外信息
linux中关于磁盘IO

内容详解:
TGID:主线程的标识
TID:线程ID

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!