1 进程目录
Halo数据库需要额外的路径来存放临时进程文件。默认路径为:/var/run/halo。该默认路径安装时默认不存在,需要手工进行创建:
mkdir /var/run/halo
chown halo:halo /var/run/halo
/var/run目录下的用户内容在操作系统重启后会被系统自动清理,为防止因为系统重启导致的路径丢失错误,可以在/etc/rc.local中配置系统重启后自动重建路径。在/etc/rc.local中增加以下内容:
vi /etc/rc.local
/usr/bin/mkdir /var/run/halo
/usr/bin/chown halo:halo /var/run/halo
/etc/rc.local默认是缺少执行权限的,需要增加执行权限:
chmod +x /etc/rc.d/rc.local
请不要将进程目录设置在系统临时目录/tmp下,/tmp下的目录会被系统自动清理!
2 内核参数
内存与信号量
表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能够更好的运行,通常还需要做额外的一些调整。以下是一些建议的调整项。请记住,在改变任何一项的数值前,请先进行充分的测试。
l 使用大页(HugePage)。使用大页可以显著减少系统的页表数,从而提升内存的访问性能。常见的大页为2MB,也可以使用1GB的大页。
l 关闭透明大页特性。透明大页的初衷本是降低大页的使用难度。但是该特性实际情况运行并太好,而且有比较多的缺陷。建议关闭。




