PostgreSQLのチューニングは下記のようにしました。これで良いのか、全く自信がありません。
変更、追加した項目だけです。
/etc/sysctl.conf
kernel.shmmax = 268435456
fs.file-max = 16384
/usr/local/pgsql/data/postgresql.conf
listen_addresses = '*'
max_connections = 64
superuser_reserved_connections = 32
shared_buffers = 4096 # min 16 or max_connections*2, 8KB each
work_mem = 4096 # min 64, size in KB
silent_mode = on
カーネルのshared memory は上限があるのかどうかわかりませんが、以前はメモリー512Mに対して128Mを割り当てていました。今回は1G積んでいるので倍の256Mとしました。
(ホームページあさっていると、「shared memoryはメモリーの1/4が基準」というページがあったので、そのまま採用して256Mにしました。)
fs.file-maxはよくわかりませんが、旧サーバーと同じ設定にしました。
max_connectionは以前は32にしていましたが、今回はsuperuser_reserved_connectionsという項目が新たに追加されているようなので、全体として64、superuserとして32としました。
(極めて邪道と思いますが、全てのクライアントはpostgresでログオンしています。Accessのデータベースウインドウを非表示にしてしまえば、AccessのプログラムでしかPostgreSQLのテーブルを操作できないので、postgresでログオンしても特に支障がないのです。ODBCドライバーをユーザーが独自にリンクすればどんな操作でもできますが、まあよしとしています。)
shared_buffers=4096は32Mになります。現在使用中の販売管理プログラムはpg_dumpして136Mくらいなので、shared_buffersが32Mは十分ではないかと思います。旧サーバーと同じにしました。work_memも同様です。
変更、追加した項目だけです。
/etc/sysctl.conf
kernel.shmmax = 268435456
fs.file-max = 16384
/usr/local/pgsql/data/postgresql.conf
listen_addresses = '*'
max_connections = 64
superuser_reserved_connections = 32
shared_buffers = 4096 # min 16 or max_connections*2, 8KB each
work_mem = 4096 # min 64, size in KB
silent_mode = on
カーネルのshared memory は上限があるのかどうかわかりませんが、以前はメモリー512Mに対して128Mを割り当てていました。今回は1G積んでいるので倍の256Mとしました。
(ホームページあさっていると、「shared memoryはメモリーの1/4が基準」というページがあったので、そのまま採用して256Mにしました。)
fs.file-maxはよくわかりませんが、旧サーバーと同じ設定にしました。
max_connectionは以前は32にしていましたが、今回はsuperuser_reserved_connectionsという項目が新たに追加されているようなので、全体として64、superuserとして32としました。
(極めて邪道と思いますが、全てのクライアントはpostgresでログオンしています。Accessのデータベースウインドウを非表示にしてしまえば、AccessのプログラムでしかPostgreSQLのテーブルを操作できないので、postgresでログオンしても特に支障がないのです。ODBCドライバーをユーザーが独自にリンクすればどんな操作でもできますが、まあよしとしています。)
shared_buffers=4096は32Mになります。現在使用中の販売管理プログラムはpg_dumpして136Mくらいなので、shared_buffersが32Mは十分ではないかと思います。旧サーバーと同じにしました。work_memも同様です。