tencent cloud

云服务器

动态与公告
产品动态
公共镜像更新动态
操作系统官方停止维护计划
产品公告
产品简介
云服务器概述
产品优势
基本概念
地域和可用区
新手指引
Service Regions and Service Providers
产品计费
计费概述
计费方式
计费项
转换计费方式
购买实例
变配费用说明
欠费说明
快速入门
通过自定义配置购买 Linux 云服务器
通过自定义配置购买 Windows 云服务器
用户指南
操作指南总览
使用限制总览
实例
竞价实例
预留实例
镜像
存储
备份与恢复
网络
安全
密码/密钥
监控与告警
运维管理
便捷功能
迁移服务器
在线迁移
迁移咨询
故障处理
无法登录云服务器问题处理思路
Windows 实例登录相关故障
Linux 实例登录相关故障
其他实例登录相关故障
实例运行故障
Linux 实例内存故障
网络故障
实践教程
云服务器选型建议
搭建环境
搭建网站
搭建应用
搭建可视化界面
本地文件上传到云服务器
网络性能测试
其他实践教程
API 文档
History
Introduction
API Category
Making API Requests
Region APIs
Instance APIs
Cloud Hosting Cluster APIs
Image APIs
Instance Launch Template APIs
Placement Group APIs
Key APIs
Security Group APIs
Network APIs
Data Types
Error Codes
安全与合规
访问管理
网络
常见问题
地域和可用区相关
计费相关
实例相关
存储相关
镜像相关
服务器迁移相关
网络相关
安全相关
操作系统相关
运维和监控相关
访问管理相关
NTP 服务相关
应用场景相关
服务协议
CVM Service Level Agreements
Red Hat Enterprise Linux 镜像服务协议
Public IP Service Level Agreement
词汇表
文档云服务器用户指南运维管理系统运维Linux 实例常用内核参数介绍

Linux 实例常用内核参数介绍

PDF
聚焦模式
字号
最后更新时间: 2024-01-06 17:38:11
腾讯云在 Linux 公有镜像中已默认配置了部分参数,但由于 sysctl 的高度个性化配置,腾讯云建议用户按照自身业务特点单独配置 sysctl。您可通过本文了解腾讯云针对公有云 Linux 公有镜像特殊的默认优化配置及常见配置,并根据业务进行手动调优。
说明:
初始化配置项为“-”的参数项,均保持官方镜像默认配置。
使用 sysctl -w 命令配置为临时生效,写入 /etc/sysctl.conf 配置永久生效。

网络类

参数
说明
初始化配置
net.ipv4.tcp_tw_recycle
该参数用于快速回收 TIME_WAIT 连接。关闭时,内核不检查包的时间戳。开启时则会进行检查。不建议开启该参数,在时间戳非单调增长的情况下,会引起丢包问题,高版本内核已经移除了该参数。
0
net.core.somaxconn
对应三次握手结束,还没有 accept 队列时的 establish 状态。accept 队列较多则说明服务端 accept 效率不高,或短时间内突发了大量新建连接。该值过小会导致服务器收到 syn 不回包,是由于 somaxconn 表满而删除新建的 syn 连接引起。若为高并发业务,则可尝试增大该值,但有可能增大延迟。
128
net.ipv4.tcp_max_syn_backlog
对应半连接的上限,曾用来防御常见的 synflood 攻击,但当 tcp_syncookies=1 时半连接可超过该上限。
-
net.ipv4.tcp_syncookies
对应开启 SYN Cookies,表示启用 Cookies 来处理,可防范部分 SYN 攻击,当出现 SYN 等待队列溢出时也可继续连接。但开启后会使用 SHA1 验证 Cookies,理论上会增大 CPU 使用率。
1
net.core.rmem_default
net.core.rmem_max
net.ipv4.tcp_mem
net.ipv4.tcp_rmem
这些参数配置了数据接收的缓存大小。配置过大容易造成内存资源浪费,过小则会导致丢包。建议判断自身业务是否属于高并发连接或少并发高吞吐量情形,进行优化配置。
rmem_default 的理论最优配置策略为带宽/RTT 积,其配置会覆盖 tcp_rmem,tcp_rmem 不单独配置。
rmem_max 配置约为 rmem_default 的5倍。
tcp_mem 为总的 TCP 占用内存,一般由 OS 自动配置为 CVM 可用内存的3/32、1/8或3/16,tcp_mem 及 rmem_default 也决定了最大并发链接数。
rmem_default=655360rmem_max=3276800
net.core.wmem_default
net.core.wmem_max
net.ipv4.tcp_wmem
这些参数用于配置数据发送缓存,腾讯云平台上数据发送通常不会出现瓶颈,可不做配置。
-
net.ipv4.tcp_keepalive_intvl
net.ipv4.tcp_keepalive_probes
net.ipv4.tcp_keepalive_time
这些参数与 TCP KeepAlive 有关,默认为75/9/7200。表示某个 TCP 连接在空闲7200秒后,内核才发起探测,探测9次(每次75秒)不成功,内核才发送 RST。对服务器而言,默认值比较大,可结合业务调整到30/3/1800。
-
net.ipv4.ip_local_port_range
配置可用端口的范围,请按需调整。
-
tcp_tw_reuse
该参数允许将 TIME-WAIT 状态的 socket 用于新的 TCP 连接。对快速重启动某些占用固定端口的链接有帮助,但基于 NAT 网络有潜在的隐患,高版本内核变为0/1/2三个值,并配置为2。
-
net.ipv4.ip_forward
net.ipv6.conf.all.forwarding
IP 转发功能,若用于 docker 的路由转发场景可将其配置为1。
0
net.ipv4.conf.default.rp_filter
该参数为网卡对接收到的数据包进行反向路由验证的规则,可配置为0/1/2。根据 RFC3704建议,推荐设置为1,打开严格反向路由验证,可防止部分 DDos 攻击及防止 IP Spoofing 等。
-
net.ipv4.conf.default.accept_source_route
根据 CentOS 官网建议,默认不允许接受含有源路由信息的 IP 包。
0
net.ipv4.conf.all.promote_secondaries
net.ipv4.conf.default.promote_secondaries
当主 IP 地址被删除时,第二 IP 地址是否成为新的主 IP 地址。
1
net.ipv6.neigh.default.gc_thresh3
net.ipv4.neigh.default.gc_thresh3
保存在 ARP 高速缓存中的最多记录的限制,一旦高速缓存中的数目高于设定值,垃圾收集器将马上运行。
4096

