配置操作系统参数

openGauss要求各主机上的操作系统参数设置成一定的值,以满足系统运行的性能要求等。

这些参数有些会在openGauss安装环境准备阶段完成设置,且这些参数将直接影响openGauss的运行状态,请仅在确认必要时进行手动调整。方法如下:

  1. 以root用户身份登录服务器。
  2. 对文件“/etc/sysctl.conf”进行编辑修改。

    具体参数的修改请参见操作系统参数

  3. 执行如下命令使修改配置生效。

    1. sysctl -p

操作系统参数

表 1 操作系统参数

参数名称

参数说明

推荐取值

net.ipv4.tcp_max_tw_buckets

表示同时保持TIME_WAIT状态的TCP/IP连接最大数量。如果超过所配置的取值,TIME_WAIT将立刻被释放并打印警告信息。

10000

net.ipv4.tcp_tw_reuse

允许将TIME-WAIT状态的sockets重新用于新的TCP连接。

  • 0表示关闭。
  • 1表示开启。

1

net.ipv4.tcp_tw_recycle

表示开启TCP连接中TIME-WAIT状态sockets的快速回收。

  • 0表示关闭。
  • 1表示开启。

1

net.ipv4.tcp_keepalive_time

表示当keepalive启用的时候,TCP发送keepalive消息的频度。

30

net.ipv4.tcp_keepalive_probes

在认定连接失效之前,发送TCP的keepalive探测包数量。这个值乘以tcp_keepalive_intvl之后决定了一个连接发送了keepalive之后可以有多少时间没有回应。

9

net.ipv4.tcp_keepalive_intvl

当探测没有确认时,重新发送探测的频度。

30

net.ipv4.tcp_retries1

在连接建立过程中TCP协议最大重试次数。

5

net.ipv4.tcp_syn_retries

TCP协议SYN报文最大重试次数。

5

net.ipv4.tcp_synack_retries

TCP协议SYN应答报文最大重试次数。

5

net.sctp.path_max_retrans

SCTP协议最大重试次数。

10

net.sctp.max_init_retransmits

SCTP协议INIT报文最大重试次数。

10

net.sctp.association_max_retrans

SCTP协议单个逻辑连接最大重试次数。

10

net.sctp.hb_interval

SCTP协议心跳检测包重传间隔。

30000

net.ipv4.tcp_retries2

控制内核向已经建立连接的远程主机重新发送数据的次数,低值可以更早的检测到与远程主机失效的连接,因此服务器可以更快的释放该连接。

发生“connection reset by peer”时可以尝试调大该值规避问题。

12

vm.overcommit_memory

控制在做内存分配的时候,内核的检查方式。

  • 0:表示系统会尽量精确计算当前可用的内存。
  • 1:表示不作检查直接返回成功。
  • 2:内存总量×vm.overcommit_ratio/100+SWAP的总量,如果申请空间超过此数值则返回失败。

内核默认是2过于保守,推荐设置为0,如果系统压力大可以设置为1。

0

net.sctp.sndbuf_policy

SCTP发送缓冲区分配原则。

  • 0为按连接。
  • 1为按耦联。

0

net.sctp.rcvbuf_policy

SCTP接收缓冲区分配原则。

  • 0为按连接。
  • 1为按耦联。

0

net.sctp.sctp_mem

内核SCTP协议栈的最大可用内存,分无压力,有压力,和压力大三个区间,压力大时会丢包,单位为页面。

94500000 915000000 927000000

net.sctp.sctp_rmem

内核SCTP协议栈的接收总可用内存,分无压力,有压力和压力大三个区间,压力大时会丢包,单位为页面。

8192 250000 16777216

net.sctp.sctp_wmem

内核SCTP协议栈的发送总可用内存,分无压力,有压力和压力大三个区间,压力大时会丢包,单位为页面。

8192 250000 16777216

net.ipv4.tcp_rmem

TCP协议接收端缓冲区的可用内存大小。分无压力,有压力,和压力大三个区间,单位为页面。

8192 250000 16777216

net.ipv4.tcp_wmem

TCP协议发送端缓冲区的可用内存大小。分无压力,有压力,和压力大三个区间,单位为页面。

8192 250000 16777216

net.core.wmem_max

socket发送端缓冲区大小的最大值。

21299200

net.core.rmem_max

socket接收端缓冲区大小的最大值。

21299200

net.core.wmem_default

socket发送端缓冲区大小的默认值。

21299200

net.core.rmem_default

socket接收端缓冲区大小的默认值。

21299200

net.ipv4.ip_local_port_range

物理机可用临时端口范围。

