복붙노트

[RUBY-ON-RAILS] 에 WEBrick 반응이 매우 느립니다. 어떻게 속도를하려면?

RUBY-ON-RAILS

에 WEBrick 반응이 매우 느립니다. 어떻게 속도를하려면?

나는 내 서버에서 실행하는거야하는 레일 응용 프로그램이 있습니다. 나는 원격 데스크톱으로 이동하여 응용 프로그램을로드 할 때, 서버는 간단한 HTML 페이지와 좋은에게 응답 3-4 분 정도 걸립니다. 그러나, 난 그냥 초에, 서버에 로컬 페이지 쇼 페이지를로드합니다. 내 원격 데스크톱에서 서버를 ping을 시도하고 핑은 적절한 시간에 성공을 통해 갈 수 있습니다.

이 모두는 내가 오라클의 기본 클라이언트와 SQLPLUS를 설치 한 후에 시작 것 같습니다. 나는 오라클을 의심해야 하는가? 사람이에 아무것도 비슷한 경험 했습니까?

해결법

  1. ==============================

    1.여기에 같은 문제를 갖는 (심지어 년 후). 리눅스에서 다음을 수행해야합니다 :

    여기에 같은 문제를 갖는 (심지어 년 후). 리눅스에서 다음을 수행해야합니다 :

    파일 /usr/lib/ruby/1.9.1/webrick/config.rb 및 편집 그것을 찾으십시오.

    줄 바꾸기

    :DoNotReverseLookup => nil,
    

    :DoNotReverseLookup => true,
    

    다시 시작에 WEBrick 그것은 마법처럼 작동합니다 :)

  2. ==============================

    2.동일한 문제가 있었다. 나를 위해,이 게시물은 해결책을 개최했다. 당신은 우분투, 정지 (또는 제거)를를 Avahi - 데몬에있는 경우. 서비스를 Avahi - 데몬 정지는 데몬을 중지합니다.

    동일한 문제가 있었다. 나를 위해,이 게시물은 해결책을 개최했다. 당신은 우분투, 정지 (또는 제거)를를 Avahi - 데몬에있는 경우. 서비스를 Avahi - 데몬 정지는 데몬을 중지합니다.

    에 WEBrick은 지금 매우 빠른 느낌.

    문제는 레일 등대에 오래보고있다, 그러나, 루비 레일에 그 이후 GitHub에 그들의 티켓을 옮겼습니다; 종류 불행한의이 오래된 문제가 계속 지속되는 것이다.

    당신이 실제로 뭔가를 Avahi - 데몬을 사용하는 경우, 네트워크에 프린터와 스캐너를 찾는 것처럼, 즉 더 이상 작동하지 않습니다, 알고 생각합니다.

  3. ==============================

    3.그냥 같은 문제가 있었다. 그만큼

    그냥 같은 문제가 있었다. 그만큼

    ...
    :DoNotReverseLookup => true,
    ...
    

    너무 나를 위해 트릭을했다. 그냥 RVM에서 루비를 실행 개봉 된 경우, 여기에 갈 수있는 경로는 다음과 같습니다

    ~/.rvm/rubies/ruby-<version>/lib/ruby/<version>/webrick/config.rb
    
  4. ==============================

    4."씬은"로컬 모두를 실행하고 Heroku가에 큰 옵션은 지금 :

    "씬은"로컬 모두를 실행하고 Heroku가에 큰 옵션은 지금 :

    웹 사이트 : http://code.macournoyer.com/thin/

    당신은 당신의 Gemfile에 넣어 로컬로 사용할 수 있습니다 :

    gem "thin"
    

    ... 그리고 번들 실행하고 얇은 시작 또는 레일의 사용하여 서버를 시작합니다.

    Heroku가에 대한 업데이트

    얇은 지금 Heroku가에 대한 나쁜 선택으로 간주됩니다. 자세한 내용은 여기 :

    https://blog.heroku.com/archives/2013/4/3/routing_and_web_performance_on_heroku_a_faq

    그들의 추천 :

  5. ==============================

    5.나는 VPN을 통해에 WEBrick 서버에 액세스 할 때 자신을 각성 막연하게 비슷한 문제가 있었다. 요청은 아무것도 와이어에서 일어나는없는 함께, 그것의 가장 시간이 오래 걸릴 것입니다. 잡종이나 얇은 보석도 Windows에서 Ruby1.9로 근무하고 나 자신이 소스에서 물건을 컴파일에 혼란 얻고 있었다 방법이 없었기 때문에, 나는에 WEBrick을 고수 할 필요가 있었다.

    나는 VPN을 통해에 WEBrick 서버에 액세스 할 때 자신을 각성 막연하게 비슷한 문제가 있었다. 요청은 아무것도 와이어에서 일어나는없는 함께, 그것의 가장 시간이 오래 걸릴 것입니다. 잡종이나 얇은 보석도 Windows에서 Ruby1.9로 근무하고 나 자신이 소스에서 물건을 컴파일에 혼란 얻고 있었다 방법이 없었기 때문에, 나는에 WEBrick을 고수 할 필요가 있었다.

    수정이 true로 DoNotReverseLookup 매개 변수 설정을 설정되었으며,에 WEBrick 서버를 만들 때 :

    server = HTTPServer.new {:DoNotReverseLookup => true, ...}
    
  6. ==============================

    6.당신은 아파치를 사용하거나 씬을 설치할 수 있습니다. 당신의 Gemfile에 : 보석 '얇은'

    당신은 아파치를 사용하거나 씬을 설치할 수 있습니다. 당신의 Gemfile에 : 보석 '얇은'

    또한 당신은 레일 웹 서버 목록을 확인할 수 있습니다.

  7. ==============================

    7.1.8.7에에 WEBrick이 작업을 수행하려고 노력했고 변화에 대한 설정을 찾을 수 없습니다. 그러나, 당신이 할 수있는 치트 사용은 조회 역하려고하는 IP 주소에 WEBrick 실행하는 서버의 호스트 파일에 추가하는 것입니다 ..

    1.8.7에에 WEBrick이 작업을 수행하려고 노력했고 변화에 대한 설정을 찾을 수 없습니다. 그러나, 당신이 할 수있는 치트 사용은 조회 역하려고하는 IP 주소에 WEBrick 실행하는 서버의 호스트 파일에 추가하는 것입니다 ..

  8. ==============================

    8.나는시나 10 초 지연이 자주 경험했다. 이 조각은 나를 위해 그것을 해결했다.

    나는시나 10 초 지연이 자주 경험했다. 이 조각은 나를 위해 그것을 해결했다.

    당신의 app.rb 파일의 상단이 추가

    class Rack::Handler::WEBrick
        class << self
            alias_method :run_original, :run
        end
        def self.run(app, options={})
            options[:DoNotReverseLookup] = true
            run_original(app, options)
        end
    end
    

    참조 소스

  9. ==============================

    9.로컬 개발 가상 머신에 DoNotReverseLookup 문제 및 추가 정보를 추가하고 싶었 : 이것은 나를 해결 도움이 오래된 질문과 답변 스레드입니다. 이 웹 페이지는 일부 나타나는이 문제로 이어질 루비 코어의 회귀 오류를 설명; 강조 광산이다; 이 모든의 롱 쇼트가 이것에 루비 코어 수정을위한 GitHub의 풀 요청이고 희망이 승인 루비의 곧 틱 릴리스에 통합 될 것입니다 :

    로컬 개발 가상 머신에 DoNotReverseLookup 문제 및 추가 정보를 추가하고 싶었 : 이것은 나를 해결 도움이 오래된 질문과 답변 스레드입니다. 이 웹 페이지는 일부 나타나는이 문제로 이어질 루비 코어의 회귀 오류를 설명; 강조 광산이다; 이 모든의 롱 쇼트가 이것에 루비 코어 수정을위한 GitHub의 풀 요청이고 희망이 승인 루비의 곧 틱 릴리스에 통합 될 것입니다 :

    에 WEBrick의에서 수정 회귀 버그 : DoNotReverseLookup 설정 옵션을 구현 # 731이 발견 관련 저자에서 GitHub의 풀 요청은 루비에 WEBrick 소스 코드에서 문제를 복구하는 방법을 제안하고있다

    요청에 명시된 용액이 LIB로부터 /에 WEBrick / server.rb]로 변화 선 (181)이다 :

    sock.do_not_reverse_lookup = config[:DoNotReverseLookup]
    

    이에:

    unless config[:DoNotReverseLookup].nil?
    

    이 잘 간주 질문 / 대답 스레드를 통해 사람의 실수를 한단다 경우 여기를 공유 및 루비 코어에서이 문제를 해결 진행 상황에 관심이 있습니다. 희망이 풀은 병합됩니다 또는 기본 문제 BE 루비의 다음 릴리스에서 어떤 식 으로든 처리; 어쩌면 2.1.6?

  10. ==============================

    10.이것은 매우 늦게 대답하지만 난 레일 방랑에서 실행이 매우 문제를 디버깅 오늘의 좋은 부분을 보냈다. 실제로 전혀 요청 시간을 개선하지 않았다 조회 역방향 DNS를 변경. 두 가지의 조합은 ~에서 20초 ~ 개발 모드 3 초 페이지로드를했다 :

    이것은 매우 늦게 대답하지만 난 레일 방랑에서 실행이 매우 문제를 디버깅 오늘의 좋은 부분을 보냈다. 실제로 전혀 요청 시간을 개선하지 않았다 조회 역방향 DNS를 변경. 두 가지의 조합은 ~에서 20초 ~ 개발 모드 3 초 페이지로드를했다 :

    잡종과에 WEBrick를 교체합니다. 나는 시험판 버전을 사용했다거나 설치하지 않을 :

    sudo gem install mongrel --pre
    

    그런 다음 dev에 내 Gemfile에 추가 :

    group :test, :development do
      gem 'mongrel'
    end
    

    다음과 같이 내 서버 시작 :

    rails server mongrel -e development
    

    즉, 컷 오프 몇 초, 5 ~ 6 초,하지만 그것은 정말 느린 아직도이었다. : 잘 Gemfile에 관한이 추가 -이 케이크 위에 장식했다

    group :development do
      gem 'rails-dev-boost', :git => 'git://github.com/thedarkone/rails-dev-boost.git'
    end
    
  11. ==============================

    11.루비에 1.8.x에 WEBrick에는 DoNotReverseLookup 옵션은 없습니다. 이 솔루션은 배치하는 것입니다 :

    루비에 1.8.x에 WEBrick에는 DoNotReverseLookup 옵션은 없습니다. 이 솔루션은 배치하는 것입니다 :

    Socket.do_not_reverse_lookup = true
    

    스크립트의 시작 부분에 어딘가에.

    출처 :에 WEBrick과 Socket.do_not_reverse_lookup : 두 사도 행전의 이야기

  12. ==============================

    12.내 아마 드문 상황에서, 내가 내 iptables에 플러시 후 나는 사용자 정의 규칙 (단지 기본 우분투는 모두 허용)을 가지고 있지 않았기 때문에,이 부작용이 없었했다 :

    내 아마 드문 상황에서, 내가 내 iptables에 플러시 후 나는 사용자 정의 규칙 (단지 기본 우분투는 모두 허용)을 가지고 있지 않았기 때문에,이 부작용이 없었했다 :

    sudo iptables -F
    
  13. from https://stackoverflow.com/questions/1156759/webrick-is-very-slow-to-respond-how-to-speed-it-up by cc-by-sa and MIT license