重いSQLの見つけ方

http://blog.asial.co.jp/383
PostgreSQLを遅くしている犯人はどこだ?

共有メモリの調節

確認

# ipcs -l -m
------ シェアードメモリの制限 --------
セグメント数の最大値 = 4096
セグメントサイズの最大 (単位:KB) = 32768
max total shared memory (kbytes) = 8388608
最小セグメントサイズ (単位:KB) = 1

128MBに設定 128 * 1024 * 1024 = 134217728

# echo 134217728 > /proc/sys/kernel/shmmax

再確認

# ipcs -l -m
------ シェアードメモリの制限 --------
セグメント数の最大値 = 4096
セグメントサイズの最大 (単位:KB) = 131072
max total shared memory (kbytes) = 8388608
最小セグメントサイズ (単位:KB) = 1

再起動時も有効にするため2行追加

# vi /etc/sysctl.conf
kernel.shmall = 134217728
kernel.shmmax = 134217728

サーバー再起動

shared_buffers

共有バッファでPostgreSQLが独自に用意しているディスクキャッシュ

shared_buffers = 10000
OR
shared_buffers = 24MB

work_mem

ソートバッファでテーブルの結合、ソート時に利用される
PostgreSQL8より前は sort_mem

work_mem = 4096
OR
work_mem = 4MB

wal_buffers

トランザクションログバッファを調節
9.1.1あたりから -1 でOK

wal_buffers = 32
OR
wal_buffers = 64kB
OR
wal_buffers = -1

PostgreSQLを高速化する16のポイント

http://neta.ywcafe.net/000960.html


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-12-01 (木) 15:12:24 (2449d)