我正在编写一个脚本,我需要找到一个文件,其中存储单个进程/pid/service的iowait的统计信息。在基于Debian的发行版上有这样的文件吗?
无论是/proc/<pid>/stat,/proc/<pid>/io都没有任何iowait的统计数据,根据手册页。我知道我可以解析其他工具的输出,如iotop、sar等,但是,解析外部命令的输出是我必须避免的性能问题。
注:我知道/proc/stat及其内容的含义。我需要一个进程的iowait,而不是整个CPU或一个核心。
发布于 2018-07-30 09:51:02
理论上,您可以从iowait获得每个进程的/proc/[pid]/stat,因为我们从相应的PROC(5)块中读取:
(42) delayacct_blkio_ticks %llu (since Linux 2.6.18)
Aggregated block I/O delays, measured in clock ticks (centiseconds).我根本不知道delayacct_blkio_ticks实际上是什么意思。无论如何,唯一的man proc将对您有用。
有相关问题,请检查它:使用proc FS测量块I/O延迟
此外,请注意每个CPU /proc/stat块中的iowait注释:
您可以从iowait获得每个CPU的/proc/stat数据。在我的Ubuntu18.04的/proc/stat中有这样的部分:
cpu 2752162 16054 941158 49212025 789607 0 217089 0 0 0
cpu0 1397207 7767 500620 24623046 407078 0 70574 0 0 0
cpu1 1354955 8286 440538 24588978 382529 0 146515 0 0 0在我的特殊情况下,除cpus列外,第五列是iowait值。列的数量及其含义可以根据所使用的内核的不同而有所不同。
要获得每一列的确切含义,您必须查看文档。在Ubuntu中,首先安装linux-doc包:
sudo apt install linux-doc看看man proc:
man proc对于每一列都有精确的/proc/stat解释。
另外阅读如何读取Linux /proc/stat文件,了解如何计算值。
在CentOS中,有必要安装kernel-doc包:
yum install kernel-doc然后读取该文件:
/usr/share/doc/kernel-doc/Documentation/filesystems/proc.txthttps://unix.stackexchange.com/questions/459288
复制相似问题