2021-11-15 12:42:13 +00:00
|
|
|
.. _sysadmin_traffic_control:
|
|
|
|
|
|
|
|
Traffic Control
|
|
|
|
---------------
|
|
|
|
|
2021-11-22 15:05:16 +00:00
|
|
|
.. image:: images/screenshots/pbs-gui-traffic-control-add.png
|
|
|
|
:align: right
|
|
|
|
:alt: Add a traffic control limit
|
2021-11-15 12:42:13 +00:00
|
|
|
|
2021-11-22 15:05:16 +00:00
|
|
|
Creating and restoring backups can produce lots of traffic and impact other
|
|
|
|
users of the network or shared storages.
|
|
|
|
|
|
|
|
Proxmox Backup Server allows to limit network traffic for clients within
|
|
|
|
specified networks using a token bucket filter (TBF).
|
|
|
|
|
|
|
|
This allows you to avoid network congestion or to prioritize traffic from
|
|
|
|
certain hosts.
|
|
|
|
|
|
|
|
You can manage the traffic controls either over the web-interface or using the
|
|
|
|
``traffic-control`` commandos of the ``proxmox-backup-manager`` command-line
|
|
|
|
tool.
|
|
|
|
|
|
|
|
.. note:: Sync jobs on the server are not affected by its rate-in limits. If
|
2022-01-12 14:19:50 +00:00
|
|
|
you want to limit the incoming traffic that a pull-based sync job
|
2021-11-22 15:05:16 +00:00
|
|
|
generates, you need to setup a job-specific rate-in limit. See
|
|
|
|
:ref:`syncjobs`.
|
|
|
|
|
|
|
|
The following command adds a traffic control rule to limit all IPv4 clients
|
|
|
|
(network ``0.0.0.0/0``) to 100 MB/s:
|
2021-11-15 12:42:13 +00:00
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
# proxmox-backup-manager traffic-control create rule0 --network 0.0.0.0/0 \
|
2021-11-22 08:05:01 +00:00
|
|
|
--rate-in 100MB --rate-out 100MB \
|
2021-11-15 12:42:13 +00:00
|
|
|
--comment "Default rate limit (100MB/s) for all clients"
|
|
|
|
|
2021-11-22 15:05:16 +00:00
|
|
|
.. note:: To limit both IPv4 and IPv6 network spaces you need to pass two
|
|
|
|
network parameters ``::/0`` and ``0.0.0.0/0``.
|
|
|
|
|
|
|
|
It is possible to restrict rules to certain time frames, for example the
|
|
|
|
company office hours:
|
|
|
|
|
|
|
|
.. tip:: You can use SI (base 10: KB, MB, ...) or IEC (base 2: KiB, MiB, ...)
|
|
|
|
units.
|
2021-11-15 12:42:13 +00:00
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
# proxmox-backup-manager traffic-control update rule0 \
|
|
|
|
--timeframe "mon..fri 8-12" \
|
|
|
|
--timeframe "mon..fri 14:30-18"
|
|
|
|
|
2021-11-22 15:05:16 +00:00
|
|
|
If there are more rules, the server uses the rule with the smaller network. For
|
|
|
|
example, we can overwrite the setting for our private network (and the server
|
|
|
|
itself) with:
|
2021-11-15 12:42:13 +00:00
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
# proxmox-backup-manager traffic-control create rule1 \
|
|
|
|
--network 192.168.2.0/24 \
|
|
|
|
--network 127.0.0.0/8 \
|
2021-11-22 08:05:01 +00:00
|
|
|
--rate-in 20GB --rate-out 20GB \
|
2021-11-15 12:42:13 +00:00
|
|
|
--comment "Use 20GB/s for the local network"
|
|
|
|
|
|
|
|
.. note:: The behavior is undefined if there are several rules for the same network.
|
|
|
|
|
2021-11-22 15:05:16 +00:00
|
|
|
If there are multiple rules that match the same network all of them will be
|
|
|
|
applied, which means that the smallest one wins, as it's bucket fills up the
|
|
|
|
fastest.
|
|
|
|
|
2021-11-15 12:42:13 +00:00
|
|
|
To list the current rules use:
|
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
# proxmox-backup-manager traffic-control list
|
|
|
|
┌───────┬─────────────┬─────────────┬─────────────────────────┬────────────...─┐
|
|
|
|
│ name │ rate-in │ rate-out │ network │ timeframe ... │
|
|
|
|
╞═══════╪═════════════╪═════════════╪═════════════════════════╪════════════...═╡
|
2021-11-22 08:05:01 +00:00
|
|
|
│ rule0 │ 100 MB │ 100 MB │ ["0.0.0.0/0"] │ ["mon..fri ... │
|
2021-11-15 12:42:13 +00:00
|
|
|
├───────┼─────────────┼─────────────┼─────────────────────────┼────────────...─┤
|
2021-11-22 08:05:01 +00:00
|
|
|
│ rule1 │ 20 GB │ 20 GB │ ["192.168.2.0/24", ...] │ ... │
|
2021-11-15 12:42:13 +00:00
|
|
|
└───────┴─────────────┴─────────────┴─────────────────────────┴────────────...─┘
|
|
|
|
|
|
|
|
Rules can also be removed:
|
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
# proxmox-backup-manager traffic-control remove rule1
|
|
|
|
|
|
|
|
|
|
|
|
To show the state (current data rate) of all configured rules use:
|
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
# proxmox-backup-manager traffic-control traffic
|
2021-11-22 08:05:01 +00:00
|
|
|
┌───────┬─────────────┬──────────────┐
|
|
|
|
│ name │ cur-rate-in │ cur-rate-out │
|
|
|
|
╞═══════╪═════════════╪══════════════╡
|
|
|
|
│ rule0 │ 0 B │ 0 B │
|
|
|
|
├───────┼─────────────┼──────────────┤
|
|
|
|
│ rule1 │ 1.161 GiB │ 19.146 KiB │
|
|
|
|
└───────┴─────────────┴──────────────┘
|