dummynet dropping too many packets

Julian Elischer julian at elischer.org
Mon Oct 5 17:25:54 UTC 2009


rihad wrote:
> Luigi Rizzo wrote:
>> On Mon, Oct 05, 2009 at 04:29:02PM +0500, rihad wrote:
>>> Luigi Rizzo wrote:
>> ...
>>>> you keep omitting the important info i.e. whether individual
>>>> pipes have drops, significant queue lenghts and so on.
>>>>
>>> Sorry. Almost everyone has 0 in the last Drp column, but some have 
>>> above zero. I'm not just sure how this can be helpful to anyone.
>>
>> because you were complaining about 'dummynet causing drops and
>> waste of bandwidth'.
>> Now, drops could be due to either
>> 1) some saturation in the dummynet machine (memory shortage, cpu
>>    shortage, etc.) which cause unwanted drops;
>>
> I too think the box is hitting some other global limit and dropping 
> packets. If not, then how come that between 4a.m. and 10a.m. when the 
> traffic load is at 250-330 mbit/s there isn't a single drop?
> 
>> 2) intentional drops introduced by dummynet because a flow exceeds
>>    its queue size. These drops are those shown in the 'Drop'
>>    column in 'ipfw pipe show' (they are cumulative, so you
>>    should do an 'ipfw pipe delete; ipfw pipe 5120 config ...'
>>    whenever you want to re-run the stats, or compute the
>>    differences between subsequent reads, to figure out what
>>    happens.
>>
>> If all drops you are seeing are of type 2, then there is nothing
>> you can do to remove them: you set a bandwidth limit, the
>> client is sending faster than it should, perhaps with UDP
>> so even RED/GRED won't help you, and you see the drops
>> once the queue starts to fill up.
>> Examples below: the entries in bucket 4 and 44
>>
> Then I guess I'm left with increasing slots and see how it goes. 
> Currently it's set to 10000 for each pipe. Thanks for yours and Eugene's 
> efforts, I appreciate it.
> 
>> If you are seeing drops that are not listed in 'pipe show'
>> then yun need to investigate where the packets are lost,
>> again it could be on the output queue of the interface
>> (due to the burstiness introduced by dummynet), or shortage
>> of mbufs (but this did not seem to be the case from your
>> previous stats) or something else.
>>
> This indeed is not a problem, proved by the fact that, like I said, 
> short-circuiting "ipfw allow ip from any to any" before dummynet pipe 
> rules instantly eliminates all drops, and bce0 and bce1 load evens out 
> (bce0 used for input, and bce1 for output).

no it could be a problem because dummy net releases all the packets 
for a slot that are going ot be let for a tick out at once, instead of 
having them arrive spread out through the tick.  also it does one pipe 
at a time which means that related packets arrive at once followed by
packets from other sessions..   this may produce differences in some 
cases.

> 
>> It's  all up to you to run measurements, possibly
>> without omitting potentially significant data
>> (e.g. sysctl -a net.inet.ip)
>> or making assumptions (e.g. you have configured
>> 5000 slots per queue, but with only 50k mbufs in total
>> there is no chance to guarantee 5000 slots to each
>> queue -- all you will achieve is give a lot of slots
>> to the greedy nodes, and very little to the other ones)
>>
> Well, I've been monitoring this stuff. It has never reached above 20000 
> mbufs (111111 is the current limit).
> 
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"



More information about the freebsd-net mailing list