2015년 3월 2일 월요일

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급 속도로 응답한다.

댓글 없음:

FIX :: ssh 접속이 느리고, /var/log/messages에 systemd-logind.service failed. 메시지가 남을 때

ssh 접속이 느릴 때가 있습니다. 보통은DNS가 제대로 설정되지 않았는데 /etc/ssh/sshd_config에 UseDNS가 yes로 되어 있을 때 발생합니다. 위와 같을 경우 /etc/ssh/sshd_config파일에서 아래와 같이 수정 후 ...