web-dev-qa-db-ja.com

データベースのスループット(1秒あたりのクエリ数)を確認するにはどうすればよいですか?

私はPostgreSQLデータベースを持っています。 DBMSのライブスループットを確認したい。

10秒ごとに更新されるスループットのグラフを作成したいと思います。

それ、どうやったら出来るの? MySQLに関する提案も役立ちます。

3
Rahul Prasad

Postgres統計テーブルを見てください。

コミットの総数を取得するには、SELECT SUM(xact_commit) FROM pg_stat_databaseのようなクエリを使用します。このクエリは、サーバーの起動以降、すべてのデータベースで成功したコミットの総数を返します。このクエリをN分/秒ごとに実行すると、ニースグラフを描画できます(現在の値から前の値を引くと、N分で完了したコミットの数がわかります)。

また、これには何らかの監視システムを使用することをお勧めします。これは他の目的にも役立つ可能性があります。個人的には、zabbixを使用しており、テンプレートとカスタムスクリプトの小さなコレクションを維持しているため、次のように表示されます。

enter image description here

4
rvs

Mysqlコマンドshow status like 'Queries'クエリの総数を示します。この値を取得し、差を使用して特定の時間間隔のクエリレートを計算するスクリプトを定期的に実行できます。

つまり、スクリプトを1分ごとに実行し、実行ごとの合計クエリの変化を取得して60で割ると、1秒あたりのレートクエリの概算が得られます。

例として、このシェルコマンドは「クエリ」フィールドの値を与えるだけです。 mysql -e "show status like 'Queries'\G" | sed 1,2d | cut -d: -f2

5
Martin

MuninやNagiosなどの監視アプリケーションがニーズに合う場合があります。

MuninはRRDToolを使用し、スループットなどのMySQL(おそらくPostgresqlも)統計など、さまざまなソースから「箱から出して」統計を収集してグラフ化できます。

Nagiosは本格的なネットワーク監視アプリケーションですが、いくつかの構成でパフォーマンスデータを収集することもできます。

1
gsreynolds