[Click] Traffic Shaping in Click

Latency Buster latencybuster at gmail.com
Tue Feb 10 09:39:42 EST 2009


Hi Beyers,
>
> 1) You are using a huge capacity argument on the Queue elements. I'm
> surprised it actually loaded as Queue requests 'sizeof(Packet *) * (CAPACITY
> + 1)' memory on initialization. This large amount also results in click
> calling vmalloc instead of kmalloc. I suggest to intially start your test
> off with a more reasonable capacity, maybe use the default and work from
> there.

That was indeed insane.... I allocated a queue based on
(BW*Delay*2)/sqrt(flows) and it seems to absorb most of the drops.
Oddly I see more drops with the multithreaded version.. Need more data
for understanding the phenomenon.

> 2) Where are packets being dropped -  at the rx/tx NIC level, Queue or
> ToDevice levels?
>
During long periods of bursts, I saw some packet drops at the tx level
of the NIC? Is this an artifact of polling? I also saw some ToDevice
drops with the single threaded version (might be due to scheduling
delay).. But in most cases the majority of the drops were due to queue
overflow.. Now, if I throw in say X GB RAM, shouldn't click allocate
memory via kmalloc() instead of vmalloc if #memory required <
(available phy memory - some constant)? The reason I am asking is that
I may add memory as a function of queue size to absorb longer periods
of bursts..


> 3) I recommend using the IGNORE argument of AverageCounter or reset handler
> to ensure accurate measurements on AverageCounter. What is the byte_rate
> value of ctr0/1 during the test?
I was not sure if the AverageCounter values were accurate.. For 70Mbps
of input traffic, it gave a rate of 20Mbps.. I think I recorded this
by reinstalling the click kernel module (all variables start at zero)
but did not use the IGNORE argument.


> 4) To rule out any misbehaving multithreading components, run the test using
> single threaded click. Also test it in only one direction.
>
PollDevice is maxing out at 250Mbps at 128 bytes packet with no
processing except for PollDevice (eth0) -> PollDevice (eth1) and
viceversa.. Is that the limit? I am using a pretty decent box. 2xdual
core Opteron processors (2.6Ghz) with 8GB Ram.


More information about the click mailing list