【发布时间】:2018-09-01 11:42:45
【问题描述】:
有几个问题是关于工具或设置的答案,用于模拟不同操作系统上的慢速网络状况,例如
- Network tools that simulate slow network connection
- How do I simulate a low bandwidth, high latency environment?
不幸的是,答案没有提到我的案例的解决方案,所以它不是多余的或重复的。
我正在使用 Redis 缓存和 MySQL 数据库开发一个 Web 应用程序(在本地,在 macOS 上使用 Node.js / Express,但这并不重要)。
为了在我的本地机器上进行一些(性能)测试,我想在该应用程序上加载负载(例如使用ab 或JMeter)。显然,因为 Redis 缓存和 MySQL 数据库与 Web 应用程序运行在同一台机器上,所以我在这三个组件之间有一个很好的网络连接(如:无)。
我想通过将虚拟“连接”降级到 Redis 和 MySQL(但每个连接具有不同的延迟和带宽设置)来模拟这些组件之间的不同网络连接 - 就像在具有多个服务器的生产设置中的情况一样。连接可以通过端口号来区分,但不能通过主机名(这三个都是localhost)。
如何在同一台机器上模拟特定端口号的不同网络连接条件?
【问题讨论】:
-
如果在 Docker 容器中“包装”Redis 缓存和 MySQL 数据存储提供了一个解决方案——容器之间的网络条件是否可以设置或降级? ——这也可能是有效的。然后问题转移到“在哪里/如何指定这些设置?”
标签: caching web-applications network-programming database-connection simulation