我遇到这个问题,同时试图从Mac OS X 10.8.3围攻下面的cmd。
siege -d1 -c 20 -t2m -i -f -r10 urls.txt
Siege的输出如下:
** SIEGE 2.74 ** Preparing 20 concurrent users for battle. The server is now under siege... done. siege aborted due to excessive socket failure; you can change the failure threshold in $HOME/.siegerc Transactions: 0 hits Availability: 0.00 % Elapsed time: 27.04 secs Data transferred: 0.00 MB Response time: 0.00 secs Transaction rate: 0.00 trans/sec Throughput: 0.00 MB/sec Concurrency: 0.00 Successful transactions: 0 Failed transactions: 1043 Longest transaction: 0.00 Shortest transaction: 0.00 FILE: /usr/local/var/siege.log You can disable this annoying message by editing the .siegerc file in your home directory; change the directive 'show-logfile' to false.
问题可能是你用尽了临时端口。 要解决该问题,请扩大要使用的端口数量,或者减少端口保留在TIME_WAIT中的持续时间。
展开可用的端口:
检查您的当前设置:
$ sudo sysctl net.inet.ip.portrange.hifirst
net.inet.ip.portrange.hifirst: 49152
将其设置为较低以展开您的窗口:
$ sudo sysctl -w net.inet.ip.portrange.hifirst=32768
net.inet.ip.portrange.hifirst: 49152 -> 32768
(应该已经是最高的了,65536)
减少最大段寿命
$ sudo sysctl -w net.inet.tcp.msl=1000
net.inet.tcp.msl: 15000 -> 1000