これで、DBSのいずれかで毎日特定の時間にストレージに高い書き込みI / Oが表示されます。高い書き込みI / Oを実行するプロセスを見つけることができますか?これらの要求のソースを追跡するすべてのオペレーティングシステム固有のコマンド。 iostatとtopを除く
答え1
私は過去にhtopを試しました。これは、プロセスに基づいてIO使用量を追跡するようです。
明らかに、Githubには「glances」や「atop」などの他のオプションがたくさんあります。
sudo 権限のない root 以外のユーザーの iotop 代替
これにより、特定の状況がややユニークであり、いくつかのカスタマイズが必要になる可能性があるかどうか疑問に思います。一部の人々はプロセスで生の統計を解析することを擁護する人もいます。 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-or-sar
https://serverfault.com/questions/169676/howto-check-disk-io-utilization-per-process