openGauss维护管理之服务端环境检查gs_checkos

时间:2021-03-11 00:58:23

一、概述

gs_checkos工具用来帮助检查操作系统、控制参数、磁盘配置等内容,并对系统控制参数、I/O配置、网络配置和THP服务等信息进行配置。

1、前提条件

• 当前的硬件和网络环境正常。
• 各主机间root互信状态正常。
• 只能使用root用户执行gs_checkos命令。

说明:该工具不支持独立调用,出于安全考虑,企业版安装方式下,前置完成后会自动删除。
所以切换到omm用户后也无法直接使用,表示没这个命令
在安装包解压后的script/gs_checkos可以使用

2、语法

检查操作系统信息
gs_checkos -i ITEM [-f HOSTFILE] [-h HOSTNAME] [-X XMLFILE] [--detail] [-o OUTPUT] [-l LOGFILE]

显示帮助信息
gs_checkos -? | --help

显示版本号信息
gs_checkos -V | --version

3、参数说明

-i
列表编号。格式:-i A、-i B1、-i A1 -i A2或-i A1,A2。
取值范围:A1...A14、B1...B8。
说明:
A1...A14 表示只检查操作系统参数,并不设置。 B1...B8 表示将参数系统参数设置为期望值。 A和B不能同时输入。

-f
主机名称列表文件。
说明: -f和-h参数不能同时使用。
取值范围:主机名称的列表。

-h
指定需要检查的主机名称,可以同时指定多个主机,主机之间使用“,”分割。
取值范围:openGauss的主机名称。如果不指定主机,则检查当前主机。

-X
openGaussXML配置文件。

--detail
显示检查结果详情。

-o
指定OS检查报告输出到指定的文件。
不指定则将检查结果输出到屏幕上。

-l
指定日志文件及存放路径。
默认值:/tmp/gs_checkos/gs_checkos-YYYY-MM-DD_hhmmss.log。

-?, --help
显示帮助信息。

-V, --version
显示版本号信息。

二、试验

1、在root用户下执行gs_checkos先对系统参数进行检查
/opt/software/openGauss/script/gs_checkos -i A
Checking items:
A1. [ OS version status ] : Normal
A2. [ Kernel version status ] : Normal
A3. [ Unicode status ] : Normal
A4. [ Time zone status ] : Normal
A5. [ Swap memory status ] : Normal
A6. [ System control parameters status ] : Normal
A7. [ File system configuration status ] : Normal
A8. [ Disk configuration status ] : Normal
A9. [ Pre-read block size status ] : Normal
A10.[ IO scheduler status ] : Normal
BondMode Null
A11.[ Network card configuration status ] : Warning
A12.[ Time consistency status ] : Normal
A13.[ Firewall service status ] : Normal
A14.[ THP service status ] : Normal
Total numbers:14. Abnormal numbers:0. Warning numbers:1.
Normal 为正常项,Abnormal为必须处理项,Warning可以不处理。
Total numbers:14. Abnormal numbers:0. Warning numbers:1。
表示:总共检查14项,其中Abnormal必须处理项为0,Warning告警项为1。

2、通过执行gs_checkos -i A --detail 查看更详细的信息

3、检查系统参数并将结果打印到文件
gs_checkos -i A -h plat1 -X /opt/software/openGauss/clusterconfig.xml --detail -o /var/log/checkos
#可以查看/var/log/checkos文件观察情况

三、附录系统配置

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.ipv4.tcp_retries2
控制内核向已经建立连接的远程主机重新发送数据的次数,低值可以更早的检测到与远程主机失效的连接,因此服务器可以更快的释放该连接。
发生“connection reset by peer”时可以尝试调大该值规避问题。
推荐取值12

vm.overcommit_memory
控制在做内存分配的时候,内核的检查方式。
0:表示系统会尽量精确计算当前可用的内存。
1:表示不作检查直接返回成功。
2:内存总量×vm.overcommit_ratio/100+SWAP的总量,如果申请空间超过此数值则返回失败。
内核默认是2过于保守,推荐设置为0,如果系统压力大可以设置为1。
推荐取值0

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.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

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

2、文件系统参数

  • soft nofile
    说明:soft nofile表示软限制,用户使用的文件句柄数量可以超过该限制,但是如果超过会有告警信息。
    推荐取值:1000000
  • hard nofile
    说明:hard nofile表示硬限制,是一个严格的限制,用户使用的文件句柄数量一定不能超过该设置。
    推荐取值:1000000
  • stack size
    说明:线程堆栈大小。
    推荐值:3072