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