ユーザ用ツール

サイト用ツール


serverapps:db:postgresql:tune

文書の過去の版を表示しています。


チューニング

system

現状

# ipcs -M
shminfo:
        shmmax:     33554432    (max shared memory segment size)
        shmmin:            1    (min shared memory segment size)
        shmmni:          192    (max number of shared memory identifiers)
        shmseg:          128    (max shared memory segments per process)
        shmall:         8192    (max amount of shared memory in pages)

または

# sysctl -a | grep kern.ipc
kern.ipc.maxsockbuf: 262144
kern.ipc.sockbuf_waste_factor: 8
kern.ipc.somaxconn: ......
kern.ipc.msgseg: 2048
kern.ipc.msgssz: 8
kern.ipc.msgtql: 40
kern.ipc.msgmnb: 2048
kern.ipc.msgmni: 40
kern.ipc.msgmax: 16384
kern.ipc.semaem: 16384
kern.ipc.semvmx: 32767
kern.ipc.semusz: 136
kern.ipc.semume: 10
kern.ipc.semopm: 100
kern.ipc.semmsl: 60
kern.ipc.semmnu: 30
kern.ipc.semmns: 60
kern.ipc.semmni: 10
kern.ipc.semmap: 30
......

shmmaxが32M(33554432/1024/1024)。これを増加させる。

/etc/sysctl.confに以下を記述。1)2)

kern.ipc.shmmax=536870912
kern.ipc.shmall=131072

/boot/loader.confに以下の記述をして、セマフォ関係もDefaultの5倍くらいにしておく

kern.ipc.semmni=50
kern.ipc.semmns=300
kern.ipc.semmnu=150

共有バッファ

/usr/local/pgsql/data/postgresql.conf 3)

shared_buffers = 28MB                   # min 128kB
  ↓
shared_buffers = 256MB                  # min 128kB

コネクション

/usr/local/pgsql/data/postgresql.conf 4)

max_connections = 48
  ↓
max_connections = 128

トランザクションログバッファ

/usr/local/pgsql/data/postgresql.conf

#wal_buffers = 64kB                     # min 32kB
  ↓
#wal_buffers = 256kB                    # min 32kB

設定を見る

showコマンド

SHOW all;
max_connections128Sets the maximum number of concurrent connections.
max_files_per_process1000Sets the maximum number of simultaneously open files for each server process.
max_function_args100Shows the maximum number of function arguments.
max_identifier_length63Shows the maximum identifier length.

または

SHOW max_connections;
128

現在のコネクション数を調べる

SELECT   datname, usename, COUNT(*)
FROM     pg_stat_activity
GROUP BY datname, usename;

参考

1)
shmmax:512M=(536870912/1024/1024)とした
2)
shmall:131072=536870912/4096
3)
DB専用サーバであれば総メモリの 25% 程度が良いとされている
4)
同時接続数。WEB など、多数の同時アクセスが想定されるのであれば大きく、バッチ処理など同時アクセス数が少ない環境では小さくする。
serverapps/db/postgresql/tune.1515117572.txt.gz · 最終更新: 2018/01/05 01:59 by hayashi