每次重启webman,第一次请求都等待很长时间,没有配置数据库

wenruns

调试到这一步,解析控制器的时候卡住了好久
截图

执行php start.php status结果;没有报错
截图

2075 6 0
6个回答

walkor 打赏

执行 php start.php status 贴下

debug方式运行 php start.php start ,等2分钟,看下终端界面有没有报错。

  • 暂无评论
walkor 打赏

有调试能力的就继续调试下,看下哪里慢

  • 暂无评论
walkor 打赏

开一个进程,然后php start.php status 找下这个进程pid,执行 strace -ttp 进程pid, 在页面访问下,截图下strace结果

古树

我试了一下自己的第一次启动请求,在浏览器里看到的等待时间:
不连数据库大概600~900毫秒,
连数据库大概1000~2000毫秒
第二次以后就比较快了,基本在50~80毫秒左右。但如果长时间不请求再次请求就又是600多毫秒。

我的环境是windows使用wsl2安装Ubuntu20,php8.1。
如果不使用wsl,直接windows上运行就非常快,基本是个位数的响应时间。
php start.php status显示的响应实际是挺快的:

Workerman version:4.0.37          PHP version:8.1.6
start time:2022-05-26 15:27:02   run 0 days 0 hours
load average: 0.15, 0.45, 0.5    event-loop:\Workerman\Events\Select
2 workers       17 processes
worker_name  exit_status      exit_count
webman       0                0
monitor      0                0
----------------------------------------------PROCESS STATUS---------------------------------------------------
pid     memory  listening           worker_name  connections send_fail timers  total_request qps    status
18584   3.35M   http://0.0.0.0:8787 webman       0           0         1       0             0      [idle]
18585   3.35M   http://0.0.0.0:8787 webman       0           0         1       0             0      [idle]
18586   3.35M   http://0.0.0.0:8787 webman       0           0         1       0             0      [idle]
18587   3.35M   http://0.0.0.0:8787 webman       0           0         1       0             0      [idle]
18588   3.35M   http://0.0.0.0:8787 webman       0           0         1       0             0      [idle]
18589   3.35M   http://0.0.0.0:8787 webman       0           0         1       0             0      [idle]
18590   3.35M   http://0.0.0.0:8787 webman       0           0         1       0             0      [idle]
18591   3.35M   http://0.0.0.0:8787 webman       0           0         1       0             0      [idle]
18592   3.35M   http://0.0.0.0:8787 webman       0           0         1       0             0      [idle]
18593   3.35M   http://0.0.0.0:8787 webman       0           0         1       0             0      [idle]
18594   3.35M   http://0.0.0.0:8787 webman       0           0         1       0             0      [idle]
18595   3.35M   http://0.0.0.0:8787 webman       0           0         1       0             0      [idle]
18596   3.35M   http://0.0.0.0:8787 webman       0           0         1       0             0      [idle]
18597   3.35M   http://0.0.0.0:8787 webman       0           0         1       0             0      [idle]
18598   3.35M   http://0.0.0.0:8787 webman       0           0         1       0             0      [idle]
18599   3.35M   http://0.0.0.0:8787 webman       0           0         1       0             0      [idle]
18600   2.94M   none                monitor      0           0         2       0             0      [idle]
----------------------------------------------PROCESS STATUS---------------------------------------------------
Summary 50M     -                   -            0           0         18      0             0      [Summary]
  • 暂无评论
wenruns

截图
今天装了strace测试了,好像一直在跑

lstat("/www/order-webman/app/vue3/node_modules/element-plus/dist/locale/sr.min.mjs", {st_mode=S_IFREG|0777, st_size=4688, ...}) = 0
  • wenruns 2022-05-27

    /www/order-webman/app/vue3这个是vue3写的前端,为啥会跑这个目录呢?

  • wenruns 2022-05-27

    所以说,无关项目不能放到app下面?不然会遍历所有的文件,所以导致第一次请求速度变慢

  • walkor 2022-05-27

    vue3目录不要放到app下,app下只放php文件。
    webman 启动后第一个请求会扫描整个app目录找到请求对应控制器,vue3目录文件太多了,所以慢。

  • zeln 2022-09-02

    mark 建议把这句话加到目录介绍那里

  • walkor 2022-09-02

    新版没这个问题了

  • doit 2022-09-29

    大佬,如果有时间麻烦看下下面我提的一个相关的问题,感谢~

Tinywan

vue3 项目应该和app目录应该是平级的

截图

  • 暂无评论
年代过于久远,无法发表回答
×
🔝