Fix:Sinatra 응답속도가 매우 느린 문제

ruby로 뭔가 해보려고 sinatra를 사용해봤다. 예제를 돌리는데 응답하는데까지 대략 10초 이상이 걸린다. ㅡ,.ㅡ;;;

아래 검색결과로 해결되었다.

DNS lookup은 가끔 어플리케이션이 느린것 처럼 보이게 한다. 예를 들어 DNS설정이 제대로 되어있지 않은 서버 또는 private network에서 sendmail은 부팅 시간을 오래 걸리게 하고, ssh는 응답속도가 매우 느린데 이유는 DNS lookup을 하는데 timeout이 걸릴때까지 시간이 걸리기 때문이다. sinatra도 마찬가지.

sinatra가 사용하는 webrick의 config.rb 파일을 찾아 수정해 줘야 한다.

>find RUBY_INSTALLED_DIR/ -name config.rb
/opt/rubies/ruby-1.9.3-p551/lib/ruby/gems/1.9.1/gems/rack-1.6.0/lib/rack/config.rb
/opt/rubies/ruby-1.9.3-p551/lib/ruby/1.9.1/openssl/config.rb
/opt/rubies/ruby-1.9.3-p551/lib/ruby/1.9.1/xmlrpc/config.rb
/opt/rubies/ruby-1.9.3-p551/lib/ruby/1.9.1/webrick/config.rb

ruby-install을 이용해서 1.9.3버전을 설치하면 위와 같이 나온다. RUBY_INSTALLED_DIR에 ruby가 설치된 디렉토리를 넣어준다. 모르겠으면 그냥 '/'.. :)
위에서는 /opt/rubies/ruby-1.9.3-p551/lib/ruby/1.9.1/webrick/config.rb 파일을 열어서 아래와 같이 고친다.

:DoNotReverseLookup => nil,

위 라인을

:DoNotReverseLookup => true,

로 변경

다시 실행하면 LTE급 속도로 응답한다.

댓글

이 블로그의 인기 게시물

mysql DATETIME형의 기본값으로 현재시간 설정

FIX::장치가 더 이상 응답하지않거나 연결이 끊어졌습니다.

FIX :: LACP bonding 구성시 트래픽이 한쪽 포트로 몰리는 현상