有两个角色 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 这个原因
现在不知道怎么解决了 ,求大佬指导
有没有一种可能,我是说可能啊,是A的问题?
是极有可能的,可是都已经走到发请求那步了,之前压测tp确实他会阻塞掉,可是tp 这边有什么好的办法解决吗,只能同步请求 B,无法异步 因为业务需要 A 必须在请求内拿到东西
1.多开FPM进程
2.加机器
3.把TP也换成webman
哈哈我也想换,只是短时间内, 加机器你指的是加A这边的么,。。多开FPM进程我需要尝试一下
瓶颈在A
[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这边是报这个错误我看了下
线上频繁出现A调用超时的时候,你去webman 运行 php start.php status 命令结果看看,是否都是处于[busy]状态,如果都是[idle]的状态,那么就是A调用过程中有问题,要不就是A的问题。如果webman[busy]状态,那就是webman的锅。
稍等我去 看看
大概率是A 的问题
不是webman的问题呢
把curl用webman独立出来,不影响其他代码
啊 啥意思大佬
A的问题不用考虑这种方案,如果B的问题可以考虑
第一直觉是A的FPM的数量问题吧
是的