> - for 1 hour all went fine again; then the cycle repeats
> 
> This pattern can only indicate (in my view) the garbage collector, which 
> Ruby seems to run for 10 seconds several times in the same minute or so.

You can test your hypothesis by running it against jruby with a 
"constant time" GC.
If you're using 1.9 you could also test your hypothesis by using the 
GC::Profiler 
http://en.wikibooks.org/wiki/Ruby_Programming/Reference/Objects/IO/GC/Profiler

Also the "exact" 5 second delays makes me wonder if it isn't a DNS 
lookup.

Try your code with
BasicSocket.do_not_reverse_lookup=true

-r
-- 
Posted via http://www.ruby-forum.com/.