我需要比较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";
所以现在我有几个问题:
- 是我比较CPU peformances正确的做法。 (PS我必须使用基于web的 基准测试)?
- 如何确定没有。连接到我的服务器的客户端?
- 请提供更好的方法来查找CPU负载。 (使用load_averages 可以通过读取/ proc/loadavg来获得最大cpu限制。
感谢名单..
你永远不会考虑最大的客户端允许在web服务器(如apache) – ajreal 2012-02-02 17:56:38
可能是这样的。但我的问题不是关于Web服务器分解,而是关于CPU负载。我只想知道这个脚本可以并行运行多少次,直到负载达到95%。当发生这种情况时,我会得到不。的连接。纠正我,如果我错了.. – tnx1991 2012-02-02 18:12:57
如果您的服务器可以处理100个连接之前CPU负载是95%,但您的Web服务器只允许50最大并发连接? (那么你的测试永远不会有收获) – ajreal 2012-02-02 18:18:43