2

実稼働サーバーにPostgreSQL9.1サーバーをインストールしました。postgresql.confシステムに応じてすべてのconfiguration()を変更しました。

すべてが1週間正常に機能しています。

この後、突然、postgresqlサーバーが非常に遅くなります。テーブルのcount(*)クエリでも時間がかかりすぎます。

この後、私は次のような多くの活動を行いました。

  1. システムの負荷を監視する:-0.5〜1.5の範囲内で正常。

  2. モニターアプリケーションにログインしているユーザーの数:-200〜400。通常

  3. 再作成されたインデックス

  4. 理想的なトランザクションを強制終了します。

  5. ロックを確認します(デッドロックが見つかりません)

  6. アプリケーションサーバーが再起動しました。

  7. データベースサーバーが再起動しました。

これをすべて実行した後、データベースサーバーのパフォーマンスは向上しません。

通常のクエリにも時間がかかります。

次に、データベースを削除して再作成し、パフォーマンスが向上します

データベースを再作成した後、すべてが機能します。

しかし、数日後、突然パフォーマンスが低下します。

4

1 に答える 1

2

これは、データベースのアクティブな部分が十分に大きくなり、キャッシュに収まらないため、多くの読み取りで実際のディスクアクセス(桁違いに遅い)が発生しているようです。これは多くの場合、十分に積極的に真空引きしないことが原因です。

その他の要因は、PostgreSQLとオペレーティングシステムの構成に関連している可能性があります。知らずに多くのアドバイスを与えるのは難しいです:

  • 使用しているPostgreSQLの正確なバージョン(9.1はメジャーリリースを示していますが、マイナーリリースが重要な場合もあります)、

  • PostgreSQLをどのように構成したか、

  • 実行しているOS、

  • 使用しているハードウェア(コア、RAM、ドライブアレイ、コントローラー)など。

その一部は、このページにクエリを実行した結果を投稿することで提供できます。

http://wiki.postgresql.org/wiki/Server_Configuration

また、関連するテーブルのpg_classからrelname、relpages、およびreltuplesを選択し、動作が良好な場合と低速の場合の数値を比較すると役立つ場合があります。

追加情報があれば、人々はかなり具体的な推奨事項を作成できるはずです。

于 2012-08-14T00:29:35.693 に答える