Omezení rychlosti při dlouhém stahování

Jan Houstek houstek na utf.mff.cuni.cz
Neděle Květen 23 00:43:23 CEST 2004


On Sat, 22 May 2004, P.L. wrote:

> Nedokázal by mě někdo nasměrovat jak udělat, aby se například po 5
> minutách souvislého stahování z jedné adresy omezila rychlost? Chtěl
> bych, aby se soubory stahovaly maximální rychlostí, ale pokud stahování
> zabírá pásmo delší dobu, tak aby se rychlost automaticky omezila.

Kdysi jsem o tom premyslel. Zda se, ze nijak zvlast elegantne to na urovni
kernelu nelze existujicimi prostredky zajistit.

Reseni by byla mozna asi tato:

- Dopsat do iptables moznost matchovat podle doby/objemu dat prenesenych
  v konkretnim spojeni. Bylo by nutne trochu rozsirit conntrack tabulku za
  ucelem ulozeni techto informaci, ale nemuselo by to byt nijak zvlast
  obtizne.

- Periodicky sledovat /proc/net/ip_conntrack a pro dele trvajici spojeni
  pridat pravidlo, ktere je zashapuje (a cas od casu tato pravidla opet
  cistit).

Druha moznost nevypada prilis elegantne, ale uz jsem ji vyzkousel na
intenzivne pouzivanem routeru s 2.5 Mbit uplinkem. Ukazuje se, ze
nejnarocnejsi je cteni ip_conntrack tabulky, takze se to nesmi delat
prilis casto (jako periodu jsem volil 1 minutu). Samotne dynamicke
pridavani a odebirani iptables pravidel bylo rozumne rychle i pri vetsim
poctu.

Prvni moznost je na mem az_nebude_nic_lepsiho_na_praci_TODO listu.

-- Honza Houstek


Další informace o konferenci Linux