linux利用crontab捕获iotop
1.iotop介绍
iotop-简单的类似TOP 命令的I/O监视器
使用:iotop[选项]
描述:iotop监视Linux内核输出的I/O使用信息(需要2.6.20或更高版本),并显示系统上进程或线程的当前I/O使用情况表。至少需要在您的Linux内核构建配置中启用CONFIG_TASK_DELAY_ACT、CONFIG_TAS K_IO_ACCOUNTING、CONFIG-TASKSTATS和CONFIG_VM_EVENT_CONTERS选项
iotop显示采样期间每个进程/线程读取和写入的I/O带宽列。它还显示了
线程/进程在交换和等待I/O时花费的时间。对于每个进程,显示其I/O优先级(类/级别)。
此外,采样期间读取和写入的总I/O带宽显示在界面顶部。总DISK READ和总DISK WRITE值表示一侧的进程和内核线程与另一侧的内核块设备子系统之间的总读写带宽。
对于实际磁盘read和实际磁盘write值表示内核块设备子系统和底层硬件(HDD、SSD等)之间实际磁盘I/O的相应带宽。因此,由于Linux内核内发生的数据缓存和I/O操作重新排序,在任何给定的时间点,总值和实际值可能都不相等.
使用左右箭头更改排序,r反转排序顺序,o切换--only选项,p切换--processs选项,a切换--accumulated选项,q退出或i更改线程或进程线程的优先级。任何其他键都将强制刷新。
OPTIONS:
--version:显示版本号并退出
-h,--help:显示使用方法并退出
-o,--only:仅显示实际执行I/O的进程或线程,而不是显示所有进程或线程。按o可以动态切换。
-b, --batch:打开非交互模式。可用于记录随时间变化的I/O使用情况。
-n NUM, --iter=NUM:设置退出前的执行次数(默认情况下从不退出)。这在非交互模式下最有用。
-d SEC, --delay=SEC:以秒为单位设置迭代之间的延迟(默认为1秒)。接受非整数值,如1.1秒。
-p PID,--PID=PID:要监视的进程/线程列表(默认情况下都监控)。
-a, --accumulated:显示累积的I/O而不是带宽。在此模式下,iotop显示自iotop启动以来已完成的I/O进程数。
-k, --kilobytes:统一以KB的单位代替友好的方式显示
在为iotop的批处理模式编写脚本时,此模式非常有用。而不是选择合适的
单位iotop将以统一的KB为单位显示大小。
-t,--time
在每一行添加一个时间戳(意味着--batch非交互模式)。每一行都将以当前时间作为前缀。
-q, --quit
删除一些标题行(意味着--batch非交互模式)。此选项最多可以指定三次以删除标题行。
-q 列名仅在第一次迭代中打印,
-qq 列名从不打印,
-qqq I/O摘要永远不会打印。
另请参见其他手册:
ionice(1), top(1), vmstat(1), atop(1), htop(1)
作者
iotop是由Guillaume Chazarain所著。
本手册页由Paul Wise为Debian项目创建,并置于公共领域。
2.安装
yum install iotop
3.脚本创建
#!/bin/bash
/usr/sbin/iotop -okt -b -n 360 -d 10 >> /home/iotoplog/iotop_$(date +"%Y%m%d_%H%M%S").log &
4.crontab定时
#查看iotop
30 8,9,10,11 * * * /opt/scripts/iotop.sh
note:每天8.30,9.30,10.30,11.30执行一次,每次搜集360次,每次间隔10s,共3600s。
每次的log均以时间格式记录一份log。