QoS - Prioridade de largura de banda MySQL no CentOS / rhel

QoS - Prioridade de largura de banda MySQL no CentOS / rhel

Eu tenho um servidor altamente carregado e o nginx está consumindo toda a largura de banda disponível e não consigo me conectar ao servidor mysql (localizado em outra máquina), pois estou recebendo erros como

Conexão perdida com o servidor MySQL em 'leitura do pacote de autorização'

Desejo configurar algum tipo de Qualidade de Serviço para que o tráfego mysql sempre tenha prioridade e seus pacotes nunca sejam descartados.

Existe algum método para fazer isso no centos 7/rhel?

Como alternativa, existe alguma opção para limitar/modelar o tráfego da porta 80 para, digamos, 900 Mbps?

Responder1

Você pode usar iptables e TC. Seria algo assim:

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

O filtro é do endereço IP do host, para você você terá que adaptar:

  • as linhas iptables com as portas TCP de seus aplicativos.
  • e a largura de banda de cada classe

informação relacionada