Как сделать qdisc постоянным? (чтобы сохранялся после перезагрузок)

Вопрос или проблема

В настоящее время мой Wi-Fi адаптер настроен на использование дисциплины очередей noqueue, и я хочу изменить его на fq_codel, чтобы это сохранялось при перезагрузках:

ip link show dev wlan0
    
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff

Для изменения qdisc я делаю:

sudo tc qdisc add dev wlan0 root fq_codel
ip link show dev wlan0

3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DORMANT group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff

Это работает, qdisc был изменен, как видно, но только до перезагрузки.

Я также проверил значение по умолчанию для qdisc, установленное в системе, которое уже равно fq_codel:

sudo sysctl net.core.default_qdisc

net.core.default_qdisc = fq_codel

Ответ или решение

Чтобы сделать настройки qdisc (в данном случае fq_codel) постоянными и сохранять их после перезагрузки системы, необходимо использовать один из следующих подходов:

1. Использование systemd

Если ваша система использует systemd (что сейчас довольно распространено), вы можете создать систему сервиса, которая будет применяться после загрузки.

Шаги:

  1. Создайте файл службы:

    sudo nano /etc/systemd/system/tc-setup.service
  2. Вставьте следующее содержимое в файл:

    [Unit]
    Description=Setup Traffic Control for wlan0
    After=network.target
    
    [Service]
    Type=oneshot
    ExecStart=/sbin/tc qdisc add dev wlan0 root fq_codel
    RemainAfterExit=yes
    
    [Install]
    WantedBy=multi-user.target
  3. Сохраните файл и закройте редактор.

  4. Перезагрузите systemd и включите службу:

    sudo systemctl daemon-reload
    sudo systemctl enable tc-setup.service

Теперь fq_codel будет применяться автоматически после каждой перезагрузки.

2. Использование скриптов и crontab

Другой способ — использовать crontab для выполнения команды при загрузке.

Шаги:

  1. Откройте файл crontab для редактирования:

    sudo crontab -e
  2. Добавьте следующую строку в конец файла:

    @reboot /sbin/tc qdisc add dev wlan0 root fq_codel
  3. Сохраните и закройте файл.

Теперь команда будет выполняться каждый раз при перезагрузке системы.

3. Настройка в файле сети

Также в некоторых дистрибутивах Linux можно использовать конфигурационные файлы сети.

Пример для Ubuntu:

  1. Откройте файл конфигурации сети:

    sudo nano /etc/network/interfaces
  2. Найдите интерфейс wlan0 и добавьте строку для настройки qdisc:

    auto wlan0
    iface wlan0 inet dhcp
       post-up /sbin/tc qdisc add dev wlan0 root fq_codel
  3. Сохраните и закройте файл.

Заключение

Теперь после выполнения указанных шагов, ваша конфигурация qdisc будет оставаться постоянной на wlan0 даже после перезагрузки устройства. В зависимости от вашего дистрибутива Linux может быть один из способов, который лучше всего подходит для вашей ситуации.

Оцените материал
Добавить комментарий

Капча загружается...