当Linux系统的OS参数默认配置无法满足业务需求,您希望对集群节点进行个性化调整时,您可以在节点池维度自定义节点的OS参数配置,以调优系统性能。自定义OS参数后,系统将按批次变更节点配置。节点池中已有节点将即时生效,新增节点也会使用新配置。
使用限制
仅1.28及以上版本的ACK集群支持自定义节点池OS参数。具体操作,请参见创建ACK托管集群、创建ACK专有集群、创建ACK Edge集群。如需升级集群,请参见手动升级集群。
注意事项
动态修改OS节点配置有可能会造成节点上已存在的Pod发生配置变更,从而触发Pod重建。请在使用前确保应用的高可用。
不恰当的OS参数调整会改变Linux内核的运作方式,可能导致节点性能恶化或不可用,从而对业务产生影响。请在修改前深入了解待修改参数的作用,并在生产环境操作前进行充分测试。
请勿自行修改控制台不支持自定义的OS参数,避免因配置错误导致的节点不可用或手动修改内容被覆盖。例如,通过黑屏操作手动修改/etc/sysctl.d/99-k8s.conf中的内容,会导致集群执行运维操作(例如集群升级、自定义参数修改等)时覆盖已修改的配置。
支持通过控制台自定义的sysctl参数
字段名称 | 说明 | 默认值 | 推荐取值范围 |
fs.aio-max-nr | 异步I/O操作的最大数量。 | 65536 | [65536, 6553500] |
fs.file-max | 系统级别能够打开的最大文件句柄数。 | 2097152 | [8192, 12000500] |
fs.inotify.max_user_watches | 单用户能够创建的inotify监视的最大数量。 | 524288 | [524288, 2097152] |
fs.nr_open | 每个进程能够打开的文件描述符数的最大数量。 | 1048576 | [1000000, 20000500] (此值应小于fs.file-max的取值) |
kernel.pid_max | 系统可分配的最大PID数量。 | 4194303 | 大于1048575 |
kernel.threads-max | 系统可创建的最大线程数量。 | 504581 | 大于500000 |
net.core.netdev_max_backlog | 接口接收数据包的速度快于内核的处理速度时,可以在INPUT端排队的数据包的最大数量。 | 16384 | [1000, 3240000] |
net.core.optmem_max | 每个网络套接字允许的最大辅助缓冲区(Ancillary Buffer)大小,以字节为单位。 | 20480 | [20480, 4194304] |
net.core.rmem_max | 每个网络套接字接收缓冲区的最大大小,以字节为单位。 | 16777216 | [212992, 134217728] |
net.core.wmem_max | 每个网络套接字发送缓冲区的最大大小,以字节为单位。 | 16777216 | [212992, 134217728] |
net.core.wmem_default | 每个网络套接字发送缓冲区的默认大小,以字节为单位。 | 212992 | 大于等于212992 |
net.ipv4.tcp_mem | TCP栈可以使用的内存量,以内存页(大小通常为4KB)为单位。该参数由三个整数值组成,分别表示低水位、压力水位和最高水位,必须严格按照顺序设置。 | 根据系统总内存动态计算 | 三个参数逐渐增大,且最小值为80000以上 |
net.ipv4.neigh.default.gc_thresh1 | ARP缓存中保留的最少条目数。缓存中的条目数量低于此值时,系统不会执行垃圾收集。 | 128 | [128, 80000] |
net.ipv4.neigh.default.gc_thresh2 | ARP缓存中的最大条目数,为软限制,即缓存中的条目数量达到此值时,系统会开始考虑执行垃圾收集,但不会立即强制执行,而会等待5秒延迟。 | 1024 | [512, 90000] |
net.ipv4.neigh.default.gc_thresh3 | ARP缓存中要保留的最大条目数,为硬限制,即缓存中的条目数量达到此值时,系统会立即执行垃圾收集。如果缓存中的条目数量一直超过此值,系统会不断进行清理。 | 8192 | [1024, 100000] |
支持通过控制台自定义的Transparent Hugepage参数
透明大页THP(Transparent Huge Pages)是Linux内核中的一个通用特性,可以自动将小页面(通常为4 KB)合并成大页面(通常为2 MB或更大),以减少内存访问页表项PTE(Page Table Entries)大小和访问次数,同时减轻了TLB(Translation Lookaside Buffer)缓存的压力,提高内存访问的效率。
目前处于灰度发布中。如需使用,请提交工单申请。
下表中的默认值为在Alibaba Cloud Linux 2的4.19.91-18及之后的内核版本中系统默认值。
字段名称 | 说明 | 默认值 | 可取值 |
transparent_enabled | 是否在系统全局开启 THP功能。 | always |
|
transparent_defrag | 是否开启透明大页THP相关的碎片整理配置。启用后,如果内存中的小页能够被合并成一个大页,可以减少页表的大小并提高系统的性能。 | madvise |
|
khugepaged_defrag |
由于该操作会在内存路径中执行锁定操作,且 | 1 |
|
khugepaged_alloc_sleep_millisecs | 当透明大页THP分配失败时, | 60000,即默认等待60秒 | |
khugepaged_scan_sleep_millisecs |
| 10000,即默认每10秒唤醒一次 | |
khugepaged_pages_to_scan |
| 4096 |
通过控制台自定义节点池OS参数
自定义OS参数后,系统将按批次变更节点配置。配置变更后,节点池中已有节点将即时生效,新增节点也会使用新配置。自定义OS参数生效时会改变已有节点的OS参数配置,可能会对业务产生一定影响。请在业务低峰期操作。
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在节点池列表的操作列,单击目标节点池对应的更多>OS 配置。
仔细阅读当前页面上的注意事项,单击+ 自定义参数选择需要配置的参数,设置每批次的最大并行数(最大为10),然后单击提交,按照页面指引完成操作。
配置每批次的最大并行数后,OS配置将按批次对节点生效。执行过程中,您可以在事件列表区域查看进度,并控制执行过程(暂停、继续、取消等)。您可以使用暂停功能对已升级的节点进行验证。暂停时,正在配置的节点会继续完成执行;未执行的节点在任务继续前不会被执行自定义配置。
重要请尽快完成自定义配置任务。处于暂停状态的任务将在7天后自动取消,相关的事件和日志信息也会被清理。