Mir ist klar, dass bereits viele ähnliche Fragen gestellt wurden, aber ich habe bisher noch keine Lösung für mein Problem gefunden.
Ich habe einen virtuellen Linux-Server (unter Debian Squeeze), den ich zum Testen der Website-Geschwindigkeit verwende, um die Zunahme und Abnahme der Ladezeit dieser Websites zu messen. Ich versuche, die Bandbreite und die Latenz dieses Servers zu begrenzen, um den tatsächlichen Ladezeiten auf den Websites nahe zu kommen, bin aber bisher gescheitert.
Was ich speziell möchte, ist Folgendes:
- Eingehende und ausgehende Latenz von 50 ms einstellen.
- Festlegen einer eingehenden Bandbreitenbeschränkung von 512 KBit / s.
- So legen Sie ein ausgehendes Bandbreitenlimit von 4096 kbit / s fest
Ich habe in Netem nachgelesen und den tc
Befehl verwendet, aber es geht mir immer noch ein bisschen über den Kopf. Ich habe es geschafft, diesen Befehl zusammenzustellen, um die Latenz zu steuern, die zu funktionieren scheint, aber ich bin mir nicht einmal sicher, ob dies nur die ausgehende Latenz oder beides regelt:
tc qdisc add dev eth0 root netem delay 50ms
Gibt es Netzwerk-Gurus, die mir weiterhelfen können?
Bearbeiten:
Nach weiteren Recherchen bin ich auf halbem Weg zu meinem Ziel gekommen. Mit diesem Befehl verhält sich der ausgehende Verkehr so, wie ich es möchte:
tc qdisc add dev eth0 root tbf rate 4.0mbit latency 50ms burst 50kb mtu 10000
Trotzdem konnte ich den eingehenden Verkehr nicht richtig drosseln. Ich habe gelernt, dass ich einen "Ingress Policer-Filter" verwenden soll. Ich habe versucht, genau das mit dem folgenden Befehl zu tun. Ich habe mit verschiedenen Werten herumgespielt, aber kein Glück.
tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: protocol ip u32 match ip src 0.0.0.0/0 flowid :1 police rate 1.0mbit mtu 10000 burst 10k drop
Die Bandbreite wird jedoch vom Befehl beeinflusst. Die obigen Werte bewirken, dass die Geschwindigkeit bei 2 MB / s beginnt und im Verlauf der Übertragung langsam auf etwa 80-90 kB / s abfällt, die nach etwa 30 Sekunden Übertragung erreicht werden.
Irgendwelche Ideen, was ich falsch mache?
netem delay 50ms
begrenzt die Latenz nicht. Es erhöht die Latenz im50ms
Vergleich zu dem, was es sonst gewesen wäre.