developer tip

기본 Heroku 앱을로드하는 데 2 ​​초가 걸리는 이유는 무엇입니까?

copycodes 2020. 8. 25. 08:16
반응형

기본 Heroku 앱을로드하는 데 2 ​​초가 걸리는 이유는 무엇입니까?


서비스를 테스트하기 위해 매우 간단한 Heroku 앱 두 개를 만들었지 만 처음 방문했을 때 페이지를로드하는 데 몇 초가 걸리는 경우가 많습니다.

제가 한 것은 간단한 Sinatra 앱을 만들고 배포하는 것뿐이었습니다. 나는 Heroku 서버를 엉망으로 만들거나 테스트하기 위해 아무것도하지 않았습니다. 응답 시간을 개선하려면 어떻게해야합니까? 지금은 매우 느리고 어디서부터 시작해야할지 모르겠습니다. 프로젝트의 코드는 도움이된다면 github에 있습니다.


  • 애플리케이션이 한동안 사용되지 않으면 서버 메모리에서 언로드됩니다.
  • 첫 번째 히트에서로드되고 아무도 액세스하지 않고 시간이 지날 때까지로드 된 상태로 유지됩니다.

이것은 서버 자원을 절약하기 위해 수행됩니다. 아무도 당신의 앱을 사용하지 않는다면 왜 자원을 바쁘게 유지하고 정말로 필요한 사람이 그것을 사용하지 못하게해야합니까?
앱에 지속적인 트래픽이 많은 경우 언로드되지 않습니다.

이것에 대한 공식적인 메모 가 있습니다.


Varnish 및 Memcached가 포함 된 Heroku에 대한 캐싱 옵션을 조사 할 수도 있습니다. 이들은 다이노 스와는 독립적으로 지속됩니다.

예를 들어, 변경되지 않는 홈페이지가있는 경우 응답에 Cache-Control 헤더를 추가하여 Varnish에서 장기간 캐시 할 수 있습니다. 그러면 사용자가 도착했을 때가 아니라 "무언가"를 원할 때까지로드 히트를 경험하지 못할 것입니다.


"확장 성 : Heroku는 어떻게 작동합니까?"에 대한 Tom Robinson의 답변을 확인해야합니다. Quora에서 : http://www.quora.com/Scalability/How-does-Heroku-work

Heroku는 서버 리소스를 다양한 고객 / 애플리케이션으로 나눕니다. 앱에는 컴퓨팅 성능이 할당되어 있습니다. 리소스 수요에 따른 Heroku 파티션. 더 많은 전력을 요구하는 인기있는 애플리케이션이있는 경우 더 많은 'dyno'(애플리케이션 컨테이너)에 비용을 지불 한 다음 그 대가로 더 큰 파이를 얻을 수 있습니다.

그러나 귀하의 경우에는 외부인이 방문 / 사용하는 사람이 거의없는 무료 앱을 실행하고 있습니다. 따라서 Heroku는 주소에 대한 요청이있을 때까지 앱을 언로드 (기본적으로 최대 절전 모드로 전환)하여 얻는 리소스를 줄입니다. 이런 일이 발생하고 앱이 오랫동안 유휴 상태 인 경우 다시로드하는 데 시간이 걸립니다.

다시로드 시간이 중요한 경우 앱이 잠들지 않도록 1 개의 dyno를 추가합니다.


나는 같은 문제가 있습니다. 어제 밤에 Rails 3 (1.9.2) 앱을 배포했는데 느립니다. 1.9.2 / Rails 3이 Heroku의 베타 버전이라는 것을 알고 있지만 지원 티켓은 그들이 나에게 보낸 지침을 사용하면 괜찮을 것이라고 말했습니다.

오랜 시간이 지난 첫 번째 요청이 가장 오래 걸린다는 것을 알고 있습니다. 말이된다. 그러나 단순히 DB에 연결되지 않는 페이지를로드하는 데 10 초가 걸리는 경우가 있습니다.

어쨌든, 당신은 내가 할 일을 시도하고 싶을 것입니다. 그것은 내 앱을 프로파일 링하고 로컬로 걸리는 시간을 확인합니다. 400ms가 걸리면 뭔가 잘못된 것입니다. 그러나 로컬에서 50ms를 얻고 Heroku에서 여전히 10 초가 걸리면 뭔가 확실히 잘못된 것입니다.

분명히 캐싱은 도움이되지만 무료로 5MB 만 얻을 수 있으며 한 사람이 사이트를 사용하는 경우 다시 한 번 그렇게 느리지 않아야합니다.

참고 URL : https://stackoverflow.com/questions/2606190/why-are-my-basic-heroku-apps-taking-two-seconds-to-load

반응형