performance - 诊断两个 Web 服务器之间的慢速页面 'Waiting time'

标签 performance optimization webserver developer-tools page-load-time

我们刚刚安装/配置了一个新的 Web 服务器来替换我们过时的服务器。让我们称旧服务器“server1”+新服务器“server2”。它们都运行相同的网站,使用相同的代码,但旧服务器提供网页的速度仍然比新服务器快得多。首先,这是有关服务器规范的更多详细信息:
服务器 1 配置:

Linux server1 2.6.32-25-generic-pae #45-Ubuntu SMP Sat Oct 16 21:01:33 UTC 2010 i686 GNU/Linux

MemTotal: 6180036 kB

8 cores Intel(R) Xeon(R) CPU E5620 @ 2.40GHz

Server version: Apache/2.2.14 (Ubuntu)


服务器 2 配置:

Linux server2 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

MemTotal: 24682544 kB

16 cores Intel(R) Xeon(R) CPU E5620 @ 2.40GHz

Server version: Apache/2.2.22 (Ubuntu)


主要区别在于 server2 具有 64 位操作系统架构,并且还具有更多的 RAM 和 CPU 能力。
我不了解你,但我希望 server2 能够击败 server1。但是,在提供网页时情况并非如此。
两个服务器页面加载的开发人员工具输出:
Server1
等待时间:314ms
Server2
等待时间:5.45s
如您所见,两台机器发出完全相同的文件请求,但 server1 仍然占主导地位。
我已经尝试研究可能影响“等待时间”的几个因素,但我很难缩小花费时间的范围。
我查看了 Apache2 配置,两台机器上都应用了完全相同的指令和模块扩展... 区分代码并验证它是相同的...网络/ping/nslookup 时间几乎相同。
谁能解释一下“等待时间”是如何计算的,以及可以用来缩小问题范围的任何做法?
非常感谢,
ns

最佳答案

是的,我最终确实找到了它的底部。尽管您的问题的解决方案可能与我的非常不同。 “等待时间”是一个相当宽泛的术语,可以与在服务器端执行的任何事情相关。

在我的例子中,我不得不以一种相当痛苦的方式手动调试代码,打印负载 microtime()围绕代码的语句来确定时间丢失的地方。

原来有一些遗留代码有 exec/sbin/route .

在最初的 32 位系统上,这完全可以立即执行,但在 64 位机器上,它需要超过 5 秒:

$ time /sbin/route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.10.10.1       0.0.0.0         UG    100    0        0 eth0

real    0m5.007s
user    0m0.000s
sys     0m0.004s

不确定/sbin/route 是否通常在 64 位机器上执行较慢(如果是这样,很高兴知道为什么),或者是否应该归咎于较新的操作系统版本。

关于performance - 诊断两个 Web 服务器之间的慢速页面 'Waiting time',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10834103/

相关文章:

c# - Unity计算3D鼠标位置

algorithm - 找到包含在固定大小的圆圈中的最多点

c++ - 通过矩阵转置优化矩阵乘法

file - 如何使用 .htaccess 限制对一个或多个文件的访问?

java - 为什么 Erlang 在所有这些小型数学基准测试中都比 Java 慢?

c - printf 减慢了我的程序

java - H2 WebServer 打开带有预填充信息的 Web 控制台

java - Tomcat,httpd : Running both at same time and calling based upon URL.

wcf - 与其他大容量程序解决方案相比,WCF 的性能如何?

用于多个 CPU 和大量内存的 Eclipse 性能调整?