计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive

修改节点内核参数

更新时间:2025-02-18 GMT+08:00

由于默认的Linux内核参数不一定符合所有用户场景,用户可通过修改节点上的/etc/sysctl.conf配置文件来更改内核参数。

须知:
  • 修改节点系统参数的命令仅在使用公共镜像时有效,使用私有镜像时本文中提供的命令仅供参考。
  • 节点重启后需执行sysctl -p用于刷新参数值。
表1 节点内核参数列表

参数名称

参数位置

说明

建议值

file-max

/etc/sysctl.conf

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

查看参数:

sysctl fs.file-max

fs.file-max=1048576

nf_conntrack_buckets

nf_conntrack_max

/etc/sysctl.conf

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

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

当占用率持续超过0.7时,可以通过调大buckets值,将占用率调整至0.7以下。

查看参数:

sysctl net.netfilter.nf_conntrack_count
sysctl net.netfilter.nf_conntrack_buckets
sysctl net.netfilter.nf_conntrack_max
说明:

EulerOS 2.3/EulerOS 2.5/CentOS 7.6上net.netfilter.nf_conntrack_buckets不能通过编辑/etc/sysctl.conf进行修改,而是通过修改/sys/module/nf_conntrack/parameters/hashsize达到修改buckets的目的。

系统默认值已经根据节点内存大小浮动配置。如需修改,可参考以下公式:

  • net.netfilter.nf_conntrack_buckets = [nf_conntrack_count] / 0.7
  • net.netfilter.nf_conntrack_max = 4* [nf_conntrack_buckets]

net.netfilter.nf_conntrack_tcp_timeout_close

/etc/sysctl.conf

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

查看参数:

sysctl net.netfilter.nf_conntrack_tcp_timeout_close

net.netfilter.nf_conntrack_tcp_timeout_close=3

net.netfilter.nf_conntrack_tcp_be_liberal

/etc/sysctl.conf

参数值为0或1。

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

查看参数:

sysctl net.netfilter.nf_conntrack_tcp_be_liberal

net.netfilter.nf_conntrack_tcp_be_liberal=1

tcp_keepalive_time

/etc/sysctl.conf

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

查看参数:

sysctl net.ipv4.tcp_keepalive_time

net.ipv4.tcp_keepalive_time=600

tcp_max_syn_backlog

/etc/sysctl.conf

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

查看参数:

sysctl net.ipv4.tcp_max_syn_backlog

net.ipv4.tcp_max_syn_backlog=8096

tcp_max_tw_buckets

/etc/sysctl.conf

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

查看参数:

sysctl net.ipv4.tcp_max_tw_buckets

net.ipv4.tcp_max_tw_buckets=5000

net.core.somaxconn

/etc/sysctl.conf

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

查看参数:

sysctl net.core.somaxconn

net.core.somaxconn=32768

max_user_instances

/etc/sysctl.conf

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

查看参数:

sysctl fs.inotify.max_user_instances

fs.inotify.max_user_instances=8192

max_user_watches

/etc/sysctl.conf

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

查看参数:

sysctl fs.inotify.max_user_watches

fs.inotify.max_user_watches=524288

netdev_max_backlog

/etc/sysctl.conf

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

查看参数:

sysctl net.core.netdev_max_backlog

net.core.netdev_max_backlog=16384

net.core.wmem_max

net.core.rmem_max

/etc/sysctl.conf

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

查看参数:

sysctl net.core.wmem_max
sysctl net.core.rmem_max

net.core.wmem_max=16777216

net.core.rmem_max=16777216

net.ipv4.neigh.default.gc_thresh1

net.ipv4.neigh.default.gc_thresh2

net.ipv4.neigh.default.gc_thresh3

/etc/sysctl.conf

ARP表项的垃圾回收调优。

  • gc_thresh1:表示最小可保留的表项数量,如果表项数量小于此值GC(Garbage collector)不进行回收操作。请勿修改。
  • gc_thresh2:当表项数量超过此值时,GC将会清空大于5秒的表项。请勿修改。
  • gc_thresh3:最大可允许的非永久表项数量。如果系统拥有庞大的接口数量,或者直连了大量的设备,应增大此值。

查看参数:

sysctl net.ipv4.neigh.default.gc_thresh1
sysctl net.ipv4.neigh.default.gc_thresh2
sysctl net.ipv4.neigh.default.gc_thresh3

net.ipv4.neigh.default.gc_thresh1=0

net.ipv4.neigh.default.gc_thresh2=4096

net.ipv4.neigh.default.gc_thresh3=163790

vm.max_map_count

/etc/sysctl.conf

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

查看参数:

sysctl vm.max_map_count

vm.max_map_count=262144

修改节点内核参数

节点内核参数如表1所示,此处以修改TCP发送keepalive探测消息的间隔时间tcp_keepalive_time为例。

  1. 登录节点,查看/etc/sysctl.conf文件。

    cat /etc/sysctl.conf

  2. 修改net.ipv4.tcp_keepalive_time参数,net.ipv4.tcp_keepalive_time=600为内核参数名称及建议值,建议值请参考表1

    如需修改其他内核参数,请参考表1,替换命令中的参数名称及参数值。

    • 若查看sysctl.conf文件时,文件中已设置net.ipv4.tcp_keepalive_time值,可通过以下命令进行修改。
      sed -i "s/net.ipv4.tcp_keepalive_time=[0-9]*$/net.ipv4.tcp_keepalive_time=600/g" /etc/sysctl.conf && sysctl -p
    • 若查看sysctl.conf文件时,文件中还未设置net.ipv4.tcp_keepalive_time值,可通过以下命令添加。
      echo net.ipv4.tcp_keepalive_time=600 >> /etc/sysctl.conf && sysctl -p

  3. 执行表1中的查看参数命令检查是否修改成功,当返回与修改值一致时说明修改正确。

    # sysctl net.ipv4.tcp_keepalive_time
    net.ipv4.tcp_keepalive_time = 600

创建节点/节点池时自动配置内核参数

您可以设置节点或节点池安装后执行脚本,在新建节点或节点池时通过脚本配置内核参数。

此处以修改TCP发送keepalive探测消息的间隔时间tcp_keepalive_time为例,取值为表1中的建议值。

  1. 首先您需要确认创建节点或节点池的操作系统,例如CentOS 7.6。
  2. 同集群、同操作系统的节点上进行脚本命令可行性的测试,在节点上手动执行命令,确认脚本命令可行。手动执行脚本命令请参考修改节点内核参数
  3. (以下命令需在手动执行命令验证成功后配置)在创建节点或节点池时,在“高级配置 > 安装后执行脚本”中添加可执行的脚本命令。如需修改其他内核参数,请参考表1,替换命令中的参数名称及参数值。

    • 登录节点查看/etc/sysctl.conf文件,若文件中已设置net.ipv4.tcp_keepalive_time值,可通过以下命令进行修改。
      sed -i "s/net.ipv4.tcp_keepalive_time=[0-9]*$/net.ipv4.tcp_keepalive_time=600/g" /etc/sysctl.conf && sysctl -p
    • 登录节点查看/etc/sysctl.conf文件,若文件中还未设置net.ipv4.tcp_keepalive_time值,可通过以下命令添加。
      echo net.ipv4.tcp_keepalive_time=600 >> /etc/sysctl.conf && sysctl -p

    下图中命令仅做示例,请根据实际情况填写。

  4. 节点创建完成后,登录节点执行表1中的查看参数命令检查是否修改成功。

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容