# 增加TCP窗口大小
echo "net.ipv4.tcp_window_scaling = 1" >> /etc/sysctl.conf
echo "net.core.rmem_max = 16777216" >> /etc/sysctl.conf
echo "net.core.wmem_max = 16777216" >> /etc/sysctl.conf
# 启用TCP快速打开
echo "net.ipv4.tcp_fastopen = 3" >> /etc/sysctl.conf
# 调整TCP保持活动时间
echo "net.ipv4.tcp_keepalive_time = 300" >> /etc/sysctl.conf
echo "net.ipv4.tcp_keepalive_intvl = 60" >> /etc/sysctl.conf
# 应用更改
sysctl -p
# 查看网卡中断分布
cat /proc/interrupts | grep eth
# 设置IRQ亲和性(根据CPU核心数调整)
for irq in $(cat /proc/interrupts | grep eth | awk '{print $1}' | sed 's/://'); do
echo 3 > /proc/irq/$irq/smp_affinity
done
# 增加接收队列大小
ethtool -G eth0 rx 4096 tx 4096
# 启用GRO和TSO
ethtool -K eth0 gro on
ethtool -K eth0 tso on
# 调整RX/TX队列数量(根据CPU核心数)
ethtool -L eth0 combined 8
# 启用多队列RSS
ethtool -X eth0 equal 8
# 查看可用算法
sysctl net.ipv4.tcp_available_congestion_control
# 设置BBR算法
echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf
sysctl -p
# 增加连接跟踪表大小
echo "net.netfilter.nf_conntrack_max = 524288" >> /etc/sysctl.conf
# 优化本地端口范围
echo "net.ipv4.ip_local_port_range = 1024 65535" >> /etc/sysctl.conf
# 禁用不必要的ICMP响应
echo "net.ipv4.icmp_echo_ignore_all = 1" >> /etc/sysctl.conf
# 启用零拷贝接收
ethtool -K eth0 rx-fcs off rx-gro-hw on
# 调整socket缓冲区
echo "net.core.rmem_default = 4194304" >> /etc/sysctl.conf
echo "net.core.wmem_default = 4194304" >> /etc/sysctl.conf
# 综合监控
nload eth0 # 实时带宽监控
iftop -i eth0 # 连接级带宽监控
# TCP状态监控
ss -s # 查看socket统计
ss -tulnp # 查看活跃连接
# 深度性能分析
perf stat -e 'net:*' -a sleep 10 # 网络事件统计
# 带宽测试
iperf3 -c server_ip -t 30 -P 8 # 多线程测试
# 延迟测试
ping -f -c 1000 server_ip # 洪水ping测试
hping3 -S -p 80 -c 1000 server_ip # SYN延迟测试
# 连接建立速度测试
httperf --hog --server=server_ip --uri=/ --num-conns=10000 --rate=1000
通过综合应用这些优化技术,可以显著提升Linux系统的网络吞吐量、降低延迟,并提高连接稳定性。