QoS - MySQL-Bandbreitenpriorität unter CentOS/Rhel

QoS - MySQL-Bandbreitenpriorität unter CentOS/Rhel

Ich habe einen stark ausgelasteten Server und nginx verbraucht die gesamte verfügbare Bandbreite. Ich kann keine Verbindung zum MySQL-Server (auf einem anderen Computer) herstellen, da ich Fehlermeldungen wie diese bekomme:

Verbindung zum MySQL-Server beim Lesen des Autorisierungspakets verloren

Ich möchte eine Art Quality of Service einrichten, sodass der MySQL-Verkehr immer Vorrang hat und seine Pakete nie verloren gehen.

Gibt es eine Methode, dies in CentOS 7/Rhel zu tun?

Gibt es alternativ eine Möglichkeit, den Datenverkehr über Port 80 auf beispielsweise 900 Mbit/s zu begrenzen/zu begrenzen?

Antwort1

Sie können iptables und TC verwenden. Es würde ungefähr so ​​aussehen:

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

Der Filter bezieht sich auf die IP-Adresse des Hosts, für Sie müssen Sie Folgendes anpassen:

  • die iptables-Zeilen mit den TCP-Ports Ihrer Anwendungen.
  • und die Bandbreite der einzelnen Klassen

verwandte Informationen