云容器引擎 CCE-节点系统参数可优化列表

时间:2023-11-01 16:25:54

节点系统参数可优化列表

CCE提供默认的节点系统参数在某些用户场景下可能出现性能瓶颈,因此用户可对部分节点系统参数进行自定义优化,节点系统参数如节点系统参数可优化列表所示。

  • 修改节点系统参数具有一定的风险,需要您对Linux命令和Linux系统知识具有较高程度的了解,避免误操作引起节点故障。
  • 表1中的参数已经过测试验证,请勿自行修改其他参数以免引起节点故障。
  • 修改节点系统参数的命令仅在使用公共镜像时有效,使用私有镜像时本文中提供的命令仅供参考。
  • 节点重启后需执行sysctl -p用于刷新参数值。
表1 系统参数可优化列表

参数名称

参数位置

说明

参考文档

kernel.pid_max

/etc/sysctl.conf

节点进程 ID数量上限。

查看参数:

sysctl kernel.pid_max

修改节点进程 ID数量上限kernel.pid_max

RuntimeMaxUse

/etc/systemd/journald.conf

节点日志缓存内存占用量上限,若不配置长时间运行会占用较大内存。

查看参数:

cat /etc/systemd/journald.conf | grep RuntimeMaxUse

修改节点日志缓存内存占用量上限RuntimeMaxUse

Openfiles

/etc/security/limits.conf

节点单进程最大文件句柄数,可视业务情况调整。

查看参数:

ulimit -n

修改节点单进程最大文件句柄数

(Openfiles容器内部)

LimitNOFILE

LimitNPROC

  • CentOS/EulerOS系统:

    /usr/lib/systemd/system/docker.service

  • Ubuntu系统:

    /lib/systemd/system/docker.service

容器内部单进程最大文件句柄数,可视业务情况调整。

查看参数:

cat /proc/`pidof dockerd`/limits | grep files

修改容器单进程最大文件句柄数

file-max

/etc/sysctl.conf

系统整体最大文件句柄数,可视业务情况调整。

查看参数:

sysctl fs.file-max

修改节点系统级最大文件句柄数

nf_conntrack_buckets

nf_conntrack_max

/etc/sysctl.conf

连接跟踪表容量,可视业务场景调整。

计算桶占用率= [nf_conntrack_count] / [nf_conntrack_buckets]。

通过调整buckets值,将占用率调整至0.7以下。

查看参数:

sysctl net.netfilter.nf_conntrack_countsysctl net.netfilter.nf_conntrack_bucketssysctl net.netfilter.nf_conntrack_max

修改节点内核参数

net.netfilter.nf_conntrack_tcp_timeout_close

/etc/sysctl.conf

连接跟踪表里处于close状态连接的表项的过期时间,缩短过期时间可加快回收。

查看参数:

sysctl net.netfilter.nf_conntrack_tcp_timeout_close

net.netfilter.nf_conntrack_tcp_be_liberal

/etc/sysctl.conf

参数值为0或1。

  • 0:表示关闭,所有不在TCP窗口中的RST包都被标志为无效。
  • 1:表示开启,只有不在TCP窗口内的RST包被标志为无效。容器场景下,开启这个参数可以避免NAT过的TCP连接带宽受限。

查看参数:

sysctl net.netfilter.nf_conntrack_tcp_be_liberal

tcp_keepalive_time

/etc/sysctl.conf

TCP超时时长,即发送keepalive探测消息的间隔时间。参数值过大可能导致TCP挥手时间过长,长时间下造成大量连接卡在Close_wait阶段,耗尽系统资源。

查看参数:

sysctl net.ipv4.tcp_keepalive_time

tcp_max_syn_backlog

/etc/sysctl.conf

TCP最大半连接数,SYN_RECV 队列中的最大连接数。

查看参数:

sysctl net.ipv4.tcp_max_syn_backlog

tcp_max_tw_buckets

/etc/sysctl.conf

指定任何时候允许存在的处于“time-wait”状态的最大套接字数,参数值过大时易耗尽节点资源。

查看参数:

sysctl net.ipv4.tcp_max_tw_buckets

net.core.somaxconn

/etc/sysctl.conf

TCP最大连接数,ESTABLISHED 队列的最大大小,参数值过小时极易不足。

查看参数:

sysctl net.core.somaxconn

max_user_instances

/etc/sysctl.conf

每个用户允许的最大 inotify 实例数,参数值过小时容器场景下极易不足。

查看参数:

sysctl fs.inotify.max_user_instances

max_user_watches

/etc/sysctl.conf

所有监视实例的最大目录数,参数值过小时容器场景极易不足。

查看参数:

sysctl fs.inotify.max_user_watches

netdev_max_backlog

/etc/sysctl.conf

网络协议栈收包队列大小,参数值过小时极易不足。

查看参数:

sysctl net.core.netdev_max_backlog

net.core.wmem_max

net.core.rmem_max

/etc/sysctl.conf

收发缓冲区内存大小(字节),参数值过小时大文件场景下易不足。

查看参数:

sysctl net.core.wmem_maxsysctl net.core.rmem_max

net.ipv4.neigh.default.gc_thresh1

net.ipv4.neigh.default.gc_thresh2

net.ipv4.neigh.default.gc_thresh3

/etc/sysctl.conf

ARP表项的垃圾回收调优。

查看参数:

sysctl net.ipv4.neigh.default.gc_thresh1sysctl net.ipv4.neigh.default.gc_thresh2sysctl net.ipv4.neigh.default.gc_thresh3

vm.max_map_count

/etc/sysctl.conf

参数值过小时,安装elk时会提示不足。

查看参数:

sysctl vm.max_map_count
support.huaweicloud.com/usermanual-cce/cce_10_0409.html