Networking

QoS - CentOS / rhel 上的 MySQL 頻寬優先級

  • January 17, 2017

我有一個負載很高的伺服器,而 nginx 正在消耗所有可用頻寬,我無法連接到 mysql 伺服器(位於另一台機器上),因為我遇到了類似的錯誤

在“讀取授權數據包”時失去與 MySQL 伺服器的連接

我希望設置某種服務質量,以便 mysql 流量始終具有優先級,並且它的數據包永遠不會被丟棄。

在 centos 7 / rhel 中有什麼方法可以做到這一點嗎?

或者,是否有任何選項可以將埠 80 流量限制/調整為 900Mbps?

您可以使用 iptables 和 TC。它會是這樣的:

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

過濾器來自主機的 IP 地址,你必須適應:

  • iptables 與您的應用程序的 TCP 埠一致。
  • 以及每個類的頻寬

引用自:https://serverfault.com/questions/826732