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

测试完毕再改回去就好

Show Comments