Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux 服務器網絡內核參數調優指南:/proc/sys/net 核心參數詳解與 sysctl 持久化

編輯:Linux 系統常見問題解答

Linux 內核通過 /proc/sys 暴露數百個可調參數,網絡子系統參數集中在 /proc/sys/net。本文精選高併發服務器最關鍵的 8 個參數,解釋含義、默認值、調優建議與持久化方法。

文件系統級參數(/proc/sys/fs)

參數含義調優建議
file-max系統級文件描述符總上限高併發建議 1000000+,配合 ulimit -n
inode-max系統級 inode 總上限設為 file-max 的 3-4 倍
epoll/max_user_watches單用戶 epoll 實例總監聽事件數大量連接場景調大(如 500000),注意內核內存佔用

網絡核心參數(/proc/sys/net/core)

參數含義調優建議
somaxconnlisten() backlog 上限(已完成連接隊列)高併發建議 65535,應用層 listen(fd, somaxconn)

IPv4 TCP 參數(/proc/sys/net/ipv4)

參數含義調優建議
tcp_max_syn_backlog半連接隊列上限(SYN_RECV 狀態)防 SYN Flood 建議 65535,配合 syncookies
tcp_wmemTCP 發送緩衝區 min/default/max (bytes)默認 4KB/16KB/4MB,大流量可調大 max
tcp_rmemTCP 接收緩衝區 min/default/max (bytes)同上,配合 BBR/自動調節通常無需手動改
tcp_syncookies啟用 SYN Cookie 防洪水攻擊必開 1,犧牲部分 TCP 選項換取抗攻擊

修改與持久化

臨時生效(重啟失效)

echo 1000000 > /proc/sys/fs/file-max
sysctl -w net.core.somaxconn=65535

永久生效

vim /etc/sysctl.conf
# 追加:
fs.file-max = 1000000
fs.inode-max = 3000000
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_syncookies = 1
net.core.netdev_max_backlog = 65535   # 网卡接收隊列

sysctl -p  # 立即生效

驗證

sysctl -a | grep -E 'file-max|somaxconn|syn_backlog|syncookies'
cat /proc/sys/net/ipv4/tcp_syncookies

調優原則

  1. 先測量基線(ss、netstat、sar、perf)
  2. 單參數調整,觀察業務指標(延遲、吞吐、錯誤率)
  3. 參數間存在耦合(如 somaxconn 需應用層配合),全鏈路驗證
  4. 記錄變更歷史,納入基礎設施即代碼管理

合理調優內核參數,是突破 Linux 服務器萬級併發瓶頸的基石。

Copyright © Windows教程網 All Rights Reserved