如何在系统服务级别限制带宽?每个服务可以通过不同的网络接口路由吗?

如何在系统服务级别限制带宽?每个服务可以通过不同的网络接口路由吗?

所以。这就是我想做的事情。我有一个 Ubuntu 服务器 (20.04),上面有我创建的以下三个 systemd 服务。每个服务都运行自己的应用程序,不断从互联网上传和下载数据。

服务 1、服务 2、服务 3

service1 设置示例

sudo nano /etc/systemd/system/system1.service
[Unit]
Description=Myapp Service 1
After=network.target 
Wants=network.target
[Service]
User=user1 
Group=user1
Type=simple
Restart=always
RestartSec=5
ExecStart=myapp
[Install]
WantedBy=default.target

现在,我希望所有服务的下载带宽都是无限的。我希望服务 1 的上传带宽为 1000 kBps,服务 2 的上传带宽为 150 kBps,服务 3 的上传带宽为 15 kBps。我有一个板载以太网适配器连接到我的路由器,接口名称为 eno1。这台机器上没有 wifi,而且不想使用 wifi。想用有线的。

我碰到奇迹塑造者但似乎只能在接口级别限制带宽。就我而言,是针对整个 eno1。有没有办法创建新接口 eno2、eno3 并为这些服务中的每一个服务(service1 和通过 eno1 的所有其他服务、service2 通过 eno2、service3 通过 eno3)路由流量,并使用 wondershaper 分别限制 eno1/2/3 的带宽?

或者有没有其他对于 Linux 初学者来说不是太复杂的选择?

答案1

你可以用 trickle 来尝试一下。

https://wiki.archlinux.org/index.php/trickle

sudo apt-get install trickle

相关内容