Multithreaded Telnet sessions
peufeu at free.fr
Wed Jun 30 17:42:24 CEST 2004
> I can't get over how much faster it is to push a change to 800+
> routers using 20+ threads!
yes ? and the more ping time you have, the more you can gain by thread
> Anything over 20 threads seems to take processor utilization to 100%.
> Is there any benefit to starting additional threads once the CPU is at
> 100% ?
Probably not. With few threads your app is network-lag-limited. With too
many threads it becomes cpu-limited and might even get slower. I have
noticed that multithreading network code in Python gives up at a rather
low number of threads, in the 20-50 as you noticed, which worries me
because the OS can do a lot better than that. Perhaps is this simply that
python with 1/20 of your CPU is too slow ? If you want to have 100 threads
you'll have to spend a few days coding it in (argh) C++ or (argh) Java.
Or if your brain doesn't explode, you can code it using asynchronous
select and the asynchat module...
Or just be happy that it's 20 times faster than before...
More information about the Python-list