系统环境配置
内存与信号量
表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