Tom Lynn wrote:
> Darrick,
> I completely understand.  But over half of my download bandwidth
> evaporated by following the directions.  I'd say I'm experiencing
> abnormal results, so I'm wondering if anybody has some advice on using
> this feature.
> 

Tom,

        What hardware are you using?

        Either way, here is the story on Linux traffic shaping...

        To properly keep track of and schedule packets, you need to have a 
timing source.  The Linux kernel gives you three options (at compile 
time) of which to use:

- gettimeofday()
- timer interrupt
- TSC cycle counter

        gettimeofday() is pretty bad.

        Timer interrupt is good except that it doesn't have high enough 
resolution so it becomes useless and wildly unpredictable at "high" 
speeds, which I have found to be even a few megabits.

        The TSC cycle counter is best.  It is only available on Pentium/586 
CPUs (another reason AstLinux requires at least a 586), is well 
synchronized, and has high enough resolution to do traffic shaping into 
the tens of megabits.

        However...  Some CPUs turn off the TSC to save power.  The SC1100 used 
in the Soekris/WRAP boards is one of these.

        People (Ingmar, among others) have noticed that when Linux is using the 
TSC to keep system time, for instance, NTP has trouble keeping the 
system synced and in some cases either crashes or gives up trying to 
because the system clock is all over the place.

        The 2.6.18 kernel introduced GTS (generic timekeeping system), which 
allowed the kernel to test a series of clocks to find out which was the 
most stable on a given system.  Luckily, the sc1100 also has a 27.xxx 
MHZ high resolution timer (scx200_hrt, I believe), that newer kernels 
(2.6.19+) can use instead of the tsc for system time.

        Back to traffic shaping...  So, a couple of problems:

- there is nothing like GTS for traffic shaping - the kernel has no way 
of knowing which timing sources are accurate, and it will use whatever 
it was told to use at compile time.  So, if the kernel is compiled to 
use TSC and you are running on a Soekris, you will get strange results 
because the SC1100 will go into standby and throw off your traffic shaping.

- timer interrupt/gettimeofday() aren't really practical for low powered 
embedded systems that need to do traffic shaping on "modern" internet 
connections

        However, there is a work-around for the sc1100 boards - if you pass 
"idle=poll" on the kernel command line AND you are using the TSC, you 
should have pretty good traffic shaping results with those boards.  The 
only problem is it will use more power and generate more heat.  In my 
very preliminary tests, it ran the CPU ~7 degrees (F) hotter than normal 
after about 24 hours of operation.  YMMV.

        As far as traffic shaping goes in general...  Yes, to do effective 
traffic shaping with VoIP services on "standard" internet connections, 
you really should limit the overall transfer capacity to about %90 of 
what is capable on the link.

        Just like Darren described, if you don't artificially limit the speed 
of the link your ISP will, and their send queues are not tuned like 
yours are...  So, if you run at %100, and they start queuing, they are 
going to use whatever algorithm that they have (probably a simple FIFO 
with a buffer) to schedule outgoing packets.  This isn't what you want! 
  Limiting the speed of the link prevents this queuing and will give you 
a better experience for VoIP (and any other service that uses large 
amounts of relatively small packets - gaming for instance).

        In summary, yes, using astshape will reduce the speed of your link by 
about %10.  However, the results that you are seeing could be a result 
of using the timer interrupt for QoS, or, a misbehaving TSC on your 
system.  The question again is: what hardware are you using?

--
Kristian Kielhofner
_______________________________________________
Astlinux-users mailing list
[email protected]
http://lists.kriscompanies.com/mailman/listinfo/astlinux-users

Donations to support AstLinux are graciously accepted via PayPal to [EMAIL 
PROTECTED]

Reply via email to