webman并发问题

laozhou

有两个角色 A,B
A 服务器 用 tp5.1搭建
B 用webman搭建

当我用A 去请求B的时候 A 提示会超时.(并发情况下)
可是单独压力测试B 毫无问题
A用的是 curl请求,
现在A 时不时提示请求B 超时,请问大佬我如何查找问题
我设置了A 的curl的超时时间为30s,将curlerror 存入日志发现提示是Operation timed out after 30001 milliseconds with 0 out of 0 bytes received 这个原因
现在不知道怎么解决了 ,求大佬指导

935 4 2
4个回答

nitron

有没有一种可能,我是说可能啊,是A的问题?

  • laozhou 2023-11-06

    是极有可能的,可是都已经走到发请求那步了,之前压测tp确实他会阻塞掉,可是tp 这边有什么好的办法解决吗,只能同步请求 B,无法异步 因为业务需要 A 必须在请求内拿到东西

  • nitron 2023-11-06

    1.多开FPM进程
    2.加机器
    3.把TP也换成webman

  • laozhou 2023-11-06

    哈哈我也想换,只是短时间内, 加机器你指的是加A这边的么,。。多开FPM进程我需要尝试一下

  • nitron 2023-11-06

    瓶颈在A

  • laozhou 2023-11-06

    [06-Nov-2023 11:28:24] WARNING: [pool www] child 28465, script '....../index.php' (request: "POST /index.php?s=A中的路由") executing too slow (31.949126 sec), logging
    [06-Nov-2023 11:28:24] NOTICE: child 21156 stopped for tracing
    A这边是报这个错误我看了下

meows

线上频繁出现A调用超时的时候,你去webman 运行 php start.php status 命令结果看看,是否都是处于[busy]状态,如果都是[idle]的状态,那么就是A调用过程中有问题,要不就是A的问题。如果webman[busy]状态,那就是webman的锅。

没茅台

把curl用webman独立出来,不影响其他代码

  • laozhou 2023-11-07

    啊 啥意思大佬

  • muvtou 2023-11-07

    A的问题不用考虑这种方案,如果B的问题可以考虑

rbb

第一直觉是A的FPM的数量问题吧

×
🔝