目的:在机器能够承受情况下,达到最大请求连接数
概念:http的IO模式
prefork, worker, event,其中prefork为进程模式,worker和event为线程的多路复用模式,本文以httpd传统的prefork为例,也可以通过更改配置文件设置httpd的IO响应模式
/etc/httpd/conf.modules.d/00-mpm.conf
准备测试网页
一般一个5Mb大小的文本文件test.txt,通常门口网站主页大小,
- 调整prefork的配置,从2000个进程开始
StartServers 2000
MinSpareServers 5
MaxSpareServers 20
ServerLimit 2000 # 最多进程数,最大值 20000
MaxClients 2000 # 最大的并发连接数
MaxRequestsPerChild 4000 # 子进程最多能处理的请求数量。
在服务端打开vmstate
vmstat 1 #主要观察内存和swap情况
在client端测试httpd连接状况,根据测试结果不断调整profork进程数大小
# ab命令为httpd-tools中的一个工具
# 输出中主要的参数为Requests per second
ab -c1000 -n2000 http://ip/test.txt
Document Path: /
Document Length: 20 bytes
Concurrency Level: 10
Time taken for tests: 0.070 seconds
Complete requests: 10
Failed requests: 0
Write errors: 0
Total transferred: 2650 bytes
HTML transferred: 200 bytes
Requests per second: 143.24 [#/sec] (mean)
Time per request: 69.813 [ms] (mean)
Time per request: 6.981 [ms] (mean, across all concurrent requests)
Transfer rate: 37.07 [Kbytes/sec] received