绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
数据库管理工具-gs_checkos
2020-01-09 16:45:55

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

    显示版本号信息。

表1 操作系统检查项

编号

检查项

检查项详细说明

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)

万兆网卡参数检查。

  • 当网卡为非绑定模式,同时网卡类型为万兆时,确保MTU>=8192,RX/TX>=4096。
  • 当网卡为绑定模式时,需保证绑定的每个网卡类型均为万兆,然后再确保MTU>=8192,RX/TX>=4096。

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参数的值确定设置情况:

  • 值为TRUE时,优先使用hugepage,如果分配失败,则使用普通内存。
  • 值为FALSE时,不使用hugepage。
  • 值为ONLY时,只使用hugepage,分配失败时会报错。
  • 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.

相关命令

gs_checkgs_checkperf

分享好友

分享这个小栈给你的朋友们,一起进步吧。

GaussDB_数据库
创建时间:2020-01-06 16:21:44
华为GaussDB数据库小栈
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • GaussDB_数据库
    专家
戳我,来吐槽~