OS X下使用Apache Bench时遇到的问题
在OS X下面做压测的时候,发现AB在压到16500请求左右的时候会停下来,卡一段时间然后继续
原本认为是Apache Bench版本有问题,后面更新之后问题依旧
后面在StackOverFlow上面发现了和这个有关的问题描述:
‘ab’ program freezes after lots of requests, why?
原因是OS X只有约16K的短暂可用端口,当端口占满的时候会进入一个等待状态,使用netstat
可以查看端口的等待状态,这个等待的时间可以缩短,在Terminal中键入
sysctl net.inet.tcp.msl
可以知道等待的时间,在测试的时候可以缩短为1秒
sudo sysctl -w net.inet.tcp.msl=1000
测试完毕再改回去就好