我认为有一个关于linuxnetworking调优的核心问题是个好主意。 我特别感兴趣的调整选项为以下。
在这一点上,通常不值得在内核中进行“调优”的开销。 除非你有testing设备(或集群上的A / B选项)和非常好的文档,这是不值得的单靠系统pipe理开销。
现在,linux内核有很好的TCP自动调整function,你可以做得更好,但是这些并不是默认的,因为它们在互联网上被看作是“贪婪”而不公平的。
我接近调整是:
除了罕见的例外,这三个会让你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代码以允许在运行时定义缓冲区消除了这个瓶颈。