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