いくつかの「疑わしい」プロセスのio使用状況を経時的に追跡しようとしています。理想的には、これらの統計をmunin経由で利用できるようにするか、直接グラファイトにプッシュします。ただし、出発点として、適度なスペース/リソース効率の高い方法で、この使用状況を経時的に追跡できると便利です。そして、たとえば、一定期間のトップ10 IOコンシューマーとそのデータの読み取り/書き込み統計を取得できます。
pidstat -d 2
は、数秒ごとにioを消費する上位のプロセスの優れた出力を生成するようです。 sar
にはアーカイブが組み込まれていることは理解していますが、pidstat
で取得した統計をアーカイブする方法がわかりません(おそらくSA1_OPTIONS
?私はdebian/ubuntuにいます)。
pidstat
をディスクにパイプし、出力に対して収集/集約を実行する以外に、sarで同じことを(ただしより効率的に)実行し、後で統計を取得する方法はありますか?
pidstat情報(プロセスごとIO読み取りおよび書き込み))をカーボン経由でグラファイトに転送するこのアドホックbashスクリプトを考案しました
#!/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}