【特集】

期待度大のバージョンアップ - PostgreSQL 8.3の改良点を徹底分析

15 その他の運用管理機能

    石井達夫  [2007/11/20]

    ロック待ちに関するログ

    データベースアプリケーションの性能が低下する主な原因は、不適切なデータベース設計である。たとえば、インデックスが適切に設定されていなければ性能は低下する。しかし、CPUもディスクもさほど使われていないのにレスポンスが低下するのであれば、ロック待ちを疑ったほうがよい。PostgreSQL 8.3では、「log_lock_waits」を有効にすることにより、deadlock_timeoutを超えて待っているトランザクションをログに表示できる。

    LOG:  process 12274 still waiting for AccessExclusiveLock on relation 16467 of database 16384 after 1003.966 ms
    STATEMENT:  lock table t1;
    

    Autovacuum

    autovacuumは、テーブルに対する更新の頻度によってVACUUMを実行する仕組みである。PostgreSQL 8.3ではデフォルトでautovacuumはオンになった。つまり、8.3からはautovacuumを使うことが推奨される。

    これにともない、statistics collectorの制御パラメータは名前が変わって以下の3つになり、すべてデフォルトでオンになった。

    track_activities
    track_counts
    update_process_title
    

    autovacuumを動かすためには、少なくともtrack_countsをオンにする必要がある。

    autovacuumの動作は、「log_autovacuum_min_duration」を有効にすることよってログできる。-1でログなし、0ですべてのログ、そして0以上にすることにより、指定した時間以上に時間がかかっている事象をログする。単位はミリ秒である。

    関連したタグ

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン