问题
本来我单独一个请求的时候,响应速度是1秒钟以内,但如果我用Jmeter等工具,并发请求的时候,请求越多响应速度越慢。20个请求甚至会变成20+秒。这合理?
代码做了啥
里面的代码逻辑是 读取几个本地缓存(file/reids),然后查几遍数据库。然后然后返回给前台一个json数据,返回16000+bytes的数据,不涉及图片或者其他资源
环境
PHP7 + tp6 + mysql5.7 + nginx + 阿里云双核8G 1M宽带
我的尝试
我开启了数据库慢查询,时间为1秒。然而并没有任何查询被记录下来。
2020年6月18日10:24:02
我把中间件都干掉了。然后只查一遍数据库。里面有75条数据。
10线程请求,第一个5秒多,最后一个12秒?
如果单次请求的话,是这样
响应日志看不出来有什么。。php慢日志也没有记录。。用的宝塔面板,不知如何下手
如果把查数据库。变成了查reids。10线程时间
如果只请求一次,那么load time 是 543。慢了10倍?
可以检查一下是否是因为后端启用了阻塞型的 session 导致的
如果满足以上三个条件, 那么你的并发请求基本上是被串行处理的