Skip to main content
Version: 1.0.14

系统环境配置

内存与信号量

表2-8 内存与信号量参数

参数名称描述说明
SHMMAX共享内存段的最大尺寸(字节)至少 1KB
SHMMIN共享内存段的最小尺寸(字节)至少 1B
SHMALL可用共享内存的总量(字节)同 SHMMAX
SHMSEG每个进程的最大共享内存段数目只需要 1 段
SHMMNI共享内存段总量
SEMMNI最大信号量标识至少 ceil((max_connections+autovacuum_max_workers+max_wal_senders+max_worker_processes+5)/16)
SEMMNS最大信号量至少 ceil((max_connections+autovacuum_max_workers+max_wal_senders+max_worker_processes+5)/16)*17
SEMMSL每个集合中的最大信号量至少 17
SEMMAP信号量项数目
SEMVMX信号量的最大值至少 1000

默认情况下,共享内存段通常是足够的。大多数情况下只需要调整系统信号就可以了。

编辑 /etc/sysctl.conf,添加以下内容:

kernel.sem = 4096 4194304 32768 1024

执行生效:

sysctl -p

修改资源限制

编辑 /etc/security/limits.conf,添加以下参数:

halo soft nproc unlimited
halo hard nproc unlimited
halo soft nofile 1024000
halo hard nofile 1024000
halo soft stack unlimited
halo hard stack unlimited
halo soft memlock unlimited
halo hard memlock unlimited
halo soft core unlimited
halo hard core unlimited

防火墙设置

Linux 操作系统默认开启了防火墙,禁用所有端口。远程访问数据库需要开启数据库的端口。测试环境建议直接关闭防火墙,生产环境建议开启防火墙上的端口。

RedHat / CentOS / OpenEuler / 麒麟 / 统信等系统:

关闭防火墙:

systemctl stop firewalld.service
systemctl disable firewalld.service

开放数据库端口(以 1921 为例):

firewall-cmd --add-port=1921/tcp # 临时添加
firewall-cmd --permanent --add-port=1921/tcp # 永久添加
firewall-cmd --reload # 重载生效

验证:

firewall-cmd --list-ports | grep 1921

Ubuntu / Debian 等系统:

关闭防火墙:

sudo ufw disable

开放数据库端口:

sudo ufw allow 1921
sudo ufw reload

验证:

sudo netstat -tunlp | grep 1921

(可选)关闭 SELinux

部分操作系统没有 SELinux,可直接跳过。

临时关闭:

setenforce 0

永久关闭:

vi /etc/selinux/config

SELINUX 修改为:

SELINUX=disabled