ユーザ用ツール

サイト用ツール


サイドバー

Index

はじめてのおつかい






DokuWiki整形記法


PlayGround



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
......
 To allow many simultaneous connections to your PostgreSQL server, you
 should raise the SystemV shared memory limits in your kernel. Here are
 example values for allowing up to 180 clients (configurations in
 postgresql.conf also needed, of course):
   options         SYSVSHM
   options         SYSVSEM
   options         SYSVMSG
   options         SHMMAXPGS=65536
   options         SEMMNI=40
   options         SEMMNS=240
   options         SEMUME=40
   options         SEMMNU=120

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.txt · 最終更新: 2023/07/28 20:11 by hayashi