服务器负载太大而影响程序效率也是很常见的我们需要对此进行测试这里我以目前最常用的Apache服务器为例
Apache 服务器自带有一个叫AB(ApacheBench)的工具在bin目录下使用这个轻巧的工具我们可以对服务器进行负载测试看看在重负荷之下服务器的表现如何ApacheBench 可以针对某个特定的 URL 仿真出连续的联机请求同时还可以仿真出同时间点数个相同的联机请求因此利用 ApacheBench 可帮助我们在网站开发期间仿真实际上线可能的情况利用仿真出来的数据作为调整服务器设定或程序的依据
在命令行下输出
/ab n number_of_total_requests \
c number_of_simultaneous_requests \
例如
/ab n c
AB将同时向发出个并发请求共发出次
测试结果将可能是这样的
Server Software: Apache/
Server Hostname: localhost
Server Port:
Document Path: /myappPHP
Document Length: bytes
Concurrency Level:
Time taken for tests: seconds
Complete requests:
Failed requests:
Total transferred: bytes
HTML transferred: bytes
Requests per second:
Transfer rate: kb/s received
Connection Times (ms)
min avg max
Connect:
Processing:
Total:
myappPHP每秒钟可以处理的请求数为个将请求数增加看看服务器能否处理更大的压力你也需要调节Apache的MaxClients ThreadsPerChildMaxThreadsPerChild等参数基于你的中的MPM模块选择
如果你想得到更详细的信息请到上查阅一些更深入的文档包括模块和第三方的提高效率的工具修改后要重启Apache服务器然后再用AB测试你会看到每秒请求数增加或减少
记下每次的参数最后选择最佳效率的那种配置
要指出的是除了AB还有许多优秀的服务器性能测试软件