作为IT工程师,我可以为您提供全面的Linux网络性能优化方案。以下是关键优化点:
# 增大TCP读写缓冲区
echo 'net.ipv4.tcp_rmem = 4096 87380 16777216' >> /etc/sysctl.conf
echo 'net.ipv4.tcp_wmem = 4096 65536 16777216' >> /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_timestamps = 1' >> /etc/sysctl.conf
echo 'net.ipv4.tcp_window_scaling = 1' >> /etc/sysctl.conf
# 快速回收TIME-WAIT套接字
echo 'net.ipv4.tcp_tw_reuse = 1' >> /etc/sysctl.conf
echo 'net.ipv4.tcp_tw_recycle = 1' >> /etc/sysctl.conf
# 增大最大连接数
echo 'net.ipv4.tcp_max_syn_backlog = 8192' >> /etc/sysctl.conf
echo 'net.core.somaxconn = 8192' >> /etc/sysctl.conf
# 查看可用算法
sysctl net.ipv4.tcp_available_congestion_control
# 设置算法(推荐使用cubic或bbr)
echo 'net.ipv4.tcp_congestion_control = bbr' >> /etc/sysctl.conf
# 安装irqbalance
apt-get install irqbalance -y # Debian/Ubuntu
yum install irqbalance -y # RHEL/CentOS
# 配置并启动
systemctl enable irqbalance
systemctl start irqbalance
# 检查网卡是否支持多队列
ethtool -l eth0
# 设置队列数(根据CPU核心数调整)
ethtool -L eth0 combined 8
# 设置MTU(需要网络设备支持)
ifconfig eth0 mtu 9000
# 启用GRO(Generic Receive Offload)
ethtool -K eth0 gro on
# 启用TSO(TCP Segmentation Offload)
ethtool -K eth0 tso on
# 启用GSO(Generic Segmentation Offload)
ethtool -K eth0 gso on
# 调整RX/TX队列大小
ethtool -G eth0 rx 4096 tx 4096
# 绑定网卡到特定NUMA节点
numactl --cpunodebind=1 --membind=1 ifconfig eth0 up
# 系统级限制
echo 'fs.file-max = 1000000' >> /etc/sysctl.conf
# 用户级限制
echo '* soft nofile 1000000' >> /etc/security/limits.conf
echo '* hard nofile 1000000' >> /etc/security/limits.conf
# 实时网络统计
nload
iftop
# 连接统计
ss -s
netstat -s
# 详细TCP统计
cat /proc/net/tcp
cat /proc/net/netstat
# 带宽测试
iperf3 -c server_ip
# 延迟测试
ping server_ip
# 并发连接测试
wrk -t12 -c400 -d30s http://server_ip
sysctl -p
使配置生效通过综合应用这些优化技术,可以显著提升Linux系统的网络性能,特别是在高并发、高吞吐量的应用场景中。