如何查找导致存储上高写入 I/O 的进程

如何查找导致存储上高写入 I/O 的进程

现在,在其中一个 DBS 中,每天在特定时间在存储上都会看到高写入 I/O。是否有可能找到哪个进程正在执行高写入 I/O。任何与操作系统相关的命令来跟踪位置来自这些请求的到来..除了 iostat 和 top

答案1

我过去曾尝试过 htop。这似乎是根据进程跟踪 IO 使用情况。

显然,Github 上还有很多其他选项,例如“glances”和“atop”。

没有 sudo 权限的非 root 用户的 iotop 替代方案

这让我想知道您的特定情况是否有些独特并且可能需要一些定制(有些人甚至提倡解析来自 proc 的原始统计数据)。有很多选项,包括 iodump(用 Perl 编写)。

root@kanga:~# while true; do sleep 1; dmesg -c; done | perl iodump
^C# Caught SIGINT.
TASK                   PID      TOTAL       READ      WRITE      DIRTY DEVICES
firefox               4450       4538        251       4287          0 sda4, sda3
kjournald             2100        551          0        551          0 sda4
firefox              28452        185        185          0          0 sda4
kjournald              782         59          0         59          0 sda3
pdflush                 31         30          0         30          0 sda4, sda3
syslogd               2485          2          0          2          0 sda3
firefox              28414          2          2          0          0 sda4, sda3
firefox              28413          1          1          0          0 sda4
firefox              28410          1          1          0          0 sda4
firefox              28307          1          1          0          0 sda4
firefox              28451          1          1          0          0 sda4

https://www.xaprb.com/blog/2009/08/23/how-to-find-per-process-io-statistics-on-linux/

#!/bin/bash

hostname=`hostname -s`    
carbon_host=YOUR_CARBON_HOSTNAME_OR_IP
carbon_port=2003

pidstat -h -d 1 | grep --line-buffered -v '^$' | grep --line-buffered -v '^#' | grep --line-buffered -v '^Linux' | awk --assign=hostname=${hostname} '{ printf "servers.%s.pidstat.%s.read %s %s\nservers.%s.pidstat.%s.write %s %s\n", hostname, $6, $3, $1, hostname, $6, $4, $1 ; fflush(); }' > /dev/tcp/${carbon_host}/${carbon_port}

https://serverfault.com/questions/574708/report-per-process-io-stats-with-pidstat-o​​r-sar

https://serverfault.com/questions/169676/howto-check-disk-io-utilization-per-process

相关内容