Home
Download
Document
Forum
Video
Donate
Source Code
Sponsors
AI 助理
Products
Swoole-Compiler
CRMEB 新零售社交电商系统
Vprix 远程桌面系统
Login
Register
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
http服务器协程,每个协程阻塞slepp一秒,最大并发为什么是900左右.
### 问题描述 http服务器协程,每个协程阻塞slepp一秒,最大并发为什么是900左右. ### Swoole版本,PHP版本,以及操作系统版本信息 php8.2 压测代码 wrk -c 1000 -t 10 -d 10s http://127.0.0.1:9501/test ### 相关代码 ```php <?php include "../vendor/autoload.php"; use Swoole\Coroutine\Http\Server; use function Swoole\Coroutine\run; run(function () { $server = new Server('127.0.0.1', 9501, false); $server->handle('/test', function ($request, $response) { Swoole\Coroutine\System::sleep(1); $response->end("<h1>Test</h1>"); }); $server->start(); }); ``` # 结果 ``` Running 10s test @ http://127.0.0.1:9501/test 10 threads and 1000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 1.00s 3.48ms 1.02s 88.28% Req/Sec 98.03 2.86 100.00 88.89% 9000 requests in 10.04s, 1.42MB read Requests/sec: 896.02 Transfer/sec: 145.25KB ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? QPS为什么是900左右呢? 是什么因素决定的.是否可以调整?
发布于9月前 · 36 次浏览 · 来自
提问
xiang
### 问题描述 http服务器协程,每个协程阻塞slepp一秒,最大并发为什么是900左右. ### Swoole版本,PHP版本,以及操作系统版本信息 php8.2 压测代码 wrk -c 1000 -t 10 -d 10s http://127.0.0.1:9501/test ### 相关代码 ```php <?php include "../vendor/autoload.php"; use Swoole\Coroutine\Http\Server; use function Swoole\Coroutine\run; run(function () { $server = new Server('127.0.0.1', 9501, false); $server->handle('/test', function ($request, $response) { Swoole\Coroutine\System::sleep(1); $response->end("<h1>Test</h1>"); }); $server->start(); }); ``` # 结果 ``` Running 10s test @ http://127.0.0.1:9501/test 10 threads and 1000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 1.00s 3.48ms 1.02s 88.28% Req/Sec 98.03 2.86 100.00 88.89% 9000 requests in 10.04s, 1.42MB read Requests/sec: 896.02 Transfer/sec: 145.25KB ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? QPS为什么是900左右呢? 是什么因素决定的.是否可以调整?
赞
0
分享
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
评论
2024-01-10
Rango
你可以尝试检查一下 CPU 占用率,另外修改为 KeepAlive 长连接,也可能是 `wrk` 工具本身的一些限制。
赞
0
回复
2024-01-19
加了糖的格温
协程的http服务器开启是单进程的,而且加上协程的CPU切换,压测结果低是正常的
赞
0
回复
微信公众号
热门内容
暂无回复的问答
- CodeGalaxy K3s 轻量集群节点之间如何实现负载均衡
- 关于openssl CURL WARNING swSSL_connect: SSL_connect(fd=69) failed. Error: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small[1|394]
- 多个模型如何进行事务异常回退?
- websocket开启wss报错
- 协程tcp服务器如何使用多进程?recv()方法接收信息,打印出来的pid一直是同一个。没用使用到多进程啊。