2012-02-02 49 views
4

我需要比较3台运行Web服务器的不同计算机的性能。我的想法是,给予相同的PHP脚本来处理每台服务器,一个能够服务最大的号码。的客户在给定的负载限制下将是最强大的。如何确定最大。没有。我的Web服务器可以处理的客户端的数量?

为了实现这一点,我有一个单一的PHP脚本,基本上做了一些沉重的数学计算。我维持客户数量为静态值。脚本将无限运行,直到CPU负载为95%。当负载达到95%时,脚本应该停止所有客户端。 而在这个限制下,拥有最多客户数的系统将是表现最好的。

这个PHP脚本的一般结构为:

static $clients_count=0; 
static $sys_load=0; 

//increment clients_count 
$clients_count++; 

while(sys_load<=95) 
{ 
do_heavy_maths(); 

//calculate current cpu load 
sys_load=get_cpu_load(); 
} 

echo "No. of max. clients this server handled: $clients_count"; 

所以现在我有几个问题:

  1. 是我比较CPU peformances正确的做法。 (PS我必须使用基于web的 基准测试)?
  2. 如何确定没有。连接到我的服务器的客户端?
  3. 请提供更好的方法来查找CPU负载。 (使用load_averages 可以通过读取/ proc/loadavg来获得最大cpu限制。

感谢名单..

+0

你永远不会考虑最大的客户端允许在web服务器(如apache) – ajreal 2012-02-02 17:56:38

+0

可能是这样的。但我的问题不是关于Web服务器分解,而是关于CPU负载。我只想知道这个脚本可以并行运行多少次,直到负载达到95%。当发生这种情况时,我会得到不。的连接。纠正我,如果我错了.. – tnx1991 2012-02-02 18:12:57

+0

如果您的服务器可以处理100个连接之前CPU负载是95%,但您的Web服务器只允许50最大并发连接? (那么你的测试永远不会有收获) – ajreal 2012-02-02 18:18:43

回答

1

试图从内做到这一点,比运行一个外部基准测试工具不准确。

请记住,php核心有几个触发器,可以避免cpu消耗或限制它。

随着操作码缓存这可以运行得更快,其他几个方面。

检查一些工具在:http://www.opensourcetesting.org/performance.php

我坚信PHP不适合以及编写在一个原始内存/ CPU访问语言与像C.

更紧密的内存和CPU管理
+0

我同意你,但我不能帮助它。我需要编写一个基于PHP的基准测试工具。虽然我会写这个工具的C版本,但截至目前我必须去与PHP只..无论如何..thanx无论如何.. – tnx1991 2012-02-02 18:19:02

1

想想它很高兴尝试。听起来像一个有趣的项目。

不幸的是,这是不现实的负载测试。配置设置将严重影响单个脚本可以使用的容量。您只运行单线程,而Web服务器强烈依赖多线程容量。其他影响,如活动负荷,其他过程,分配等都会影响。甚至不考虑网络速度。

负载通常表示为2.0等数字。这实际上并没有说什么负载,因为它取决于你的实际容量的CPU核心数量。

对于真正的基准测试使用真实工具,如:http://httpd.apache.org/docs/2.0/programs/ab.html和许多其他专业解决方案。

  1. 是我比较CPU性能正确的方法。 (PS我只能使用基于Web的基准测试)?
    不,如上所述。

  2. 如何确定否。连接到我的服务器的客户端?
    只有当你知道客户真正做什么时才会这样做。与仅在每个请求中运行复杂脚本的服务器相比,用于仅传递静态文件的服务器应该完全不同。

  3. 请提供更好的方法来查找CPU负载。 *很难画出最大值。使用load_averages可以从/proc/loadavg.*读取CPU限制
    在单独进程中记录整个负载并记录它。把它放在测试日志旁边,你会看到影响。要创建此限制,PHP中的唯一方法是执行命令,解析反馈。提到上面关于nr的注释。的CPU,核心等你必须照顾。这不仅仅是一个百分比。

+0

thanx很多弗兰肯..伟大的答案..我同意,这种测试绝不可能是真实的你已经提到,但我的想法很简单,如果你必须使用一个单一的PHP脚本比较3个系统你会走什么路?就这样我看着http://www.opensourcetesting.org/performance.php了解真实世界的度量工具。 – tnx1991 2012-02-02 19:12:09

相关问题