如何使apache缓慢且不可靠?

时间:2009-07-10 15:30:33

标签: apache testing apache2 stress-testing

我正在使用REST服务从主机检索数据的移动设备上编写一些代码。 Apache服务正在代理REST服务。在测试模式中,我希望能够模拟网络中断(就好像设备丢失了它的单元连接)来测试应用程序处理间歇性故障。我还需要通过慢速网络连接来验证它的行为。

我目前正在使用Traffic Shaper XP来减慢网络连接速度,但现在我需要一些东西来使Apache服务器发送连接随机和预定义的序列重置(设置和重复特定的测试场景)。

6 个答案:

答案 0 :(得分:3)

在Apache2中,您可以通过调整apache2.conf中的prefork设置来减慢速度。下面的设置应该使apache非常慢。他们使我的本地Web应用程序加载时间缩短了700%。

<IfModule mpm_prefork_module>
    StartServers          2
    MinSpareServers       2
    MaxSpareServers      2
    MaxClients          4
    MaxRequestsPerChild   0
</IfModule>

答案 1 :(得分:2)

编写一个小代理,将您的应用程序中的TCP连接转发到apache服务器,并且可以在测试中设置以在x个字节或毫秒之后切断连接。

答案 2 :(得分:2)

看起来像dummynet是最接近的东西,但在那里仍然不安静。对于可重复测试,最好控制丢弃的数据包和重置。

插孔

答案 3 :(得分:0)

这是Unix还是Linux环境? nice优先考虑低优先级,然后运行高CPU使用率的任务,如听音乐,播放电影,计算pi等.Apache的低优先级应该会产生类似于你想要的问题。

答案 4 :(得分:0)

在另一台(或同一台)计算机上使用命令行工具ab来加载apache。更多信息here

答案 5 :(得分:0)

我强烈推荐Shopify中的https://github.com/Shopify/toxiproxy

下载https://github.com/Shopify/toxiproxy/releases CLI和服务器

运行服务器:

 ./toxiproxy-server-linux-amd64

在cli设置代理上以在另一个端口上进行apache例如8080

./toxiproxy-cli create apache -l localhost:8080 -u localhost:80

使连接缓慢且不可靠:

./toxiproxy-cli toxic add apache -t latency -a latency=3000 
./toxiproxy-cli toxic add apache -t limit_data -a bytes=1000 --tox=0.01

此处增加3秒的延迟,并在1000字节后停止处理1%的请求,还有带宽等其他选项。您可以在使用期间添加或删除这些选项。那里还有许多其他功能和库。

相关问题