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

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

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

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

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

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

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

решение1

Вы можете использовать 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-портами ваших приложений.
  • и пропускная способность каждого класса

Связанный контент