上云无忧 > 文档中心 > 百度智能云容器引擎服务 CCE 实践:Linux系统配置常用参数说明
容器引擎服务CCE
百度智能云容器引擎服务 CCE 实践:Linux系统配置常用参数说明

文档简介:
本文档将列出 Linux 操作系统常用的参数配置以及相应说明。 文件句柄限制: 在大流量的业务场景下,可以调整以下内核设置和内置限制,以占用部分系统内存的代价来处理更大的量。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

本文档将列出 Linux 操作系统常用的参数配置以及相应说明。

文件句柄限制

在大流量的业务场景下,可以调整以下内核设置和内置限制,以占用部分系统内存的代价来处理更大的量。

设置 允许的值/间隔 默认 说明
fs.file-max 8192-12000500 709620 Linux 内核将分配的文件句柄的最大数目通过增加此值,可以增加允许的最大打开文件数。
fs.inotify.max_user_watches 781250-2097152 1048576 系统允许的最大文件监视次数。 每个 监视 在32位内核上约为90字节,而在64内核上约160个字节。
fs.aio-max-nr 65536-6553500 65536 Aio-nr 显示当前系统范围内的异步 io 请求数。 aio-最大值-nr 允许你更改 aio-nr 可以增长到的最大值。
fs.nr_open 8192-20000500 1048576 进程可分配的文件句柄的最大数量。

套接字和网络优化

设置 允许的值/间隔 默认 说明
net.core.somaxconn 4096-3240000 16384 可为任何给定侦听套接字排队的最大连接请求数。 传递给 侦听 (2) 函数的积压工作(backlog)参数值的上限。 如果积压工作参数大于 somaxconn ,则它会以静默方式截断到此限制。
net.core.netdev_max_backlog 1000-3240000 1000 当接口接收数据包时,在输入端排队的最大数据包数量可以处理这些数据包。
net.core.rmem_max 212992-134217728 212992 最大接收套接字缓冲区大小(以字节为单位)。
net.core.wmem_max 212992-134217728 212992 最大发送套接字缓冲区大小(以字节为单位)。
net.core.optmem_max 20480-4194304 20480 辅助缓冲区最大大小 (选项内存缓冲区) 每个套接字允许。 在少数情况下,套接字选项内存用于存储与套接字的使用相关的附加结构。
net.ipv4.tcp_max_syn_backlog 128-3240000 16384 尚未收到来自连接客户端的确认的排队连接请求的最大数量。 如果超出此数量,内核将开始删除请求。
net.ipv4.tcp_max_tw_buckets 8000-1440000 32768 timewait系统同时容纳的最大插槽数。 如果超过此数目,则会立即销毁时间等待套接字并输出警告。
net.ipv4.tcp_fin_timeout 5 - 120 60 不能再由任何应用程序) 连接引用的孤立 (的时间将在本地终止之前保持 FIN_WAIT_2 状态。
net.ipv4.tcp_keepalive_time 30 - 432000 7200 TCP keepalive 在启用时发送消息的频率 keepalive 。
net.ipv4.tcp_keepalive_probes 1 - 15 9 keepaliveTCP 发出多少探测,直到它确定连接中断。
net.ipv4.tcp_keepalive_intvl 1 - 75 75 探测发出的频率。再乘以 tcp_keepalive_probes 它可以在探测开始后终止未响应的连接。
net.ipv4.tcp_tw_reuse 0 或 1 0 TIME-WAIT当安全地利用协议视点时,允许将套接字用于新连接。
net.ipv4.ip_local_port_range 第一个: 1024-60999,最后: 32768-65000] 第一:32768,最后:60999 TCP 和 UDP 流量用来选择本地端口的本地端口范围。 由两个数字组成:第一个数字是代理节点上的 TCP 和 UDP 流量允许的第一个本地端口,第二个是最后一个本地端口号。
net.ipv4.neigh.default.gc_thresh1 128-80000 4096 ARP 缓存中可能的最小项数。 如果条目数低于此设置,则不会触发垃圾回收。
net.ipv4.neigh.default.gc_thresh2 512-90000 8192 ARP 缓存中可能的最大软条目数。 此设置可能是最重要的,因为在达到这一软最大值后,将触发大约5秒的 ARP 垃圾回收。
net.ipv4.neigh.default.gc_thresh3 1024-100000 16384 ARP 缓存中的最大项数。
net.netfilter.nf_conntrack_max 131072-589824 131072 nf_conntrack 是在 Linux 中跟踪 NAT 连接项的模块。 nf_conntrack模块使用哈希表记录 TCP 协议的已 建立连接 记录。 nf_conntrack_max 哈希表中的最大节点数,即,模块支持的最大连接数 nf_conntrack 或连接跟踪表的大小。
net.netfilter.nf_conntrack_buckets 65536-147456 65536 nf_conntrack 是在 Linux 中跟踪 NAT 连接项的模块。 nf_conntrack模块使用哈希表记录 TCP 协议的已 建立连接 记录。 nf_conntrack_buckets 哈希表的大小。

