私はPostgreSQLデータベースを持っています。 DBMSのライブスループットを確認したい。
10秒ごとに更新されるスループットのグラフを作成したいと思います。
それ、どうやったら出来るの? MySQLに関する提案も役立ちます。
Postgres統計テーブルを見てください。
コミットの総数を取得するには、SELECT SUM(xact_commit) FROM pg_stat_database
のようなクエリを使用します。このクエリは、サーバーの起動以降、すべてのデータベースで成功したコミットの総数を返します。このクエリをN分/秒ごとに実行すると、ニースグラフを描画できます(現在の値から前の値を引くと、N分で完了したコミットの数がわかります)。
また、これには何らかの監視システムを使用することをお勧めします。これは他の目的にも役立つ可能性があります。個人的には、zabbixを使用しており、テンプレートとカスタムスクリプトの小さなコレクションを維持しているため、次のように表示されます。
Mysqlコマンドshow status like 'Queries'
クエリの総数を示します。この値を取得し、差を使用して特定の時間間隔のクエリレートを計算するスクリプトを定期的に実行できます。
つまり、スクリプトを1分ごとに実行し、実行ごとの合計クエリの変化を取得して60で割ると、1秒あたりのレートクエリの概算が得られます。
例として、このシェルコマンドは「クエリ」フィールドの値を与えるだけです。 mysql -e "show status like 'Queries'\G" | sed 1,2d | cut -d: -f2
MuninやNagiosなどの監視アプリケーションがニーズに合う場合があります。
MuninはRRDToolを使用し、スループットなどのMySQL(おそらくPostgresqlも)統計など、さまざまなソースから「箱から出して」統計を収集してグラフ化できます。
Nagiosは本格的なネットワーク監視アプリケーションですが、いくつかの構成でパフォーマンスデータを収集することもできます。