* Matthew Toseland <toad at amphibian.dyndns.org> [2008-02-08 23:34:52]:

> On Linux, during CPU intensive node activities - resuming requests, decoding 
> or encoding a large splitfile etc - the threads that do the core of Freenet's 
> work (the packet sender and packet receiver threads, request senders etc), 
> get starved of CPU by the CPU-intensive threads doing the FEC decoding (etc). 
> The result is the node is dramatically slowed down and stops accepting 
> requests because of this (we use the average round trip time for a message as 
> effectively a measure of system load). It takes a while to recover afterwards 
> because we use an averager to smooth it out.
> 
> In theory this shouldn't happen, because we set thread priorities: 
> MAX_PRIORITY for important stuff, MIN_PRIORITY for FEC decodes etc.
> 
> Unfortunately, while thread priorities are used on Windows, they are *not* 
> used on Linux. Linux only supports thread priorities for realtime threads. 
> Practically if you run two java threads on a single core system one with MAX 
> and one with MIN priority, both will get the same amount of cpu time on 
> average. We have tested this.
> 
> Further, the fairness features in the scheduler in 2.6.23 don't seem to help 
> matters very much.
> 

For the records a workaround has been implemented around r17909 (build
1112, -ext #19)

NextGen$
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: 
<https://emu.freenetproject.org/pipermail/devl/attachments/20080220/2d1e5335/attachment.pgp>

Reply via email to