優化CentOS服務器網絡設置的多維度策略
內核參數是網絡性能的基礎,需通過/etc/sysctl.conf
文件調整關鍵參數,提升TCP處理效率和連接能力:
net.core.rmem_max = 16777216
(接收緩沖區最大值)、net.core.wmem_max = 16777216
(發送緩沖區最大值);net.ipv4.tcp_rmem = 4096 87380 16777216
(最小/默認/最大)、net.ipv4.tcp_wmem = 4096 65536 16777216
。net.ipv4.tcp_syncookies = 1
(防止SYN Flood攻擊)、net.ipv4.ip_local_port_range = 1024 65535
(擴大本地端口范圍)、net.ipv4.tcp_max_syn_backlog = 8192
(增大SYN隊列長度)、net.ipv4.tcp_synack_retries = 2
(減少SYN-ACK重試次數)。net.ipv4.tcp_tw_reuse = 1
(允許復用)、net.ipv4.tcp_fin_timeout = 30
(縮短TIME_WAIT超時時間)。sysctl -p
使配置生效。通過ethtool
工具調整網卡參數,降低CPU負載:
ethtool -K eth0 tso on gro on
(eth0
為網卡名,需根據實際情況替換)。ethtool -k eth0
查看網卡支持的offload特性,避免在不支持的網卡上開啟(如老舊網卡),以免降低性能。選擇適合高延遲網絡的擁塞控制算法,提升吞吐量:
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
(設置公平隊列調度)、echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
;sysctl -p
生效。需注意,BBR需要較新內核(≥4.9)支持。減少防火墻對網絡性能的影響:
使用tc
命令合理分配帶寬,避免單一應用占用全部資源:
tc qdisc add dev eth0 root handle 1: htb default 10
(根隊列)、tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit
(父類,總帶寬100Mbps)、tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1mbit
(子類,SSH帶寬1Mbps)、tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 22 0xffff flowid 1:10
(匹配SSH端口22,導向子類)。增大系統對網絡連接的支持能力:
/etc/security/limits.conf
文件,增加用戶進程的最大文件描述符數(默認1024可能不足)。添加:* soft nofile 65535
(普通用戶軟限制)、* hard nofile 65535
(普通用戶硬限制);通過工具實時監控網絡性能,定位瓶頸:
iftop
(按流量排序顯示連接)、nload
(顯示總帶寬使用情況)。nethogs
(按進程顯示帶寬占用)、ss -s
(查看TCP連接統計,如ESTAB
連接數)。iperf
(測試服務器吞吐量,如iperf -s
啟動服務端,iperf -c server_ip
啟動客戶端)。8.8.8.8
、114.114.114.114
),或在本地設置DNS緩存(如dnsmasq
),減少解析延遲。keepalive_timeout
)復用連接。