PostgreSQL10基礎(1)Centos7配置
阿新 • • 發佈:2020-03-02
參考文件:https://www.postgresql.org/docs/10/static/kernel-resources.html#LINUX-MEMORY-OVERCOMMIT
IPC配置
名稱 | 描述 | Postgres值 | 查詢方法 |
---|---|---|---|
SHMAX | 共享記憶體段的最大大小(位元組),一般配置為伺服器記憶體的50% | 建議伺服器記憶體的50% | sysctl -a |grep shmmax |
SHMALL | 可用共享記憶體總量(位元組或頁面) | SHMMAX/PAGE_SIZE | sysctl -a |grep shmall |
可通過getconf PAGE_SIZE查詢PAGE_SIZE大小
以8G記憶體伺服器為例,shmmax設定為允許4G共享記憶體段
修改當前IPC引數,立即生效,重啟後失效
sysctl -w kernel.shmmax=4294967296
sysctl -w kernel.shmall=1048576
設定/etc/sysctl.conf中引數,重啟後生效(以以8G記憶體伺服器為例,shmmax設定為允許4G共享記憶體段為例)
- kernel.shmmax=102410241024*4
- kernel.shmall=kernel.shmmax/PAGE_SIZE
#postgres
kernel.shmmax=4294967296
kernel.shmall=1048576
禁用RemoveIPC
防止使用者登出時,作業系統移除該使用者所有的共享記憶體段和訊號量
編輯/etc/systemd/logind.conf
RemoveIPC=no
重啟服務生效配置
systemctl daemon-reload
systemctl restart systemd-logind
記憶體設定
設定/etc/sysctl.conf中引數,重啟後生效
# 當實體記憶體耗盡後才使用swap
vm.swappiness = 0
#記憶體拒絕等於或者大於總可用 swap 大小以及 overcommit_ratio(預設為50)指定的物理 RAM 比例的記憶體請求
#vm.overcommit_memory = 2
系統限制
可通過命令查詢系統當前限制
ulimit -a
其中open files和max user processes值可能過小
修改/etc/systemd/system.conf
DefaultLimitNOFILE=10000
DefaultLimitNPROC=10000
重啟系統
Huge Page
優勢:
- Page更大(一般頁為4K),記憶體管理更高效
- Huge Page不會被swap,只能存在於記憶體中