Linux内核和Apache 2.2性能问题在两个不同的Web服务器上

我有一个2负载均衡器后面的mod_php web服务器,这些操作系统是CentOS 6.x. 他们应该是相同的。 他们应该使用循环法收到相同的请求。 其中一个比另一个performance糟糕。

我认为这是因为某些原因收到更多的请求:

  1. 事实并非如此。
  2. 这些请求大概是同一个URL,并且几乎同时有相同数量的请求。 性能仍然糟糕。
  3. 那么我决定帮助服务器,而我find了解决scheme。 所以我重新configuration负载平衡器。
  4. 负载平衡器的configuration更改是将请求发送到服务器,并打开较less的连接。 在此之后,服务器开始比第二台服务器接收更less的请求,性能仍然比其他服务器差。 只是为了强调差异,此时请求分配约35至65%。 一般来说,关于相同的URL请求比率。
  5. 现在,我认为我们有两个服务器之间的其他用户软件水平差异。 事实并非如此。
  6. 我们自动pipe理configuration和代码。 PHP有相同的模块加载,Apache也。 代码没有区别。
  7. 硬件是一样的。
  8. 作为额外的信息,我们不会有粘滞的会议。 请求被随机定向到两个服务器。 我们也testing了这一点。 configuration更改后的差异是具有该问题的服务器接收的请求less得多。
  9. 服务器在处理请求或连接到其他组件(如数据库)时没有任何有意义的时间差异。

鉴于此背景检查当前的CPU图像。 带有问题的服务器: web1 image CPU性能通知RED表示系统CPU时间不是用户,apache是​​用户空间。 还请注意,这些图像是从更改后得到更less的请求到web1(有问题)。 在我们有严重的CPU和负载平均问题之前,那么这里是另一台服务器。 Web2镜像CPU性能 。 没有检测到IO,RAM或其他硬件问题。

这让我怀疑内核问题。 top似乎也是这样说的。 顶级Web1与Web2图像性能

然后我注意到内核因为某种原因加载了不同的模块。 lsmod Web1 vs Web2图像

因为我找不到其他的区别。 由于服务器应该是相同的,我实际上已经足够了。 BOSS希望能够在删除内核模块之前将其链接到实际问题。 我尝试了一些东西,包括perf,但没有pipe理。 Perf( perf record -F 99 -a -g -- sleep 30 )正在产生这样的结果,但是我不太了解如何使用它或者如何帮助我定义结果。 在这里输入图像说明 web1在左边,web2在右边。 如果你看到它列出了需要CPU时间/百分比的调用,但我不知道它们是什么。

你是否同意这应该可能与内核模块有关? 为什么是或不?

有人可以给我一些关于如何获得统计模块的使用情况和时间/每个模块的CPU使用率的百分比?

还有什么我没有想到的?