工作线程限制

与文件描述符限制一样,进程可以创建的辅助角色或线程的数量受内核设置和用户限制的限制。

设置 允许的值/间隔 默认 说明
kernel.threads-max 20 - 513785 55601 进程可以加速工作线程。 可创建的所有线程的最大数目均设置为 "内核" 设置 kernel.threads-max 。

虚拟内存

以下设置可用于优化 Linux 内核 (VM) 子系统的虚拟内存和 writeout 磁盘的脏数据的操作。

设置 允许的值/间隔 默认 说明
vm.max_map_count 65530-262144 65530 此文件包含进程可能具有的最大内存映射区域数。 内存映射区域用作直接调用、和的副作用, malloc mmap 也是 mprotect madvise 在加载共享库时。
vm.vfs_cache_pressure 1 - 500 100 此百分比值控制内核回收内存的趋势,该内存用于缓存目录和 inode 对象。
vm.swappiness 0 - 100 60 此控件用于定义内核交换内存页的方式。 较高的值会增加入侵量,较小的值会减少交换量。 如果值为0,则指示内核不启动交换,直到可用和文件支持的页数小于区域中的高水位标记。
swapFileSizeMB 1 MB- (/dev/sdb 的 临时磁盘的大小) SwapFileSizeMB 指定将在此节点池的代理节点上创建交换文件的大小(MB)。
transparentHugePageEnabled always, madvise, never always 透明 Hugepages 是一项 Linux 核心功能,旨在通过更有效地使用处理器的内存映射硬件来提高性能。 启用后,内核会尝试尽可能地进行分配 hugepages ,如果 mmap 区域为 2 mb,则任何 Linux 进程都将接收 2 mb 页面。 在某些情况下 hugepages ,当系统范围内启用时,应用程序可能会最终分配更多的内存资源。 应用程序可能 mmap 是一个较大的区域,只需触摸1个字节,在这种情况下,可能会分配一个 2 MB 页面,而不是一个4k 页面。 这种情况的原因是可以禁用 hugepages 系统范围的,或者只是将它们包含在 MADV_HUGEPAGE madvise 区域内。
transparentHugePageDefrag always, defer, defer+madvise, madvise, never madvise 此值控制内核是否应充分利用内存压缩以提高其 hugepages 可用性。
相似文档
  • 部分容器化应用需要对容器网络命名空间的 sysctl 参数进行优化,尽管可以使用带有特权的 initContainer 实现初始化配置,但更推荐的方式是利用 CNI 原生支持。 CCE CNI 提供了 sysctl 插件,基于 CNI Chain 能够进行灵活的配置。 本文描述了如何使用和配置 CCE CNI,从而实现集群粒度和应用粒度的容器 sysctl 配置。
  • 容器运行时(Container Runtime)是 Kubernetes 重要的组件之一,负责管理镜像和容器的生命周期。本文通过对比两种运行时的使用场景、调用链,并通过对比 docker 和 containerd 两种容器引擎常用命令,帮助您根据需求场景选择合适的容器运行时。
  • 通过 kubectl 连接 Kubernetes 集群: 如果需要从本地个人计算机连接到百度智能云的 Kubernetes 集群,需要使用 Kubernetes 命令行客户端 kubectl,kubectl 的安装步骤如下所示 操作步骤: kubectl 的安装可以参见 kubernetes 官方安装和设置 kubectl文档。 注意: 本操作指南给出的操作步骤都是基于 linux 操作环境的。
  • 业务应用过程中,可能会遇到高并发的场景,通过负载均衡 BLB 的流量均衡和分发功能,可以为应用提供多台 WebServer 并发服务的能力,从而达到业务水平扩展的效果。
  • 创建集群之后,下载 windows 版本的 kubectl 工具,例如64位的工具如下: 下载之后,将其解压到任意目录,例如放在 D 盘下。 在 目录C:\users\下进入用户的文件夹,例如用户名为 foo,则文件夹应该为C:\users\foo,同时进入此目录,创建文件夹.kube。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部