QoS: prioridad de ancho de banda de MySQL en CentOS/rhel

QoS: prioridad de ancho de banda de MySQL en CentOS/rhel

Tengo un servidor muy cargado y nginx está consumiendo todo el ancho de banda disponible y no puedo conectarme al servidor mysql (ubicado en otra máquina) porque recibo errores como

Se perdió la conexión con el servidor MySQL en 'paquete de autorización de lectura'

Deseo configurar algún tipo de Calidad de Servicio para que el tráfico de MySQL siempre tenga prioridad y sus paquetes nunca se pierdan.

¿Existe algún método para hacer esto en centos 7/rhel?

Alternativamente, ¿existe alguna opción para limitar/configurar el tráfico del puerto 80 a, digamos, 900 Mbps?

Respuesta1

Puedes usar iptables y TC. Sería algo como esto:

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

El filtro es a partir de la dirección IP del host, para ti tendrás que adaptarte:

  • las líneas de iptables con los puertos TCP de sus aplicaciones.
  • y el ancho de banda de cada clase

información relacionada