麒麟OS网络性能调优需五步:一、扩TCP连接队列;二、启TIME_WAIT复用;三、调大收发缓冲区;四、降swappiness与vfs_cache_pressure;五、扩本地端口范围。

如果您在麒麟OS上运行高并发网络服务或实时业务,但遭遇连接拒绝、TIME_WAIT堆积、吞吐量瓶颈或内存回收异常,则很可能是内核默认参数未适配实际负载。以下是针对麒麟OS的sysctl网络性能调优高级操作步骤:
一、扩大TCP连接队列以应对突发请求
半连接(SYN)和全连接(ESTABLISHED)队列过小会导致SYN包被丢弃或accept()失败,尤其在短连接密集场景下表现明显。需同步提升内核队列长度与应用层监听配置。
1、编辑/etc/sysctl.conf文件,在末尾追加以下两行:
net.ipv4.tcp_max_syn_backlog = 65535
net.core.somaxconn = 65535
2、执行命令立即生效:
sudo sysctl -p
3、验证修改结果:
sudo sysctl net.ipv4.tcp_max_syn_backlog net.core.somaxconn
4、确认应用服务(如Nginx、OpenResty)listen指令已设置对应backlog值,例如:
listen 80 backlog=65535;
二、启用TIME_WAIT套接字快速复用机制
TCP连接关闭后进入TIME_WAIT状态,默认持续60秒,限制端口重用频率。在客户端主动发起大量短连接的微服务或反向代理场景中,启用tcp_tw_reuse可显著缓解端口耗尽问题,但必须依赖tcp_timestamps支持。
1、向/etc/sysctl.conf添加两行:
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_tw_reuse = 1
2、加载新配置:
sudo sysctl -p
3、检查两项参数是否均为1:
sudo sysctl net.ipv4.tcp_timestamps net.ipv4.tcp_tw_reuse
4、注意:该设置仅对客户端角色连接有效,不适用于被动监听的服务端套接字。
三、调整TCP接收与发送缓冲区上限
默认缓冲区大小难以匹配高带宽延迟积(BDP)网络环境,易引发窗口受限、重传增多及吞吐下降。通过扩大rmem_max/wmem_max并配合tcp_rmem/tcp_wmem三元组,可释放TCP窗口潜力。
1、临时设置接收/发送最大缓冲区为16MB:
sudo sysctl -w net.core.rmem_max=16777216
sudo sysctl -w net.core.wmem_max=16777216
2、永久配置tcp_rmem与tcp_wmem三元组(最小/默认/最大):
echo "net.ipv4.tcp_rmem = 4096 131072 16777216" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_wmem = 4096 16384 16777216" | sudo tee -a /etc/sysctl.conf
3、启用自动接收缓冲区调节功能:
echo "net.ipv4.tcp_moderate_rcvbuf = 1" | sudo tee -a /etc/sysctl.conf
4、重新加载全部配置:
sudo sysctl -p
四、优化内存页回收与交换倾向
麒麟OS默认swappiness值偏高,可能导致活跃缓存被过早换出,影响文件读取与容器镜像加载性能;vfs_cache_pressure过高则加速dentry/inode缓存淘汰,增加目录遍历开销。
1、将swap使用倾向降至生产推荐值:
echo "vm.swappiness = 10" | sudo tee -a /etc/sysctl.conf
2、降低文件系统缓存压力,保留更多inode/dentry缓存:
echo "vm.vfs_cache_pressure = 50" | sudo tee -a /etc/sysctl.conf
3、应用变更:
sudo sysctl -p
4、验证当前生效值:
sudo sysctl vm.swappiness vm.vfs_cache_pressure
五、扩展本地端口可用范围
默认ip_local_port_range(32768–65535)仅提供约3.2万个临时端口,在单机部署多个服务或压测工具发起海量连接时极易触发“Address already in use”错误。
1、修改端口分配区间为更宽泛的范围:
echo "net.ipv4.ip_local_port_range = 1024 65535" | sudo tee -a /etc/sysctl.conf
2、立即激活新端口策略:
sudo sysctl -p
3、确认变更结果:
sudo sysctl net.ipv4.ip_local_port_range
4、注意:起始端口不得低于1024,否则可能与特权服务冲突。


















