Nginx Server 与 WorkerMan Server For PHP 压测报告
测试要求:
1.相同环境 (linux debian12)
2.相同配置 (4c 8v 40G)
3.相同输出内容 ({"code":200,"msg":"\u6210\u529f","data":
[{"id":1,"name":"cichenman","age":26,"tip":"\u5185\u5b58\u6570\u636e"}]})
4.内网测试 (本地 127.0.0.1)
5.AB 压测 (参数:50W 请求 1000 并发 开启 Keep-Alive)
测试模式:
具体代码贴在了评论区
均采用:4 个进程,8G 内存,千兆内网环境测试,测试数据仅供参考,每种测试模式测试 10 次
你这个压测有问题, 4核服务器 静态输出 workerman 不可能才4万 QPS, 至少10万 +
这是我刚压测的4核腾讯云服务器, 14万QPS
代码
可能是我本地环境问题
1.我win电脑开的vm虚拟机24核心
2.电脑后台挂了很多软件
3.虚拟机安装了宝塔,nginx,mysql
4.ab测试也是在虚拟机内部直接压测
5.实际压测程序内部结构很复杂,写了启动类,缓存类,数据库类,并都启动实例化了,
6.输出形式可能不同,ng是直接返回一个静态文本,php是echo,workerman是调用各种安全检测判断后输出
感觉问题在我自己,并不是程序问题,应该用一个纯净linux机器安装我写的脚本,并把无用的实例注释掉。
然后用另一台电脑测试,这样性能应该上去了
我用的e5-2673 v3本地电脑,内存频率2133mz
你的服务器配置是不是吊打我
我的就是普通的腾讯云的服务器,4核 4G,还是竞价实例,一小时3分钱那种,用完就关
好吧,正在优化代码中,现在已经将代码的并发处理到了9万。用了gzip压缩数据,太占用资源
Benchmarking 127.0.0.1 (be patient)
Completed 100000 requests
Completed 200000 requests
Completed 300000 requests
Completed 400000 requests
Completed 500000 requests
Completed 600000 requests
Completed 700000 requests
Completed 800000 requests
Completed 900000 requests
Completed 1000000 requests
Finished 1000000 requests
Server Software: workerman
Server Hostname: 127.0.0.1
Server Port: 80
Document Path: /
Document Length: 10 bytes
Concurrency Level: 1000
Time taken for tests: 10.324 seconds
Complete requests: 1000000
Failed requests: 0
Keep-Alive requests: 1000000
Total transferred: 171000000 bytes
HTML transferred: 10000000 bytes
Requests per second: 96861.28 [#/sec] (mean)
Time per request: 10.324 [ms] (mean)
Time per request: 0.010 [ms] (mean, across all concurrent requests)
Transfer rate: 16175.08 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.6 0 27
Processing: 0 10 5.9 9 53
Waiting: 0 10 5.9 9 53
Total: 0 10 5.9 10 53
Percentage of the requests served within a certain time (ms)
50% 10
66% 12
75% 13
80% 14
90% 17
95% 21
98% 26
99% 30
100% 53 (longest request)
重新在天翼云的2核心业务服务器上进行了测试
环境2C 4G
安装软件:由于是业务服务器安装了MySQL,bt面板,等
压测参数:ab -n 500000 -c 1000 -k http://127.0.0.1/
run.php
startUp.php
Main.php
Route.php
RouteConfig.php
Home.php
FileTypeDetection.php
PDO.php
MCLIB.php
McClient.php - 基于官方的共享组件客户端
McServer.php - 基于官方共享组件服务端
虽然但是不是很懂你想表达什么
这是项目整体的框架
不明觉厉.这得是什么场景啊?
网站
你的缓存类 如果多进程的情况下,是不是会有问题.他不是共享缓存.