GitLabのパフォーマンスチューニング検討の関係で調査したメモ
PostgreSQLの設定値を変える前に確認が必要とのこと
検証環境
- Ubuntu 16.04 x86_64 (Linux kernel 3.13.0-83-generic)
確認方法
種別 | 設定値の意味 |
---|---|
/proc/sys/kernel/shmall | 一度にシステム上で使用可能な共有メモリーページの合計数 |
/proc/sys/kernel/shmmax | カーネルが許可する共有メモリーセグメントの最大数 [Byte] |
/proc/sys/kernel/shmmni | システム全体の共有メモリセグメントの最大数(注意: minではなくmni) |
マニュアルやブログ記事等にはshmminも存在するとのことですが、検証環境のUbuntu16.04では見当たりませんでした。
設定例(Ubuntu16.04)
$ cat /proc/sys/kernel/shmall
4194304
$ cat /proc/sys/kernel/shmmax
17179869184
$ echo $(($(cat /proc/sys/kernel/shmmax) / 1024 / 1024 / 1024 )) GB
16 GB
$ cat /proc/sys/kernel/shmmni
4096
以前のカーネルではわかりませんが、16GBあれば大丈夫じゃないですかね・・・?
デフォルト設定値の定義箇所
Linux/include/uapi/linux/shm.h - Linux Cross Reference - Free Electrons
参考
共有メモリ設定パラメータのshmallとshmmax - shibainu55日記
5.4. 容量のチューニング
カーネルパラメタの調整