26000-65535

kernel.sem

内核信号量参数设置大小。

250 6400000 1000 25600

vm.min_free_kbytes

保证物理内存有足够空闲空间,防止突发性换页。

系统总内存的5%

net.core.somaxconn

定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数。

65535

net.ipv4.tcp_syncookies

当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击。

  • 0表示关闭SYN Cookies。
  • 1表示开启SYN Cookies。

1

net.sctp.addip_enable

SCTP动态地址重置支持开关

  • 0表示关闭。
  • 1表示开启。

0

net.core.netdev_max_backlog

在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。

65535

net.ipv4.tcp_max_syn_backlog

记录的那些尚未收到客户端确认信息的连接请求的最大值。

65535

net.ipv4.tcp_fin_timeout

系统默认的超时时间。

60

kernel.shmall

内核可用的共享内存总量。

1152921504606846720

kernel.shmmax

内核参数定义单个共享内存段的最大值。

18446744073709551615

net.ipv4.tcp_sack

启用有选择的应答,通过有选择地应答乱序接受到的报文来提高性能,让发送者只发送丢失的报文段(对于广域网来说)这个选项应该启用,但是会增加对CPU的占用。

  • 0表示关闭。
  • 1表示开启

1

net.ipv4.tcp_timestamps

TCP时间戳(会在TCP包头增加12节),以一种比重发超时更精确的方式(参考RFC 1323)来启用对RTT的计算,启用可以实现更好的性能。

  • 0表示关闭。
  • 1表示开启

1

vm.extfrag_threshold

系统内存不够用时,linux会为当前系统内存碎片情况打分,如果超过vm.extfrag_threshold的值,kswapd就会触发memory compaction。所以这个值设置的接近1000,说明系统在内存碎片的处理倾向于把旧的页换出,以符合申请的需要,而设置接近0,表示系统在内存碎片的处理倾向做memory compaction。

500

vm.overcommit_ratio

系统使用绝不过量使用内存的算法时,系统整个内存地址空间不得超过swap+RAM值的此参数百分比,当vm.overcommit_memory=2时此参数生效。

90

/sys/module/sctp/parameters/no_checksums

SCTP协议是否关闭checksum。

0

MTU

节点网卡最大传输单元。OS默认值为1500,调整为8192可以提升SCTP协议数据收发的性能。

8192

文件系统参数

  • soft nofile

    说明:soft nofile表示软限制,用户使用的文件句柄数量可以超过该限制,但是如果超过会有告警信息。

    推荐取值:1000000

  • hard nofile

    说明:hard nofile表示硬限制,是一个严格的限制,用户使用的文件句柄数量一定不能超过该设置。

    推荐取值:1000000

  • stack size

    说明:线程堆栈大小。

    推荐值:3072

transparent_hugepage设置

openGauss默认关闭使用transparent_hugepage服务,并将关闭命令写入操作系统启动文件。

文件句柄设置

需要对文件句柄数进行手动设置时,使用root用户执行如下命令进行参数修改:

  1. echo "* soft nofile 1000000" >>/etc/security/limits.conf
  2. echo "* hard nofile 1000000" >>/etc/security/limits.conf

完成修改后,需重启操作系统使得设置的参数生效。

表 2 文件句柄数设置

参数名

说明

预安装时是否由脚本自动设置

推荐取值

soft nofile

soft nofile表示软限制,即表示任何用户能打开的最大文件数量为1000000,不管它开启多少个shell。

1000000

hard nofile

hard nofile表示硬限制,软限制要小于等于硬限制。

1000000

系统支持的最大进程数设置

需要对系统支持的最大进程数进行手动设置时,执行如下命令打开conf文件。

  1. vim /etc/security/limits.d/90-nproc.conf

修改* soft nproc参数。

完成修改后,需重启操作系统使得设置的参数生效。

表 3 系统支持的最大进程数设置

参数名

说明

预安装时是否由脚本自动设置

推荐取值

* soft nproc

soft nproc参数用来限制每个用户的最大processes数量。

60000

网卡参数配置

表 4 网卡参数配置

参数名

说明

预安装时是否由脚本自动设置

推荐取值

rx

网卡接收队列长度设置

4096

tx

网卡传送队列长度设置

4096

mtu

网卡最大传输单元设置

x86是1500

ARM是8192

配置操作系统参数 - 图1 须知:
- 网卡参数配置功能只针对万兆及万兆以上级别的业务网卡。即backIp1所绑定的网卡。
- 设置网卡参数的命令只有在设置成功后,才会被写入系统启动文件。执行失败的信息会被记入后台日志中。