web-dev-qa-db-ja.com

プロセスごとのレポートIO pidstatまたはsarを使用した統計

いくつかの「疑わしい」プロセスのio使用状況を経時的に追跡しようとしています。理想的には、これらの統計をmunin経由で利用できるようにするか、直接グラファイトにプッシュします。ただし、出発点として、適度なスペース/リソース効率の高い方法で、この使用状況を経時的に追跡できると便利です。そして、たとえば、一定期間のトップ10 IOコンシューマーとそのデータの読み取り/書き込み統計を取得できます。

pidstat -d 2は、数秒ごとにioを消費する上位のプロセスの優れた出力を生成するようです。 sarにはアーカイブが組み込まれていることは理解していますが、pidstatで取得した統計をアーカイブする方法がわかりません(おそらくSA1_OPTIONS?私はdebian/ubuntuにいます)。

pidstatをディスクにパイプし、出力に対して収集/集約を実行する以外に、sarで同じことを(ただしより効率的に)実行し、後で統計を取得する方法はありますか?

2
Yoav Aner

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}
1
Yoav Aner