专门的apache httpd服务器configuration和性能调优

我有以下专用的盒子,我只安装Apache的httpd服务器上,我应该调整什么参数在httpd.conf来实现最佳性能?

cat / proc / cpuinfo显示8个处理器(只在下面粘贴一个,其他都是一样的)

处理器:0
 vendor_id:GenuineIntel
 cpu家族:6
型号:23
型号名称:Intel(R)Xeon(R)CPU E5410 @ 2.33GHz
步进:6
 CPU MHz:2333.470
caching大小:6144 KB
物理ID:0
兄弟姐妹:4
核心ID:0
 cpu核心:4
 apicid:0
 fpu:是的
 fpu_exception:是的
 cpuid等级:10
 wp:是的
 flags:fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr sse4_1 lahf_lm
 bogomips:4666.94
 clflush大小:64
 cache_alignment:64
地址大小:38位物理,48位虚拟

免费-m

             caching总共使用的空闲共享缓冲区
 Mem:16054 15546 508 0 251 8084
 -  / + buffers / cache:7210 8843
交换:16370 0 16370

一些评论可能会帮助你:

  • 影响最大的Apache设置将是每个实例所需的内存(取决于所加载的mod的数量及其configuration)以及MaxClients / Servers集的数量。 如果Apache真的是服务器上唯一需要的东西,那么你通常希望消除任何你不需要的mod,然后增加MaxClients / Server以使用尽可能多的RAM,但从来没有开始使用交换。 要确定这个,你需要testingconfiguration…
  • 我强烈build议使用ab / siege或类似的框架来testing应用程序的压力。 这将使您可以确定应用程序的最佳设置,并为您提供一些硬件的硬件(呃)数量。 例如,你可能会发现,使用默认设置,你可以得到500 req / sec而不会闪烁,在这种情况下,花费时间来优化事物将是一种浪费。 另一方面,它可能告诉你,你最多只能得到20 req / sec,这意味着要重新审视整个应用程序架构。
  • 每当您更改系统的configuration,软件或硬件时,重新运行压力testing。 这将告诉你什么影响一切,并允许你作出更明智的决定,以优化的东西。 如果你不测量/testing,就会花费大量时间/金钱来处理没有任何效果(或者更糟糕的是,实际上会产生负面影响)的风险。
  • 考虑为dynamic和代理/负载平衡部分使用不同的软件,虽然你的服务器足够强大,可能没有太大的区别。

您应该考虑使用HAProxy或nginx作为代理/负载均衡器,Apache并不擅长,因为它不能asynchronous处理请求。 Apache根本不是为这类任务而devise的。 使用asynchronousI / O的代理/平衡器可以为您节省大量资源。 而且你不需要这么大的服务器代理/平衡每秒100个请求,我可以在512Mb Rackspace Cloud实例上使用HAProxy代理每秒约500个请求(它使用四核CPU,但是LA大约为0.1通常在这个主机上,所以我只是不需要太多的处理能力)。