注意
      
      
        本文最后更新于 2025-04-12,文中内容可能已过时。
       
     提升 Linux 性能。
  内核参数调优
  网络缓冲区调整
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
 | # 增加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
# 增加默认缓冲区大小
echo "net.core.rmem_default = 1048576" >> /etc/sysctl.conf
echo "net.core.wmem_default = 1048576" >> /etc/sysctl.conf
 | 
 
  连接处理优化
| 1
2
3
4
5
6
7
8
 | # 增加最大连接数
echo "net.core.somaxconn = 32768" >> /etc/sysctl.conf
# 增加等待连接队列大小
echo "net.ipv4.tcp_max_syn_backlog = 8192" >> /etc/sysctl.conf
# 启用TCP快速打开
echo "net.ipv4.tcp_fastopen = 3" >> /etc/sysctl.conf
 | 
 
  拥塞控制算法
| 1
2
3
4
5
 | # 查看可用算法
sysctl net.ipv4.tcp_available_congestion_control
# 设置拥塞控制算法(推荐使用bbr或cubic)
echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf
 | 
 
  文件系统优化
  大文件传输优化
| 1
2
3
4
5
 | # 增加文件描述符限制
echo "fs.file-max = 1000000" >> /etc/sysctl.conf
ulimit -n 1000000
# 使用更高效的文件传输工具(如bbcp、rsync with --partial等)
 | 
 
  网络协议栈优化
  TCP参数调整
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
 | # 启用时间戳
echo "net.ipv4.tcp_timestamps = 1" >> /etc/sysctl.conf
# 启用选择性确认
echo "net.ipv4.tcp_sack = 1" >> /etc/sysctl.conf
# 调整keepalive时间
echo "net.ipv4.tcp_keepalive_time = 300" >> /etc/sysctl.conf
echo "net.ipv4.tcp_keepalive_probes = 5" >> /etc/sysctl.conf
echo "net.ipv4.tcp_keepalive_intvl = 15" >> /etc/sysctl.conf
 | 
 
  硬件和驱动优化
  中断亲和性设置
| 1
2
3
4
5
6
 | # 查看网络接口的中断
cat /proc/interrupts | grep eth
# 设置中断亲和性(根据CPU核心数调整)
# 例如将eth0的中断绑定到CPU0
echo 1 > /proc/irq/[中断号]/smp_affinity
 | 
 
  启用巨帧(如果网络支持)
  应用层优化
  使用高效传输工具
- rsync: rsync -avz --partial --progress source destination
- bbcp: 专为高速网络设计的点对点拷贝工具
- iperf3: 用于测试网络性能 iperf3 -c server_ip
  多线程传输
| 1
2
3
4
 | # 使用axel多线程下载工具
axel -n 10 http://example.com/largefile.iso
# 使用parallel-rsync进行并行rsync传输
 | 
 
  应用后验证
| 1
2
3
4
5
 | # 应用所有sysctl设置
sysctl -p
# 验证当前TCP参数
sysctl -a | grep tcp
 | 
 
  监控网络性能
| 1
2
 | iftop -n -i eth0
nload eth0
 | 
 
  注意事项
- 根据实际硬件配置和网络环境调整参数值
- 修改前备份原始配置文件
- 生产环境建议先在测试环境验证
- 不同Linux发行版可能有细微差异
- 对于云环境,部分参数可能受限于云服务商设置
这些优化可以显著提高Linux系统在大流量传输场景下的性能,但最佳配置需要根据具体应用场景和硬件环境进行测试和调整。