1. 程式人生 > 資料庫 >PostgreSQL10基礎(1)Centos7配置

PostgreSQL10基礎(1)Centos7配置

參考文件: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

優勢:

  1. Page更大(一般頁為4K),記憶體管理更高效
  2. Huge Page不會被swap,只能存在於記憶體中