[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

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

J. Wook

5/4/2007 5:26:00 AM

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/...
success_url = "http://www.daum...
invalid_url = "http://www.daauumm...
error_url = "http://errorurl1234.tistory...

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.

--
Posted via http://www.ruby-....

1 Answer

Brian Candler

5/4/2007 7:46:00 AM

0

On Fri, May 04, 2007 at 02:26:13PM +0900, J. Wook wrote:
> ... 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?

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.