解決策 1:
最終的には、サーバーで発信帯域幅/レイテンシーを設定し、クライアントで同じことを行って、効果的に同じ結果に到達することに落ち着きました.
これらは、目標を達成するためにサーバーとクライアントでそれぞれ実行したコマンドです:
サーバー:4 メガビット 50 ミリ秒
tc qdisc add dev eth0 handle 1: root htb default 11
tc class add dev eth0 parent 1: classid 1:1 htb rate 1000Mbps
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 4Mbit
tc qdisc add dev eth0 parent 1:11 handle 10: netem delay 50ms
クライアント:512 キロビット 50 ミリ秒
tc qdisc add dev vmnet1 handle 1: root htb default 11
tc class add dev vmnet1 parent 1: classid 1:1 htb rate 1000Mbps
tc class add dev vmnet1 parent 1:1 classid 1:11 htb rate 512kbit
tc qdisc add dev vmnet1 parent 1:11 handle 10: netem delay 50ms
解決策 2:
約 80 ~ 90 kByte / s が期待値です
tc filter add ... police rate 1.0mbit ...
着信データが 1 mBit/s で到着したときに破棄するように要求します。これは約 125 kByte/s です。その後、リモートサーバーはそれよりもかなり低くなります(おそらく半分、確かではありません)。その後、すべてのパケットが通過するため、リモート エンドはゆっくりと速度を上げていき、再び 125 kByte/s に到達します。 平均を取得します イングレス シェーピングの典型である 125 kByte/s を大幅に下回るスループット。
イングレス ポリシー フィルターが既に適用されている状態で速度が 2 MByte/s に達することに少し驚いています。下流のクライアント (プログラム) または上流のルーターのどこで測定しましたか?それとも、最初に接続を開始し、その後でイングレス ポリシー フィルターを適用したのではありませんか?