Mi rendo conto che molte domande simili sono già state poste, ma finora non ho ancora trovato una soluzione al mio problema.
Ho un server Linux virtuale (con Debian Squeeze) che utilizzo per testare la velocità del sito Web al fine di misurare l'aumento e la riduzione del tempo di caricamento di tali siti Web. Sto tentando di limitare la larghezza di banda e la latenza di questo server per poter avvicinarmi ai tempi di caricamento del mondo reale sui siti Web, ma finora non sono riusciti.
Quello che voglio specificamente è il seguente:
- Per impostare una latenza in entrata e in uscita di 50 ms.
- Per impostare un limite di larghezza di banda in entrata di 512 kbps.
- Per impostare un limite di larghezza di banda in uscita di 4096 kbps.
Ho letto su netem e ho usato il tc
comando, ma è ancora un po 'sopra la mia testa. Sono riuscito a mettere insieme questo comando per controllare la latenza che sembra funzionare, ma non sono nemmeno sicuro che gestisca solo la latenza in uscita o entrambi:
tc qdisc add dev eth0 root netem delay 50ms
Qualche guru della rete che mi può aiutare?
Modificare:
Dopo ulteriori ricerche sono arrivato a metà del mio obiettivo, usando questo comando tutto il traffico in uscita si comporta come voglio:
tc qdisc add dev eth0 root tbf rate 4.0mbit latency 50ms burst 50kb mtu 10000
Tuttavia, non sono ancora riuscito a limitare correttamente il traffico in entrata. Ho imparato che dovrei usare un "filtro Ingress Policer". Ho provato a farlo proprio con il comando qui sotto, giocando con valori diversi, ma senza fortuna.
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
Tuttavia, la larghezza di banda è influenzata dal comando, i valori sopra riportati fanno iniziare la velocità a 2 MB / se, man mano che il trasferimento procede, scendendo lentamente a circa 80-90 kB / s che raggiunge dopo circa 30 secondi di trasferimento.
Qualche idea su cosa sto facendo di sbagliato?
netem delay 50ms
non limita la latenza. Aumenta la latenza50ms
rispetto a ciò che altrimenti sarebbe stato.