为什么我ab测试数据库部分,比原生php+mysql慢?

zangcuanhh

为什么我ab测试数据库部分,比原生php+mysql慢?
慢了好多 不知道哪里调整
截图
这个是原生的mysql开启1000次最大请求的情况下大概3秒6完成了全部请求
截图
这个是webman的测压数据

webman比原生慢了大概10倍

直接输出字符串无mysql交互,webman比原生快了大概3倍

原生的是mysqli,webman用的thinkorm
执行的是 SELECT * FROM xx limit 10000
环境centos,大佬们看看

977 3 2
3个回答

walkor

windows系统?windows系统下webman是单进程,压测得用Linux系统。还有压测最好内网或者127.0.0.1压测,排除网络瓶颈

  • zangcuanhh 2022-09-12

    环境 centos额,webman我用的是127本地ip测过了,一样的

  • zangcuanhh 2022-09-12

    感觉mysql部分并未开启多线程模式

walkor

截图
一共1000个请求,你的原生有150个失败,还有850个非200响应,看起来成功率是0,应该是报错了,很可能没访问到数据库。

现在浏览器都默认keepalive的,压测最好带上-k参数,能够反映相对真实的承载能力。
带数据库的话,webman进程数最好开成cpu的3-4倍,在config/server.php里设置,设置完restart重启

xiuwang

原生明显报错了,原生请求只返回150个字节,根本没读数据库,失败率100%。
而webman每个请求返回1.2M,成功率100%。

还有如果每个请求返回1.2M,啥语言框架QPS都一样,因为100M网卡每秒也就支持10个这样的请求。

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