我通过 ab 测试 Apache服务器2.4 时遇到问题。 Apache服务器在Windows上作为服务运行,我从Linux上的另一台服务器进行测试。
我写道:
ab -n 1000 -c 1000 "http://x.x.x.x/image.jpg"
输出:
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking x.x.x.x (be patient)
apr_socket_recv: Connection refused (111)
当 -n 和 -c 为100时,它没有问题。 以前我测试过它已经没事了,但是它立即开始崩溃了。 我尝试了一切,甚至 mpm_winnt_module ,但它没有帮助。
(我在Apache中使用默认值。)
我认为这不是网络问题。我可以在Wireshark中看到一段时间后通信被重置。据我所知,阿帕奇有罪。
谢谢!
答案 0 :(得分:1)
在Windows上,Apache只有ThreadsPerChild
个线程,并且可以准确接受多个连接,+ ListenBacklog
个线程可以由操作系统排队。
更多,连接将被拒绝。
使用像netstat这样基本的东西会显示当前和排队连接的数量(后者将显示非零接收队列)。
如果您想要更多并发连接,则需要扩展ThreadsPerChild
。这是Windows最基本的缩放配置项。
答案 1 :(得分:1)
请检查您是否有多个 ifconfig 或 ip addr 的界面。我用了
ab -c 20 -n 1000 -B 12.34.56.78 http://www.example.com/
其中-B是绑定压力测试的地址,12.34.56.78是连接到互联网的接口。