20

Есть ли способ в Linux, чтобы конкретное приложение более / менее приоритетно для пропускной способности сети? Что-то вроде того, как nice для приоритета процессора.

Контекст: в настоящее время у меня соединение с очень низкой пропускной способностью (ключ 3G). Несмотря на то, что я выполняю довольно большое обновление с использованием aptitude , становится практически невозможно просматривать веб-страницы, поскольку загрузка обновления загружает мое интернет-соединение.

Поэтому я хотел бы как-то уменьшить приоритет пропускной способности сети процесса aptitude (и всех его дочерних элементов), чтобы он не использовал слишком большую полосу пропускания, пока другой процесс его использует.

1 ответ1

9

Вы можете использовать force_bind, чтобы установить приоритет для всех сокетов приложения, а затем, используя Linux QoS (команда tc), вы можете назначить приложения диапазону приоритетов. Проверьте файл README для примера.

http://kernel.embedromix.ro/us/

Отказ от ответственности: я автор.

Пример:

14: Force priority (between 0 and 6 for non-root users). You can
        use 'tc' command from iproute to set-up 'prio' qdisc and to
        assign prio to queues:
        # 0. setup
        export FORCE_NET_VERBOSE=1
        export LD_PRELOAD=${LD_PRELOAD}:/usr/lib/force_bind.so
        # 1. Make sure you have a 'prio' qdisc attached to eth0, for example:
        tc qdisc add ev eth0 root handle 1: prio
        # 2. Assign applications to classed (bands):
        export FORCE_NET_PRIO=6 # interactive, band 0
        your_voip_program_here
        export FORCE_NET_PRIO=0 # best effort, band 1
        your_mail_program_here
        export FORCE_NET_PRIO=2 # bulk, band 2
        your_remote_backup_program_here
        # 3. Run tc statistics so you can see the classification:
        tc -s class show dev eth0

Конечно, вы можете использовать htb или любой другой диск.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .