内核参数
内存与信号量
表3-1 内存与信号量参数
参数名称 | 描述 | 说明 |
---|---|---|
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 |
默认情况下,共享内存段通常是足够的。大多数情况下只需要调整系统信号就可以了。一个典型的设置如下:
kernel.sem = 4096 4194304 32768 1024
资源限制
默认情况下,针对用户的资源限制,如可打开的文件数量(nofile)等,对Halo数据库运行来说是不足的,需要加以调整。一个典型的设置如下:
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
其它可选项
为了让Halo能够更好的运行,通常还需要做额外的一些调整。以下是一些建议的调整项。请记住,在改变任何一项的数值前,请先进行充分的测试。
-
使用大页(HugePage)。使用大页可以显著减少系统的页表数,从而提升内存的访问性能。常见的大页为2MB,也可以使用1GB的大页。
-
关闭透明大页特性。透明大页的初衷本是降低大页的使用难度。但是该特性实际情况运行并太好,而且有比较多的缺陷。建议关闭。