当前位置: 首页 > Linux

Linux性能监控命令系列iotop

时间:2023-04-06 03:35:16 Linux

大家好!我是肖恩!上次讲了iostat,今天讲一个和它长得很像的命令iotop,功能也有些相似。iotop是一个用于监控磁盘I/O使用情况的工具。iotop(监控磁盘I/O使用情况的工具)iotop命令是一个用来监控磁盘I/O使用情况的top工具。iotop有一个类似top的UI,包括PID、user、I/O、process等相关信息。Linux下的IO统计工具,如iostat、nmon等,大多只能统计perdevice的读写。如果想知道每个进程如何使用IO,那就比较麻烦了。您可以使用iotop命令轻松检查它。iotop使用Python语言编写,需要Python2.5(及以上)和Linuxkernel2.6.20(及以上)。iotop提供了源码和rpm包,可以在其官方主页下载。CentOS中可以安装一个命令:yuminstalliotop命令参数-o:只显示有io操作的进程-b:批量显示,无交互,主要用于记录到文件。-nNUM:显示NUM次,主要针对非交互模式。-dSEC:每SEC秒显示一次。-pPID:被监控的进程pid。-uUSER:被监控的进程用户。iotop常用快捷键左右箭头:改变排序方式,默认是按IO排序。r:更改排序顺序。o:只显示有IO输出的进程。p:进程/线程显示模式的切换。a:显示累计使用量q:退出。常用命令iotop默认显示信息iotop-t增加时间戳列iotop-d2-n32s刷新一次,刷新3次信息结束iotop-uroot只显示root用户下进程的io信息iotop-a显示在累积信息和数据是从iotop命令开始计算的iotop-b>iotop.txt非交互模式,可以使用重定向连续记录一段时间的信息iotop-k显示读写以kB为单位的数据信息iotop-qThecolumnnameisonlyintheprintiotop-qqcolumnnamesduringaiterationNeverprintiotop-qqq不会打印I/Osummarycommanddetails默认显示信息iotopTotalDISKREADTotalDISKWRITE就一个一方面,它表示进程和内核线程之间的总读写带宽,另一方面也表示内核块设备子系统。ActualDISKREADActualDISKWRITE表示内核块设备子系统和底层硬件(HDD、SSD等)对应的实际磁盘I/O带宽。TID线程号或进程号PRIO线程运行时的I/O优先级USER进程所属用户DISKREAD刷新间隔内读取的数据量DISKWRITE刷新间隔内写入的数据量SWAPINswap使用情况rateofeachprocessIOper一个进程的I/O使用率,包括磁盘和交换COMMAND进程名添加时间戳列iotop-t以kB为单位显示读写数据信息iotop-k数据查看技巧其实,iotop命令显示的信息非常明显,一目了然。通常主要用来定位是哪个进程一直在占用磁盘IO。上次说的iostat只能初步看出系统的磁盘IO是否达到瓶颈,但不一定达到瓶颈,而是一些奇怪的进程造成的。这是因为你可以使用iotop持续观察进程层面的IO情况,你可以很快发现是谁在做一些奇怪的事情。思维导图总结今天的分享就到这里!感谢您的阅读!码字不易,如果本文对你有帮助,请点个赞吧~哈哈。性能监控命令系列结束后,再分享思维导图。欢迎关注公众号《程序员肖恩》。