* Matthew Toseland <[EMAIL PROTECTED]> [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$
signature.asc
Description: Digital signature
_______________________________________________ Devl mailing list [email protected] http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
