我们在远程服务器上托管一个应用程序。我们需要在有限的网络带宽下对其进行测试(对于 Internet 访问不佳的用户)。
我可以限制我的互联网带宽吗?例如:每秒 128 KB。
此问题侧重于 Linux 上的系统范围或容器范围的解决方案。有关特定于进程或会话的解决方案,请参阅限制特定 shell 的 Internet 带宽使用。
我有一台 CentOS 5.7 服务器,它将每晚备份其文件。我担心当备份通过网络传输时,服务器托管的各个站点的访问者会遇到性能下降。
是否可以将进程的最大允许吞吐量限制为网络接口?我想将基于 SSH 的文件传输限制为我可用带宽的一半。这可能在服务器端或客户端;也就是说,我很乐意在发起连接的客户端或接收连接的服务器上执行此操作。
(不幸的是,我无法添加专门用于备份的接口。我可以增加可用吞吐量,但这仅意味着网络传输将完成得更快,但在执行此操作时仍能最大限度地提高连接的总容量。)
也许一些背景是有序的。退一步说,我遇到了没有足够的本地空间来创建备份本身的问题。进入SSHFS!备份被保存到表面上是本地驱动器的地方,这样网络服务器本身就没有备份位。
为什么这很重要?因为那似乎会使尊者的使用无效rsync --bwlimit。rsync实际上不是这样的转移,也可以,因为我甚至无法腾出空间来保存备份文件。
我可以听到你问:“等等,为什么你甚至需要制作备份文件?为什么不只是rsync源文件和文件夹?” 因为一个叫“Plesk”的烦人的东西混在了一起!这是我的面向客户端的 Web 主机,为了方便使用 Plesk。因此,我使用 Plesk 来启动备份,因为 Plesk 为备份添加了各种额外的魔法,这使得在恢复过程中使用它非常安全。
悲伤的脸
例如,我们希望看到:
PROCESS IF TX RX FILE(regular) R/W
prog1 eth0 200kB/s 12kB/s -- --
wlan0 12kB/s 100kB/s -- --
-- -- -- file1 R
-- -- -- file2 R
-- -- -- file3 W
prog2 eth0 0kB/s 200kB/s -- --
-- -- -- file4 W
-- -- -- file5 W
Run Code Online (Sandbox Code Playgroud)
这可能吗?nethogs 只显示 TX/RX,而 lsof 只显示文件访问。
我目前正在做一个像这样的两步过程:
sudo nethogs
sudo lsof -a -d 1-999 -c hogging_program /
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
当我执行 a yum updateor 时apt-get update,我的机器正在访问多个服务器并下载多个软件包。我想这些服务器每天都在处理数百万个类似的请求。
谁为这些服务器的维护、存在和带宽买单?如果答案取决于发行版,那么 CentOS、Arch 和 Ubuntu 将是很好的例子。我对此感到疑惑,因为我正在使用这些免费操作系统并且我正在消耗带宽,但我没有为此特权向任何人支付过费用。
这个过程不断占用我的带宽:
我正在运行 Fedora 23。
我想在一个 shell 中更新我的 linux,但默认情况下,更新程序中的 wget 或 axel 使用所有带宽。
我怎样才能限制这个外壳的速度?
我希望其他 shell 拥有公平的份额,并限制该 shell 中的所有内容 - 类似于代理!
我使用 Zsh 和 Arch Linux。
这个问题侧重于进程范围或会话范围的解决方案。请参阅如何限制网络带宽?适用于 Linux 上的系统范围或容器范围的解决方案。
我试图比较在千兆以太网中连接的两台主机之间的几种网络安全协议的性能。
我的目标是看看我是否可以使带宽饱和,如果不能,限制因素是什么。
所以我的问题是:为什么 IPsec 不能达到更高的带宽?
两台主机运行 Debian Wheezy 和 Strongswan 以获取 IPsec。
我找到了一个不错的监视器,它允许我记录单个进程的各种运行时数据。我正在寻找对带宽使用具有相同作用的等价物。理想情况下,该命令应类似于bwmon --pid 1 --log init.log. 有这样的吗?它可以在没有管理员权限的情况下运行吗?
在 3 台机器上,我得到:
$ speedtest-cli
Retrieving speedtest.net configuration...
Traceback (most recent call last):
File "/usr/bin/speedtest-cli", line 11, in <module>
load_entry_point('speedtest-cli==2.1.2', 'console_scripts', 'speedtest-cli')()
File "/usr/lib/python3/dist-packages/speedtest.py", line 1986, in main
shell()
File "/usr/lib/python3/dist-packages/speedtest.py", line 1872, in shell
speedtest = Speedtest(
File "/usr/lib/python3/dist-packages/speedtest.py", line 1091, in __init__
self.get_config()
File "/usr/lib/python3/dist-packages/speedtest.py", line 1173, in get_config
ignore_servers = list(
ValueError: invalid literal for int() with base 10: ''
Run Code Online (Sandbox Code Playgroud)
我已经在两个不同的互联网连接上测试了其中一台机器,结果相同。
为什么它不起作用?
bandwidth ×10
networking ×5
monitoring ×2
process ×2
centos ×1
distros ×1
fedora ×1
files ×1
ip ×1
ipsec ×1
limit ×1
linux ×1
performance ×1
qos ×1
repository ×1
router ×1
testing ×1