部署了一个webman测试环境,Workerman version:4.1.4 PHP version:7.2.34
发现会出现间歇性卡顿,一般是一段时间没有访问之后,再次访问,会卡住很久几十秒。再之后一些访问就正常了。看业务日志,卡住的那个请求,实际请求耗时很短,感觉是过了很久才把请求任务分配到达代码中。
主要的配置如下
upstream test {
server 127.0.0.1:8787;
keepalive 10240;
}
location /api/test {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Connection "";
if (!-f $request_filename){
proxy_pass http://test;
}
}
Workerman version:4.1.4 PHP version:7.2.34
把
config/server.php
里count
设置为1,restart重启。执行 php start.php status 找到,webman进程pid假设是123
第二天或者你说的很久之后,执行 strace -ttp 123,访问页面,如果出现卡顿看下strace结果就能定位到了。
有可能是连数据库 redis之类的超时了。