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,只能存在于内存中
PostgreSQL10基础(1)Centos7配置PostgreSQL10基础(1)Centos7配置 supermancoke 发布了36 篇原创文章 · 获赞 3 · 访问量 3万+ 私信 关注
上一篇:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]


下一篇:Linux防暴力破解