Net::HTTP performance difference: FreeBSD vs. Ubuntu?

Strange ruby network performance drop examined on Ubuntu.

I made a simple HTTP testing code like below.

redirect_url = “http://www.talk-with-hani.com/feed
success_url = “http://www.daum.net
invalid_url = “http://www.daauumm.net
error_url = “http://errorurl1234.tistory.com

start_time = Time.now
downloaded = 0

5.times do

begin
uri = URI.parse(redirect_url)
r = Net::HTTP.get_response(uri)
c += r.body.size
rescue Exception => e
puts e.class
end

… iterate for success_url, invalid_url, error_url

end

puts “Total: #{downloaded/1000} KB, #{Time.now - start_time} seconds”

Result was… very strange.

                              time

MacBook about 20 sec
FreeBSD6.1 about 11 sec
Ubuntu about 73 sec (What’s wrong with it???)

(ruby1.8.6, same h/w spec of FreeBSD and Ubuntu)

I couldn’t find any configuration difference (dependent library, ruby
version… etc)

Why this strange performance drop occurs on Ubuntu?

Please help me to fix Ubuntu performance problem.

On Fri, May 04, 2007 at 02:26:13PM +0900, J. Wook wrote:

                              time

Why this strange performance drop occurs on Ubuntu?
To debug this, first run your loop separately for redirect_url only,
success_url only, invalid_url only, and error_url only. Maybe only one
of
these is suffering large delays. That will help narrow the problem.

My guess is it’s something to do with DNS resolution. Check your
/etc/resolv.conf is identical between all three machines.