暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

Halo数据库系统配置

原创 贾桂军 2023-11-09
15166

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能够更好的运行,通常还需要做额外的一些调整。以下是一些建议的调整项。请记住,在改变任何一项的数值前,请先进行充分的测试。

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

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

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论