我想在一个 shell 中更新我的 linux,但默认情况下更新程序中的 wget 或 axel 使用所有带宽。
我怎样才能限制这个shell的速度?
我希望其他 shell 能够公平分享,并限制该 shell 中的所有内容 – 就像代理一样!
我使用 Zsh 和 Arch Linux。
这个问题重点关注进程范围或会话范围的解决方案。看如何限制网络带宽?适用于 Linux 上的系统范围或容器范围的解决方案。
答案1
看一下细流用户空间带宽整形器。只需用trickle启动你的shell并指定速度,例如:
trickle -d 100 zsh
它尝试将在此 shell 内启动的所有程序的下载速度限制为 100KB/s。
由于trickle的使用,LD_PRELOAD
这不适用于静态链接程序,但这对于大多数程序来说不是问题。
答案2
http://lartc.org/wondershaper/
它位于 Ubuntu / Debian 存储库中,也可能位于其他存储库中。它限制的不仅仅是单个外壳,而是整个机器。虽然我自己从未尝试过
答案3
这手册页wget
提供以下信息:
--limit-rate=amount
将下载速度限制为每秒字节数。数量可以用字节、千字节(带 k 后缀)或兆字节(带 m 后缀)来表示。例如,--limit-rate=20k 将限制检索速率为 20KB/s。当您出于某种原因不希望 Wget 消耗整个可用带宽时,这非常有用。