Apache2性能测试on Solaris and Linux

为了客观的了解Apache的服务器性能,在此选取Apache自带的性能测试软件ApacheBench, Version 2.0.40-dev and Version 2.3 分别作为性能测试工具。

1.比较现有T2000 Apache2.2.8经过优化前后的效果

Webserver IP10.56.234.31

优化前httpd.conf

----------------------------------------------------------------------

<IfModule prefork.c>

StartServers 10

MinSpareServers 50

MaxSpareServers 100

ServerLimit 10000

MaxClients 10000

MaxRequestsPerChild 0

</IfModule>

----------------------------------------------------------------------

优化后httpd.conf

----------------------------------------------------------------------

<IfModule prefork.c>

StartServers 150

MinSpareServers 10

MaxSpareServers 20

ServerLimit 20000

MaxClients 20000

MaxRequestsPerChild 10000

</IfModule>

----------------------------------------------------------------------

测试命令: /opt/apache2.2.8/bin/ab -n 10000 -c 1000 http://127.0.0.1/pete/20kb/automot.jpg

测试方法: 访问20kbjpg图片来获取tps数据,为了排除网络因素,选取127.0.0.1本地环路地址。

测试结果:

----------------------------------------------

使用ApacheBench v2.0进行测试

apache2.2.8(20k) 优化前 1657tps

apache2.2.8(20k) 优化后 1666tps

---------------------------------------------

使用 ApacheBench v2.3进行测试

apache2.2.8(20k) 优化前 1765tps

apache2.2.8(20k) 优化后 1822tps

-----------------------------------------------

测试结论:由于这个Apache2.2.8版本没有编入worker.c模块,无法进行worker优化。但是,单独就对prefork的优化,发现性能提升很小。基本保持以后的水平。同时我们发现,测试结果受到T2000机器状态影响很大。所以,本测试基本在没有其他压力的情况下进行。

2.比较现有T2000Apache2.2.8Apache2.2.11优化后的性能

Webserver IP10.56.234.31

配置:

a. Apache2.2.8优化后配置请见step1

b.Apache2.2.11中对于httpd-mpm.conf优化:

----------------------------------------------------------------------

# prefork MPM

# StartServers: number of server processes to start

# MinSpareServers: minimum number of server processes which are kept spare

# MaxSpareServers: maximum number of server processes which are kept spare

# ServerLimit: maximum value for MaxClients for the lifetime of the server

# MaxClients: maximum number of server processes allowed to start

# MaxRequestsPerChild: maximum number of requests a server process serves

<IfModule prefork.c>

StartServers 150

MinSpareServers 10

MaxSpareServers 20

ServerLimit 20000

MaxClients 20000

MaxRequestsPerChild 10000

</IfModule>

# worker MPM

# StartServers: initial number of server processes to start

# MaxClients: maximum number of simultaneous client connections

# MinSpareThreads: minimum number of worker threads which are kept spare

# MaxSpareThreads: maximum number of worker threads which are kept spare

# ThreadsPerChild: constant number of worker threads in each server process

# MaxRequestsPerChild: maximum number of requests a server process serves

<IfModule worker.c>

StartServers 2

MaxClients 1500

MinSpareThreads 25

MaxSpareThreads 75

ThreadsPerChild 25

MaxRequestsPerChild 0

</IfModule>

同时在httpd.conf中打开httpd-mpm.conf注释。在编译Apache2.2.11worker模块时修改了worker源代码,

# vi server/mpm/worker/worker.c
找到下面几行,并改成如下的数值,其目的是在源码中修改apache可支持的最大线程数和最大客户端数目。
# define DEFAULT_SERVER_LIMIT 256
# define MAX_SERVER_LIMIT 40000
# define DEFAULT_THREAD_LIMIT 256
# define MAX_THREAD_LIMIT 40000

----------------------------------------------------------------------

测试命令:

/opt/apache2.2.8/bin/ab -n 10000 -c 1000 http://127.0.0.1/automot.jpg

/opt/apache2.2.8/bin/ab -n 10000 -c 1000 http://127.0.0.1/pete/20kb/automot.jpg

/opt/apache2.2.11/bin/ab -n 10000 -c 1000 http://127.0.0.1/automot.jpg

/opt/apache2.2.11/bin/ab -n 10000 -c 1000 http://127.0.0.1/pete/20kb/automot.jpg

测试方法: 访问20kbjpg图片来获取tps数据,为了排除网络因素,选取127.0.0.1本地环路地址。

测试结果:

-----------------------------------------------

使用ApacheBench v2.0进行测试

apache2.2.8(20k) 1631tps

apache2.2.11(20k) 1581tps

-----------------------------------------------

----------------------------------------------

使用ApacheBench v2.3进行测试

apache2.2.8(20k) 1773tps

apache2.2.11(20k) 1747tps

----------------------------------------------

测试结论:

Apache2.2.8Apache2.2.11经过优化后的测试结果相近。

3.比较CMCC的机遇HP BladeApache2.0.52的性能

Webserver IP:10.56.135.64

优化配置:同step2Apache2.2.11配置

测试命令:

/opt/apache2.2.8/bin/ab -n 10000 -c 1000 http://10.56.135.64/automot.jpg

/usr/bin/ab -n 10000 -c 1000 http://10.56.135.64/automot.jpg

测试方法:访问20kbjpg图片来获取tps数据,为了排除网络因素,选取127.0.0.1本地环路地址。

测试结果:

-----------------------------------------------

使用ApacheBench v2.0.1.141进行测试

Apache2.0.52(20k) 3773tps

-----------------------------------------------

----------------------------------------------

使用ApacheBench v2.0.1.146进行测试

Apache2.0.52(20k) 7556tps

----------------------------------------------

测试结论:测试工具的版本差异会造成结果的巨大差异。但是,总的来说,CMCC HP Blade webserver性能在此项测试中要优于T2000 Webserver。初步怀疑是硬件系统架构差异引起的性能差异。

你可能感兴趣的:(c,linux,软件测试,Solaris,HP)