ラベル Monitoring の投稿を表示しています。 すべての投稿を表示
ラベル Monitoring の投稿を表示しています。 すべての投稿を表示

2012年12月12日

HinemosでPostgreSQLの性能を監視する

PostgreSQL Advent Calendar 2012(全部俺)のDay 12です。

「最近(個人的に)可視化ブームが訪れている」という話を前回のエントリで書きました。

パフォーマンスに関連するデータを可視化してくれるツールにはさまざまな種類があり、いろいろと目移りしてしまうのですが、今回はオープンソースの運用管理ツール「Hinemos」でPostgreSQLのパフォーマンス情報の可視化を行う方法を紹介します。

■HinemosとPostgreSQL性能監視


Hinemosはオープンソースの統合運用管理ソフトウェアです。システム監視機能やジョブ管理機能の機能等を備えており、システムの運用管理をサポートしてくれるソフトウェアになります。

Hinemos:コンピュータ、システム、ネットワークの運用管理を実現するオープンソースソフトウェア(OSS)
http://www.hinemos.info/

先日、この「Hinemosへのアドオン」という形で、PostgreSQLの性能情報を取得・蓄積・可視化・監視することができるツールを作成しました。

Hinemos PostgreSQL性能監視オプション
http://www.uptime.jp/ja/products-services/hinemos-postgres-addon/

このツールは、簡単に言うと「少し大きめのスクリプト」なのですが、オープンソースで公開されており、このスクリプトとHinemosを組み合わせることによって、比較的簡単にPostgreSQLの性能情報を可視化することができます。

2012年12月11日

GrowthForecastでパフォーマンス情報を可視化する

PostgreSQL Advent Calendar 2012(全部俺)のDay 11です。

最近、ちょっとした可視化ブームが訪れております(個人的に)。

運用管理を可視化するツールやプラグインもいろいろと公開されている昨今ですが、個人的にはちょっと前から「GrowthForecast」というツールが気になっていましたので、今回はこれを使ってPostgreSQLを可視化してみようと思います。

■「GrowthForecast」とは何か


「GrowthForecast」は @kazeburo氏 の開発したグラフツールです。単独でWebサーバとして動作し、WebAPIを経由して可視化すべきデータの登録を受け付け、HTTPリクエストでグラフ化された画像データを取得することができるソフトウェアです。

GrowthForecast - Lightning fast Graphing / Visualization
http://kazeburo.github.com/GrowthForecast/

一般的な運用監視ツールは、長期的に運用監視する場合には便利でいいのですが、セットアップに手間がかかるし使いこなすのもいろいろ大変だということで、その辺りを簡単に使えるようにしたい、というツールです。

というわけで、今回はこのGrowthForecastを使ってPostgreSQLの統計情報を可視化してみます。

2012年12月10日

Rを使ってパフォーマンス統計情報を可視化する

PostgreSQL Advent Calendar 2012(全部俺)のDay 10です。

前回までに、PostgreSQLのパフォーマンスデータを取得・蓄積し、それをSQLを用いて解析する方法を紹介してきました。

しかし、増えていくデータを活用して人間が何らかのアクションを取るためには、データを何らかの形で「可視化」して、人間が容易に読解・解釈できる形に変更する必要があります。

今回は解析結果を可視化する方法について簡単に紹介します。ツールとしては、オープンソースの統計処理ソフトウェアである「R」を利用します。

■R、および関連パッケージのインストール


まず、RのサイトからRのバイナリパッケージをダウンロードします。

The R Project for Statistical Computing
http://www.r-project.org/

2012年12月9日

ウィンドウ関数を使ってブロック読み込み量の推移を見る

PostgreSQL Advent Calendar 2012(全部俺)のDay 9です。

前回は、PgPerfパッケージを使って、PostgreSQLの各種統計情報のスナップショットを取得・保存する方法を解説しました。

今回は、その保存したデータを分析する方法をご紹介します。

お題は「データベースのブロック読み込み発生の推移を分析する」です。

■使用するスナップショットテーブル


今回使用するスナップショットテーブルは、
  • pgperf.snapshot
  • pgperf.snapshot_pg_stat_database
の2つのテーブルです。前者には、スナップショットIDと取得日時が、後者にはデータベースごとのブロック読み込みの統計情報のスナップショットが保存されています。
SELECT * FROM pgperf.snapshot LIMIT 5;
SELECT * FROM pgperf.snapshot_pg_stat_database LIMIT 5;
これらのテーブルを分析することで、データベースのブロック読み込みの推移を確認してみます。

なお、これらのテーブルの構造の詳細についてはPgPerfパッケージのユーザーマニュアルを参照してください。

PgPerfパッケージユーザーマニュアル
http://www.uptime.jp/go/pgperf-snapshot/

2012年12月8日

パフォーマンス統計情報のスナップショットを取得する

PostgreSQL Advent Calendar 2012(全部俺)のDay 8です。

今日は、PostgreSQLの統計情報を網羅的に収集・蓄積するPgPerfパッケージの紹介をします。

このパッケージは、本日リリースしたものです。

snaga/pgperf-snapshot
https://github.com/uptimejp/pgperf-snapshot

■PostgreSQLの統計情報の記録と監視


PostgreSQLでは、動作についての内部の情報を取得するために、さまざまなシステムビューやSQL関数があります。


統計情報コレクタ
http://www.postgresql.jp/document/9.0/html/monitoring-stats.html
システム管理関数
http://www.postgresql.jp/document/9.0/html/functions-admin.html

この情報を取得することで、PostgreSQLの内部でどのような処理が行われているのかを知ることができます。

一方で、これらの内部の統計情報は時々刻々と変化していくため、データベースサーバの運用という観点で見る場合には、きちんと記録をしておく必要があります。

2012年12月5日

PostgreSQL版topコマンド「pg_top」を使ってみよう

PostgreSQL Advent Calendar 2012(全部俺)のDay 5です。

Unix系プラットフォームでシステムの開発または管理をしている方は、topというコマンドをご存じだと思います。システムのロードアベレージを見たり、実行中の各プロセスの負荷を見たりするアレですね。

実は、PostgreSQLにも "pg_top" という似たような機能を実現するユーティリティがあります。今回はその使い方を簡単に御紹介します。

■pg_topとは


pg_topはPostgreSQL関連の開発をしているMark Wong氏によって開発されたツールです。

PostgreSQL top (pg_top): Project Home Page
http://ptop.projects.pgfoundry.org/

もともとはpgFoundryでホストされたプロジェクトでしたが、ソースコードの最新版は現在はGitHubにあるようです。

markwkm/pg_top
https://github.com/markwkm/pg_top