您的位置:首页 > 大数据 > 物联网

查看系统的I/O使用iostat命令而使用iotop能够依据I/O统计信息排序,追踪到详细的进程

2017-06-08 13:24 791 查看
当看到I/O等待时间所占CPU时间的比重非常高的时候,首先要检查的就是机器是否正在大量使用交换空间,由于硬盘操作的速度远远低于RAM。所以当系统内存耗尽,開始使用交换空间的时候。系统的性能会受到严重影响。

不论什么想要訪问硬盘的操作都要完毕与硬盘的I/O交换。所以,故障排除的第一步是看内存是否耗尽,假设是。先解决问题。假设还有大量可用的RAM,你须要明白那个进程占用了大部分I/O操作。

在你非常难弄明确究竟是哪个进程占用了大量I/O资源。使用iostat能够找到是哪个分区运行大量I/O操作。

iostat的使用



最上面显示的是1个cpu,64位系统,linux内核版本号

avg-cpu段:

%user: 在用户级别执行所使用的CPU的百分比

%nice: nice操作所使用的CPU的百分比

%system: 在系统级别(kernel)执行所使用CPU的百分比

%iowait: CPU等待硬件I/O时,所占用CPU百分比

%idle: CPU空暇时间的百分比

Device段:

sda:设备名

tps: 每秒钟发送到的I/O请求数.

Blk_read /s: 每秒读取的数据量

Blk_wrtn/s: 每秒写入的数据量.

Blk_read: 读入的总的数据量

Blk_wrtn: 写入的总的数据量


iostat各个參数说明:

-c 仅显示CPU统计信息.与-d选项相互排斥.

-d 仅显示磁盘统计信息.与-c选项相互排斥.

-k 以K为单位显示每秒的磁盘请求数,默认单位块.

-p device | ALL

与-x选项相互排斥,用于显示块设备及系统分区的统计信息.也能够在-p后指定一个设备名,如:

# iostat -p hda

或显示全部设备

# iostat -p ALL

-t 在输出数据时,打印搜集数据的时间.

-V 打印版本和帮助信息.

-x 输出扩展信息.

iostat后加一个数字

iostat 4 表示每隔4秒就刷新一次

iotop的使用





--version 显示版本然后退出

-h, --help 显示帮助然后退出

-o, --only 仅仅显示正在产生I/O的进程或线程。除了传參。能够在执行过程中按o生效。

-b, --batch 非交互模式。一般用来记录日志

-n NUM, --iter=NUM 设置监測的次数,默认无限。在非交互模式下非常实用

-d SEC, --delay=SEC 设置每次监測的间隔。默认1秒。接受非整形数据比如1.1

-p PID, --pid=PID 指定监測的进程/线程

-u USER, --user=USER 指定监測某个用户产生的I/O

-P, --processes 仅显示进程,默认iotop显示全部线程

-a, --accumulated 显示累积的I/O。而不是带宽

-k, --kilobytes 使用kB单位。而不是对人友好的单位。

在非交互模式下,脚本编程实用。

-t, --time 加上时间戳。非交互非模式。

-q, --quiet 禁止头几行,非交互模式。有三种指定方式。

-q 仅仅在第一次监測时显示列名

-qq 永远不显示列名。

-qqq 永远不显示I/O汇总。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