用ab压测接口,-c 100的话很快,300、500、800甚至1000就开始慢了,90%或95%的耗时都比较快,就是总有一小部分请求的耗时会偏高,导致QPS变低的很厉害,这是为什么呢。
补充下,是在linux下试的
____________________分割线
是在linux下对本机压测的,整体就nginx+phpfpm
就压一个php文件,里面就echo一句hello world。
c 100的时候QPS大概在1400-1500左右,请求都维持100ms内。
但c提升到300以上,90%的请求依然可以在80ms左右,但就是有极少数请求会在2000、3000ms以上,整个QPS均值就跌下来了,就只有五六百。
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
-c 100 表示1次发出100个请求.
对于采用epoll等事件驱动的服务比如Nginx,能够开门把请求先放进来,谁先准备好就先处理谁,不用排队.
而没有事件驱动的服务比如prefork MPM下的Apache,则只能把请求堵在门口的backlog队列里排队,逐个处理.
这时你要增加Apache的吞吐量,你就应该把backlog队列配置得更大些(默认511),以及增开工作进程.
进程数不宜开太多,否则CPU在大量进程间来回切换分配资源也会产生开销导致性能不佳.
也要你本地的并发连接能到啊,太大本地就直接报错了,或是没响应了