복붙노트

[PYTHON] 헤 루쿠 산발적 인 높은 응답 시간

PYTHON

헤 루쿠 산발적 인 높은 응답 시간

이는 매우 구체적이지만 간단히하려고 노력할 것입니다.

우리는 Heroku에서 Django 앱을 실행하고 있습니다. 세 개의 서버 :

우리는 geuns와 Gunicorn을 사용하고 각 dyno에는 4 명의 작업자를 사용합니다.

우리는 산발적 인 높은 서비스 시간을 경험하고 있습니다. 다음은 Logentries의 예제입니다.

High Response Time:
heroku router - - at=info 
method=GET 
path="/accounts/login/" 
dyno=web.1 
connect=1ms 
service=6880ms 
status=200 
bytes=3562

나는 지금 수 주 동안 이것을 인터넷 검색 해왔다. 우리는 의지대로 재현 할 수 없지만 하루에 0 번에서 5 번까지 이러한 경고를 경험합니다. 주목할 점 :

내가 그것을 좁히는 것 :

우리는 지난 몇 개월 동안이 문제를 겪어 왔지만, 이제는 규모를 조정하고 있어야합니다. 거의 모든 SO 또는 Google 링크를 다 써 버렸기 때문에 어떤 아이디어라도 높이 평가할 수 있습니다.

해결법

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

    1.저는 지난 6 개월 동안 Heroku 지원 팀과 연락했습니다. 시행 착오를 거쳐 오랜 기간 동안 좁혀 왔지만 문제를 확인했습니다.

    저는 지난 6 개월 동안 Heroku 지원 팀과 연락했습니다. 시행 착오를 거쳐 오랜 기간 동안 좁혀 왔지만 문제를 확인했습니다.

    결국 갑자기 메모리 스왑에 응답 한 이러한 높은 응답 시간을 알게되었고 표준 Dyno (유휴 상태가 아닌)에 대해 지불하고 있었지만 최근에 내 앱이 트래픽을받지 못했을 때 이러한 메모리 스왑이 발생했습니다. 메모리가 고원 상태에 빠지기 때문에 이것이 메모리 누수가 아니라는 통계 차트를 보면 분명합니다. 예 :

    지원 팀과 많은 토론을 마친 후에 다음과 같은 설명을 들었습니다.

    나는 아키텍처 자체와 관련이 있고 언어 / 프레임 워크 / 구성 파일의 어떤 조합과도 관련이 없으므로 이것이 다른 사람들이 겪고있는 문제라고 확신합니다.

    다른 좋은 솔루션이 아닌 것 같습니다. A) 힘들어하고 기다려라. B) 전용 인스턴스 중 하나로 전환

    "이것이 AWS를 사용해야하는 이유입니다."라고 말하는 군중에 대해 알고 있습니다. 그러나 Heroku가 때로는 높은 응답 시간보다 중요한 이점을 발견하고 그 가격은 오랫동안 개선되었습니다. 같은 문제로 어려움을 겪고 있다면 "최상의 해결책"이 선택 될 것입니다. 더 많은 것을 듣고이 대답을 업데이트 할 것입니다.

    행운을 빕니다!

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

    2.이것이 전혀 도움이 될지 확신 할 수는 없지만, 지금 당장 Heroku에서 레일스 애플리케이션으로 똑같은 일을 겪게 될 것입니다 - 겉으로보기에는 비 결정적으로 산발적으로 높은 요청 시간. 예를 들어, HEAD New Relic 가동 시간은 일반적으로 5 초가 걸리던 2-5ms를 걸리거나 내 사이트 로그인을 렌더링하는 사이트 색인으로 핑합니다 (일반적으로 1 초 미만은 12 초). 또한 때때로 무작위 30 초 제한 시간을 얻습니다. Heroku의 지원이 내 경우에 (적어도 일부 인스턴스의 경우) 무엇을 말해야하는지는 다음과 같습니다.

    이것이 전혀 도움이 될지 확신 할 수는 없지만, 지금 당장 Heroku에서 레일스 애플리케이션으로 똑같은 일을 겪게 될 것입니다 - 겉으로보기에는 비 결정적으로 산발적으로 높은 요청 시간. 예를 들어, HEAD New Relic 가동 시간은 일반적으로 5 초가 걸리던 2-5ms를 걸리거나 내 사이트 로그인을 렌더링하는 사이트 색인으로 핑합니다 (일반적으로 1 초 미만은 12 초). 또한 때때로 무작위 30 초 제한 시간을 얻습니다. Heroku의 지원이 내 경우에 (적어도 일부 인스턴스의 경우) 무엇을 말해야하는지는 다음과 같습니다.

    나는 이것이 Heroku의 표준 dyno 재시작 중 하나 였고, 광산 또는 기타의 배치가 아니라는 것을 알아야한다. 사전 부팅 페이지의주의 사항에도 불구하고 몇 분 전에 사용하도록 설정했기 때문에 내 경우에 차이가 있는지 확인할 것입니다. 희망이 도움이 될 수도, 나는이 머리카락을 끌어 당겨 너무!

  3. from https://stackoverflow.com/questions/29088113/heroku-sporadic-high-response-time by cc-by-sa and MIT license