小编Kas*_*sth的帖子

限制 Ubuntu Linux 上的带宽

我处于必须模拟 P2P 环境的情况(对于我的计算机科学硕士论文)。为此,我将 Docker 与 Ubuntu 一起使用来创建一堆虚拟机,这些虚拟机将连接到 BitTorrent 网络中。然后我需要确保可以设置对等点的上传和下载速率,这不是我在客户端中执行的选项(因为客户端使用睡眠来模拟较低的带宽,这会导致峰值速度)。

因此,我正在尝试为每个容器执行此操作。老实说,只要它有效,我真的不在乎这是如何完成的,但是我尝试了不同的事情但没有运气。这些是我迄今为止尝试过的事情:

  1. Trickle Trickle 似乎在起作用,但出于某种原因,当我启动超过 5 个 Docker 容器时,Trickle 会使很多容器退出而不告诉我原因。我尝试了不同的设置,但是在配置方面你没有那么多旋钮可以转动,所以我认为在这种情况下不会选择 Trickle。
  2. Wondershaper 使用 Wondershaper 似乎有效,或者至少它限制了带宽。这里唯一的问题是在选项中设置的值与实际带宽之间似乎没有可以理解的相关性。当我设置下载 2048(应该是 kbits)时,实际下载范围在 550KB 到 900KB 之间,这看起来很奇怪。
  3. tc 使用 tc,就像许多人针对类似问题所建议的那样,确实限制了带宽,但无论我设置什么值,它总是给我相同的带宽(大约 15-20KB/s)。

我曾尝试遵循大量指南和示例,但每一个都没有奏效或如上所述。我在这里有点不知所措,所以如果有人知道上述示例应该工作的任何原因或有其他解决方案,那就太棒了。

我正在寻找的是一种限制单个 Linux 实例的方法,然后我应该能够使其适用于多个 Docker 容器。

- - - - - - - - 编辑 - - - - - - - -

我尝试了几个不同的 tc 命令,但其中一个是这样的

DEV=eth0
tc qdisc del dev $DEV root
tc qdisc add dev $DEV root handle 1: cbq avpkt 1000 bandwidth 100mbit
tc …
Run Code Online (Sandbox Code Playgroud)

networking linux traffic-shaping tc iproute2

4
推荐指数
1
解决办法
6024
查看次数

标签 统计

iproute2 ×1

linux ×1

networking ×1

tc ×1

traffic-shaping ×1