Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Nov 2010 21:46:58 -0700
From:      "Ricky  Charlet" <RCharlet@adaranet.com>
To:        "'freebsd-pf@freebsd.org'" <freebsd-pf@freebsd.org>, "'altq@csl.sony.co.jp'" <altq@csl.sony.co.jp>
Subject:   Questioning altq (cbq) performance above 4Mb on gif or above 40 Mb on e1000
Message-ID:  <32AB5C9615CC494997D9ABB1DB12783C024C6FC071@SJ-EXCH-1.adaranet.com>

next in thread | raw e-mail | index | archive | help
Howdy,

(FreeBsd 8.0REL plus a modified e1000 driver borrowing the 8.1 altq capabil=
ities, amd64, 8 core)

        I have been measuring altq performance on my system. I set a cbq ba=
ndwith limit for a queue, match traffic to the queue with an appropriate ru=
le and pump data.

        Without altq enabled, my traffic gen tool (nuttcp) can pump 800Mb a=
cross my gig links.

        With altq(cbq) setting bandwith limits (no borrow), up to about 40M=
b on em0 altq keeps up. But from 40Mb bandwith limit and up, altq seems to =
slow down my traffic much slower than the bandwidth limits.

        Same effect is observed on gif interfaces (where my real interest l=
ies) but much worse. With altq(cbq) setting bandwith limits (no borrow), up=
 to about 4Mb on gif0 altq keeps up. But from 4Mb bandwidth limit and up, a=
ltq seems to slow down my traffic much lower than the bandwidth limits.

        I have a large file of sample data in excel formant which I'd like =
to share. Is there an appropriate way to share it with this list?

        I know I'm not cpu bound (97% idle while nuttcp pushes 800Mb traffi=
c and altq configured with a bandwidth limit of 50Mb actually passes 30Mb.)

        I sort of suspect I'm mutex bound but have no idea how to test that=
.



 (1) this config allows about 4Mb tcp traffic to pass:
----------cut------------------
altq on em0 cbq bandwidth 100Mb queue { queue1, queue2 }
queue queue1  bandwidth 1Mb priority 7 cbq  (default)
queue queue2 bandwidth 50Mb priority 1 cbq
pass out quick on gif10 inet proto tcp no state queue queue2
pass out quick on gif10 proto icmp queue queue2
----------paste----------------

(2) this config allows about 40 Mb tcp traffic to pass
----------cut------------------
altq on em0 cbq bandwidth 100Mb queue { queue1, queue2 }
queue queue1  bandwidth 1Mb priority 7 cbq  (default)
queue queue2 bandwidth 50Mb priority 1 cbq
pass out quick on em0 inet proto tcp no state queue queue2
pass out quick on em0 proto icmp queue queue2
----------paste----------------

        Yes, I send appropriate traffic in each case to be 'caught' by the =
tcp pass out rule wether it be found on a gif or an em.


        My goal is to get 'expected' behavior (a bandwidth limit of 40 Mb a=
llows 40Mb to pass) at T3 link speed (45Mb). Is this a reasonable expectati=
on? Any ideas about config jigs or tests to run?



---
Ricky Charlet
Adara Networks
USA 408-433-4942





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?32AB5C9615CC494997D9ABB1DB12783C024C6FC071>