跳到主要内容
版本:1.0.14

内核参数

内存与信号量

表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

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

一个典型的设置如下:

vi /etc/sysctl.conf

kernel.sem = 4096 4194304 32768 1024

资源限制

默认情况下,针对用户的资源限制,如可打开的文件数量(nofile)等,对Halo数据库运行来说是不足的,需要加以调整。

一个典型的设置如下:

vi /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

其它可选项

为了让Halo能够更好的运行,通常还需要做额外的一些调整。以下是一些建议的调整项。请记住,在改变任何一项的数值前,请先进行充分的测试。

  • 使用大页(HugePage)。使用大页可以显著减少系统的页表数,从而提升内存的访问性能。常见的大页为2MB,也可以使用1GB的大页。

  • 关闭透明大页特性。透明大页的初衷本是降低大页的使用难度。但是该特性实际情况运行并太好,而且有比较多的缺陷。建议关闭。