6

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

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

4

6 回答 6

3

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

<IfModule mpm_prefork_module>
    StartServers          2
    MinSpareServers       2
    MaxSpareServers      2
    MaxClients          4
    MaxRequestsPerChild   0
</IfModule>
于 2012-12-12T18:26:23.620 回答
2

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

于 2009-07-10T15:34:58.587 回答
2

看起来 DummyNet 是最接近的东西,但它仍然不完全存在。对于可重复的测试,最好对丢弃的数据包和重置进行一些控制。

于 2009-07-24T13:09:55.347 回答
1

我强烈推荐来自 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% 的请求还有其他带宽选项等。您可以在使用过程中添加或删除这些。那里还有很多其他功能和库。

于 2019-08-27T13:30:19.290 回答
0

这是 Unix 还是 Linux 环境? nice将其设置为较低的优先级,然后运行高 CPU 使用率任务,例如听音乐、播放电影、计算 pi 等。Apache 的低优先级应该会产生类似于您正在寻找的问题。

于 2009-07-10T15:50:05.777 回答
0

在不同(或同一台)计算机上,使用命令行工具ab在 apache 上获得一些负载。更多信息在这里

于 2009-07-24T13:12:20.370 回答