webman项目重启后第一次请求等待时间平均5s左右

doit

webman项目每次重启后或者长时间没有请求后的第一次请求等待时间平均为5s,查看了类似的问题
https://www.workerman.net/q/8539
但是项目目录设置并未将非Php文件放入app目录中,目录结构如下
截图
使用单个进程启动服务,使用dtrace追踪如下,
截图
截图
php start.php status如下
截图
请问有无遇见这种情况的?

1421 3 0
3个回答

nitron

WSL2+宿主机目录映射?
提一句, WSL2的话,直接把代码放子系统里,不要通过挂载宿主机目录的方式,因为IO性能很差

  • doit 2022-09-29

    不是,mac系统通过正常的转发配置

  • nitron 2022-09-29

    mac不了解,首次那么慢基本都是磁盘IO原因

  • doit 2022-09-29

    应该不是,传统php-fpm框架每次都要加载,但是也没这么长时间,肯定是有问题的

walkor 打赏

从截图看不出什么问题,自己打下日志吧,看下哪里慢,一层一层的找。
vendor/workerman/webman-framework/src/App.php 里onMessage方法

  • doit 2022-09-29

    自己测试发现,消耗的时间在onMessage之前

  • doit 2022-09-29

    出现这种情况的场景是重启后第一次访问,或者长时间无请求后

  • walkor 2022-09-29

    vendor/workerman/webman-framework/src/support/App.php 里onWorkerStart是进程启动后的一些操作

  • doit 2022-09-29

    调试发现onWorkerStart启动很快,耗时时间在onWorkerStart与onMessage之间,该如何定位问题呢?

  • walkor 2022-09-29

    弄个空的项目试下是否有问题,没有问题的话然后慢慢把你现在项目的代码一点一点挪过去,定位下是哪块问题。

  • doit 2022-09-29

    好的

王小板爱吃鱼

解决了吗,我这边也出现相同的问题

  • doit 2022-10-10

    还没来得及排查,个人觉得排查方向应该是在新安装的插件上

  • doit 2022-10-10

    你那边有没有排查出问题?我发现每一个进程第一次请求都比较慢,本地测试等待一段时间无访问的话,请求分配到另外一个未接收过请求的进程,就会出现等待时间长的问题

  • 王小板爱吃鱼 2022-10-19

    我在linux服务器上没有这个问题

  • 王小板爱吃鱼 2022-10-19

    本机开发环境使用docker会有

  • doit 2022-10-19

    相同环境,配置高的就没这个问题,8核cpu,我的是4核

  • 王小板爱吃鱼 2022-10-19

    我的服务器是1核的,也没有这个问题

年代过于久远,无法发表回答
×
🔝