Назад | Перейти на главную страницу

QoS - приоритет пропускной способности MySQL в CentOS / rhel

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

Потеряно соединение с сервером MySQL при чтении пакета авторизации

Я хочу настроить какое-то качество обслуживания, чтобы трафик mysql всегда имел приоритет, а его пакеты никогда не сбрасывались.

Есть ли способ сделать это в centos 7 / rhel?

В качестве альтернативы, есть ли возможность ограничить / сформировать трафик порта 80, скажем, 900 Мбит / с?

Вы можете использовать iptables и TC. Это было бы примерно так:

iptables -t mangle -A FORWARD ! -s  192.168.xxx.0/24 -d 192.168.xxx.xxx -j MARK --set-mark 1

tc qdisc add dev <eth> root handle 1: cbq bandwidth 100Mbit avpkt 1000 mpu 64
tc class add dev <eth> parent 1:0 classid 1:1 cbq rate 3200Kbit allot 1514 prio 1 avpkt 1000 bounded
tc filter add dev <eth> parent 1:0 protocol ip handle 1 fw flowid 1:1

Фильтр берется с IP-адреса хоста, вам придется адаптировать:

  • строки iptables с TCP-портами ваших приложений.
  • и пропускная способность каждого класса