内存类

参数
说明
初始化配置
vm.vfs_cache_pressure
原始值为100,表示扫描 dentry 的力度。以100为基准,该值越大内核回收算法越倾向于回收内存。很多基于 curl 的业务上,通常由于 dentry 的积累导致占满所有可用内存,容易触发 OOM 或内核 bug 之类的问题。综合考虑回收频率和性能后,选择配置为250,可按需调整。
250
vm.min_free_kbytes
该值是启动时根据系统可用物理内存 MEM 自动计算出:4 * sqrt(MEM)。其含义是让系统运行时至少要预留出的 KB 内存,一般情况下提供给内核线程使用,该值无需设置过大。当机器包量出现微突发,则有一定概率会出现击穿 vm.min_free_kbytes,造成 OOM。建议大配置的机器下默认将 vm.min_free_kbytes 配置为总内存的1%左右。
-
kernel.printk
内核 printk 函数打印级别,默认配置为大于5。
5 4 1 7
kernel.numa_balancing
该参数表示可以由内核自发的将进程的数据移动到对应的 NUMA 上,但是实际应用的效果不佳且有其他性能影响,redis 的场景下可以尝试开启。
0
kernel.shmallkernel.shmmax
shmmax 设置一次分配 shared memory 的最大长度,单位为 byte。
shmall 设置一共能分配 shared memory 的最大长度,单位为 page。
kernel.shmmax=68719476736kernel.shmall=4294967296

进程类

参数
说明
初始化配置
fs.file-maxfs.nr_open
分别控制系统所有进程和单进程能同时打开的最大文件数量:
file-max 由 OS 启动时自动配置,近似为10万/GB。
nr_open 为固定值1048576,但为针对用户态打开最大文件数的限制,一般不改动这个值,通常设置 ulimit -n 实现,对应配置文件为 /etc/security/limits.conf。
ulimit 的 open files 为100001fs.nr_open=1048576
kernel.pid_max
系统内最大进程数,官方镜像默认为32768,可按需调整。
-
kernel.core_uses_pid
该配置决定 coredump 文件生成的时候是否含有 pid。
1
kernel.sysrq
开启该参数后,后续可对 /proc/sysrq-trigger 进行相关操作。
1
kernel.msgmnbkernel.msgmax
分别表示消息队列中的最大字节数和单个最大消息队列容量。
65536
kernel.softlockup_panic
当配置了 softlockup_panic 时,内核检测到某进程 softlockup 时,会发生 panic,结合 kdump 的配置可生成 vmcore,用以分析 softlockup 的原因。
-

IO 类

参数
说明
初始化配置
vm.dirty_background_bytes
vm.dirty_background_ratio
vm.dirty_bytes
vm.dirty_expire_centisecs
vm.dirty_ratio
vm.dirty_writeback_centisecs
这部分参数主要配置 IO 写回磁盘的策略:
dirty_background_bytes/dirty_bytes 和 dirty_background_ratio/dirty_ratio 分别对应内存脏页阈值的绝对数量和比例数量,一般情况下设置 ratio。
dirty_background_ratio 指当文件系统缓存脏页数量达到系统内存百分之多少时(默认10%)唤醒内核的 flush 等进程,写回磁盘。
dirty_ratio 为最大脏页比例,当脏页数达到该比例时,必须将所有脏数据提交到磁盘,同时所有新的 IO 都会被阻塞,直到脏数据被写入磁盘,通常会造成 IO 卡顿。系统先会达到 vm.dirty_background_ratio 的条件然后触发 flush 进程进行异步的回写操作,此时应用进程仍然可以进行写操作,如果达到 vm.dirty_ratio 这个参数所设定的值,此时操作系统会转入同步地处理脏页的过程,阻塞应用进程。
vm.dirty_expire_centisecs 表示脏页能存活的时间,flush 进程会检查数据是否超过了该时间限制,单位为1/100秒。
vm.dirty_writeback_centisecs 表示 flush 进程的唤醒周期,单位为1/100秒。
-


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