最好的Linuxnetworking调优技巧?

我认为有一个关于linuxnetworking调优的核心问题是个好主意。 我特别感兴趣的调整选项为以下。

  1. networking服务器
  2. 清漆/鱿鱼服务器
  3. DB服务器
  4. 文件服务器
  5. 应用服务器

在这一点上,通常不值得在内核中进行“调优”的开销。 除非你有testing设备(或集群上的A / B选项)和非常好的文档,这是不值得的单靠系统pipe理开销。

现在,linux内核有很好的TCP自动调整function,你可以做得更好,但是这些并不是默认的,因为它们在互联网上被看作是“贪婪”而不公平的。

我接近调整是:

  1. 挂载noatime(意味着nodiratime),使用ext3或xfs
  2. 只运行所需的服务
  3. 对于像鱿鱼和MySQL服务允许他们使用更多的RAM

除了罕见的例外,这三个会让你90%。

networking堆栈调优我把路由器/防火墙连接到数百名networking用户

net/ipv4/route/max_size=262144 net/ipv4/netfilter/ip_conntrack_tcp_timeout_established=18000 net/ipv4/neigh/default/gc_thresh1=1024 net/ipv4/neigh/default/gc_thresh2=2048 net/ipv4/neigh/default/gc_thresh3=4096 net/netfilter/nf_conntrack_max=128000 net/netfilter/nf_conntrack_expect_max=4096 

[主要是根据一些令人不快的崩溃经过多年的经验调整]

对于文件/ sql / poroxy服务器,你最初想装入数据/ spool的分区与noatime,nodiratime和reiserfs – notail],以避免额外的磁盘垃圾每当访问文件读取。

而且你真的想要[也许你还不知道这个问题; – ]收集统计数据 – 例如与munin – 做一些容量规划,看看你的调整是否确实减less了系统负载。

有一件事你可能想看看web100 。 这是一个内核补丁,也是一个用来优化Linux内核的高性能networking的用户空间。

Web100项目旨在生成一个完整的主机 – 软件环境,无论networking能力的大小如何,它都能以100%的可用带宽运行常见的Web应用程序。

另外检查高性能SSH / SCP 。

SCP和OpenSSH中的底层SSH2协议实现是由静态定义的内部stream量控制缓冲区来限制networking性能的。 这些缓冲区往往最终成为SCPnetworking吞吐量的瓶颈,特别是长时间和高带宽的networking链路。 修改ssh代码以允许在运行时定义缓冲区消除了这个瓶颈。