gs_checkos工具来帮助检查操作系统、控制参数、磁盘配置等内容,并对系统控制参数、I/O配置、网络配置和THP服务等信息进行配置。
前提条件
- 当前的硬件和网络环境正常。
- 执行集群间的gs_checkos检测,需要各主机间互信状态正常。如果不确定互信状态,可以参考gs_sshexkey检查和创建互信。
语法
- 检查操作系统信息
gs_checkos -i ITEM [-f HOSTFILE] [-h HOSTNAME] [-X XMLFILE] [--detail] [--detail-all] [-o OUTPUT] [-l LOGFILE] [--force]
显示帮助信息
gs_checkos { -? | --help }
显示版本号信息
gs_checkos { -V | --version }
参数说明
- -i
列表编号。格式:-i A、-i B1、-i A1 -i A2或-i A1,A2。
取值范围:A1...A14、B1...B6、C1、C2。
- A1...A15表示只检查操作系统参数,并不设置。
- B1...B7表示将系统参数设置为期望值。
- C1 表示进行NTP设置,该设置会在gs_preinstall中执行。
- C2 表示设置HugePage参数,该项设置只有节点上的DN正常才可以设置成功,不在gs_preinstall中执行。
- root用户执行C2时,需先使用命令“source file_path”来导入集群环境变量,环境变量分离集群的file_path为预安装时指定的环境变量分离文件路径,非环境变量分离集群的file_path为/home/omm/.bashrc(omm为集群用户名)。
- A、B和C不能同时输入。
- root用户可以执行全部的检查项。
- 集群用户只能执行部分A系列的检查项。且RedHat和Euler操作系统下无法执行A14项。SuSE系统下无法执行A11和A13项。
详细的检查项请参见表1。
- -h
指定需要检查的主机名称,可以同时指定多个主机,主机之间使用“,”分割。
取值范围:集群的主机名称。如果不指定主机,则默认为命令执行节点。
- -X
集群配置文件的路径。
- 环境变量分离的集群,root用户和集群用户source过环境变量分离文件之后,可以不加-X参数。
- 环境变量不分离的集群,root用户source过集群用户的.bashrc文件之后,可以不加-X参数,集群用户无此限制。
- -f
保存需要执行检查的主机的节点名称的文件。每个主机节点名称使用换行符隔开。
取值范围:集群的主机名称。如果不指定主机,则默认为命令执行节点。
- --detail
显示检查结果详情。
- --detail-all
显示所有检查结果详情。
- -o
指定OS检查报告输出到指定的文件。
不指定则将检查结果输出到屏幕上。
- -l
指定日志文件及存放路径。
root用户下运行时的默认值:/tmp/gs_checkos/gs_checkos.log。
集群用户下运行时的默认值:$GAUSSLOG/om/gs_checkos.log。
- --force
在配置NTP服务前使用系统命令修改时间。该参数仅在-i的值为C1时有效。
- -?,--help
显示帮助信息。
- -V,--version
显示版本号信息。
编号 | 检查项 | 检查项详细说明 |
---|---|---|
A1 | 操作系统版本(OS version status) | 操作系统版本检查,保证主机平台是Red Hat7.1/7.2。保证主机平台是SUSE 11 SP3/SP4。 |
A2 | 内核版本(Kernel version status) | 内核版本检查,在操作系统版本正常情况下,具体小版本可以不完全一致,检查结果为Warning。 |
A3 | Unicode状态(Unicode status) | 字符集设置检查,保证集群各个主机的字符集一致。 |
A4 | 时区状态(Time zone status) | 时区时间设置检查,保证集群各个主机的时区状态一致。 |
A5 | 交换内存状态(Swap memory status) | Swap分区检查,各个主机的swap分区大小必须小于等于各主机内存总大小。 |
A6 | 系统控制参数(System control parameters status) | 内核参数检查,保证当前内核中的参数值和默认的期望值保持一致。 详细的内核参数请参见操作系统参数。 |
A7 | 文件系统配置状态(File system configuration status) | 系统文件句柄检查,系统文件句柄的参数值必须大于等于100万。 |
A8 | 磁盘配置状态(Disk configuration status) | 硬盘挂载参数检查,格式为xfs的硬盘,其挂载格式必须为:"rw,noatime,inode64,allocsize=16m"。 |
A9 | 预读块大小状态(Pre-read block size status) | 预读参数检查,预读参数期望值为16384。 |
A10 | IO调度状态(IO scheduler status) | IO调度策略检查,IO调度策略的方式为deadline;设置fs.aio-max-nr参数来检查,fs.aio-max-nr参数值按照节点数据实例数*1048576计算。 |
A11 | 网卡配置状态(Network card configuration status) | 万兆网卡参数检查。
|
A12 | 时间一致性(Time consistency status) | 时间一致性检查,检查各主机的系统时间误差不超过 2 秒,并检查NTP服务是否存在。 |
A13 | 防火墙状态(Firewall service status) | 防火墙检查, 确认防火墙的状态为关闭状态。 |
A14 | THP服务(THP service status) | THP服务检查,确认THP服务状态为关闭状态。 |
A15 | Storcli工具(Storcli tool status) | Storcli工具检查,确认Storcli工具已安装。 |
B1 | 设置系统控制参数(Set system control parameters) | 内核参数设置,当实际值不满足检查条件期望时,对结果为Abnormal项参数进行修改设置;对Warning项不进行设置,由用户根据实际环境设置。 |
B2 | 设置文件系统配置值(Set file system configuration value) | 系统文件句柄设置,当系统文件句柄的参数值小于100万时,对其进行修改设置。 |
B3 | 设置预读块大小值(Set pre-read block size value) | 硬盘预读参数设置,当系统的实际值小于16384时,对其进行修改设置。 |
B4 | 设置IO调度值(Set IO scheduler value) | IO配置项的设置,当系统的实际值不为deadline或者fs.aio-max-nr参数值不等于节点数据实例数*1048576时,对其进行修改设置。 |
B5 | 设置网卡配置值(Set network card configuration value) | 万兆网卡参数设置,对不满足万兆网卡的RX、TX参数进行设置,不对MTU参数进行设置。 |
B6 | 设置THP服务(Set THP service) | THP服务设置,如果THP服务启动,将该服务关闭。 |
B7 | 安装Storcli工具(Set Storcli tool) | Storcli 工具安装,如果Storcli 工具未安装,则进行安装(依赖工具:dmidecode、rpm、unzip)。 |
C1 | 设置NTP服务(Set NTP service) | 集群有配置NTP服务时,使用集群配置文件中指定的外部时钟源进行NTP配置; 如果没有配置NTP服务,则使用集群配置文件中的随机两个集群节点作为时钟源。 时钟源节点可在设置命令中添加--detail参数,显示作为时钟源的节点,或者使用“ntpq -p”命令在各节点查看ntp配置获取。 时钟源需要与集群节点网络畅通。 若配置的NTP服务器全部发生故障或网络中断,则无法保证同步时间。 |
C2 | 设置HugePage参数(Set HugePage parameter) | PAGE设置,根据数据库USE_LARGE_PAGES参数的值确定设置情况:
|
- A6选项检查标准来自配置文件check_list.conf下[/etc/sysctl.conf]、[SUGGEST:/etc/sysctl.conf]域:
若[/etc/sysctl.conf]下参数值与系统实际参数值不同,A6检查提示Abnormal,可以使用B1参数进行设置。
若[SUGGEST:/etc/sysctl.conf]下参数值与系统实际参数值不同,A6检查提示Warning,B1参数不会进行设置,需根据实际情况进行手动设置。
- A7选项检查系统文件句柄标准来自配置文件check_list.conf下[/etc/security/limits.conf]域open file和max user processes参数,可以使用B2参数进行设置。
- A11选项检查万兆网卡参数"MTU"、"RX"、"TX"标准来自配置文件check_list.conf下[/sbin/ifconfig]域,可以使用B5参数对RX、TX进行设置,MTU需用户手动设置。
- A15和B7分别为Storcli工具的检查与安装。检查依赖的工具有:dmidecode、rpm;安装依赖的工具有:dmidecode、rpm、unzip。执行操作前需要保证依赖工具已安装。
- C2设置HugePage参数时,首先需要确保节点上的DN正常,其次还需要使环境变量生效。环境变量分离情况下,使用“source mppfle”命令使环境变量生效,其中mppfile是使用的环境变量分离文件;环境变量未分离情况下,使用“source /home/安装用户/.bashrc”命令使环境变量生效。
- 在集群未安装的情况下,gs_checkos只能使用路径执行,在集群已安装的情况下,在集群环境中,可直接使用。
- 使用--force参数时,默认以当前节点时间为准,强制同步其他节点时间(强制同步时间没有NTP服务,同步完之后仍会存在微小时间差,时间差大小和网络延迟正相关),然后才会去设置并开启NTP服务(NTP服务器选取逻辑不变)。
操作系统参数
- 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_retries2
说明:控制内核向已经建立连接的远程主机重新发送数据的次数,低值可以更早的检测到与远程主机失效的连接,因此服务器可以更快的释放该连接。
发生“conection reset by peer”时可以尝试调大该值规避问题。
推荐取值:80
- 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
- kernel.sem
说明:内核信号量参数设置大小。
推荐取值:50100 128256000 50100 2560
- 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
- kernel.core_pattern
说明:core文件生成。
推荐取值:/corefile/core.%p.%e
- kernel.core_uses_pid
说明:core文件生成。
推荐取值:1
- kernel.shmmni
说明:共享内存段的大数量。
推荐取值:4096
- net.ipv4.ip_local_port_range
说明:用于向外连接的端口范围。
推荐取值:9000 65500
- fs.aio-max-nr
说明:同时可以拥有的异步IO请求数目。
推荐取值:1048576
- fs.file-max
说明:大打开文件句柄数。
推荐取值:6815744
文件系统参数
- soft nofile
说明:soft nofile表示软限制,用户使用的文件句柄数量可以超过该限制,但是如果超过会有告警信息。
推荐取值:1000000
- hard nofile
说明:hard nofile表示硬限制,是一个严格的限制,用户使用的文件句柄数量一定不能超过该设置。
推荐取值:1000000
- soft nproc
说明:soft nproc表示软限制,用户大进程数可以超过该限制,但是如果超过会有告警信息。
推荐取值:55609
- hard nproc
说明:hard nproc表示硬限制,是一个严格的限制,用户大进程数一定不能超过该设置。
推荐取值:55609
示例
- 检查操作系统参数,并查看检查结果。
plat1:/opt/software/gaussdb/script # ./gs_checkos -i A -h plat1 -X /opt/software/gaussdb/clusterconfig.xml --detail -o /var/log/gaussdb/omm/checkos
Performing operation system check/set. Output the result to the file /var/log/gaussdb/omm/checkos.
Operation system check/set is completed.
Total numbers:14. Abnormal numbers:0. Warning number:1.
plat1:/opt/software/gaussdb/script # vim /var/log/gaussdb/omm/checkos
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
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 number:1.
- 设置NTP服务及运行结果。
[root@lplat1 script]#./gs_checkos -i c1 -X /opt/software/gaussdb/clusterconfig.xml --detail --force
Setting items
C1. [ Set NTP Service ] : Normal
Setting NTP service succeed and the NTP server is [plat1, plat2]
Total numbers:1. Abnormal numbers:0. Warning number:. - 集群及DN正常情况下设置HugePage参数。
[root@plat1 script]#./gs_checkos -i C2 -X /opt/software/gaussdb/clusterconfig.xml
Setting items
C2. [ Set HugePage parameter ] : Normal
Setting HugePage parameter value succeed.
Total numbers:1. Abnormal numbers:0. Warning number:. - 检查操作系统检查项A12全部详细信息。
[root@plat1 script]#./gs_checkos -i A12 -X /opt/software/gaussdb/clusterconfig.xml --detail-all
Checking items
A12.[ Time consistency status ] : Warning
Total numbers:1. Abnormal numbers:0. Warning numbers:1.