cold start? 서버호출하면 첫번째 응답이 무지 느립니다. --;

173 views
Skip to first unread message

Jake Seo

unread,
Feb 23, 2011, 10:29:22 AM2/23/11
to 구글 앱 엔진 개발자 토론 그룹

콜드 스타트 이슈는 없어진걸로 알고 있었는데,
JAVA 버전 GAE로 웹서비스를 만들어 보니, 좀 텀을 둬서 호출하면 그 호출만 느리고, 다시 호출하면
제대로 나오네요. --;
이거 계속 뜨겁게 달굴 묘책같은건 없는건가요??
클라이언트모듈에서 타임아웃처리를 한관계로... 한번 타임아웃나서야 제대로 응답이 온다는 --;

김석민

unread,
Feb 23, 2011, 6:55:41 PM2/23/11
to google-app-...@googlegroups.com
저도 그랬었는데, 답을 못 찾았었어요.

2011년 2월 24일 오전 12:29, Jake Seo <geek...@gmail.com>님의 말:

--
Google 그룹스 '구글 앱 엔진 개발자 토론 그룹' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 google-app-...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 google-app-engine...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/google-app-engine-korea?hl=ko에서 그룹을 방문하세요.


박정환

unread,
Feb 23, 2011, 8:39:43 PM2/23/11
to google-app-...@googlegroups.com
그게 콜드스타트가 없어진게 아니라
웜업셋팅해주는 게 생긴거에요.
http://code.google.com/intl/ko-KR/appengine/docs/java/config/appconfig.html
에 웜업을 참조하셔요.
2011년 2월 24일 오전 8:55, 김석민 <uki...@gmail.com>님의 말:

Jake Seo

unread,
Feb 24, 2011, 4:13:07 AM2/24/11
to 구글 앱 엔진 개발자 토론 그룹
이게 앱수정후 배포할때 웜업해주는걸 세팅해주는건가요??
아님 저처럼 배포한후 한참 리퀘스트가 없는 상태에서 다시 호출할때 바로 구동될수 있도록 해주는 옵션인지요??
읽어보니, <warmup-requests-enabled>true</warmup-requests-enabled> 를 넣어주면 되는
걸로 되어 있는데
디폴트가 true라고 합니다. 그렇다면 적용되어 있다는 것 같은데. 아닌가요??

Configuration을 해주고 아래것들중 하나를 선택해서 웝업 로직을 만들라는것 같은데 --;; 잘 이해가 안됩니다.

Using a <load-on-startup> Servlet
Using a ServletContextListener
Using a Custom Servlet

On 2월24일, 오전10시39분, 박정환 <ulger...@gmail.com> wrote:
> 그게 콜드스타트가 없어진게 아니라

> 웜업셋팅해주는 게 생긴거에요.http://code.google.com/intl/ko-KR/appengine/docs/java/config/appconfi...


> 에 웜업을 참조하셔요.
> 2011년 2월 24일 오전 8:55, 김석민 <uki...@gmail.com>님의 말:
>
>
>
>
>
>
>
> > 저도 그랬었는데, 답을 못 찾았었어요.
>

> > 2011년 2월 24일 오전 12:29, Jake Seo <geeks1...@gmail.com>님의 말:

Jake Seo

unread,
Feb 24, 2011, 4:31:14 AM2/24/11
to 구글 앱 엔진 개발자 토론 그룹
App Engine attempts to detect when your application needs a new
instance, and (assuming that warmup requests are enabled for your
application) initiates a warmup request to initialize the new
instance. However, these detection attempts do not work in every case.
As a result, you may encounter loading requests, even if warmup
requests are enabled in your app. For example, if your app is serving
no traffic, the first request to the app will always be a loading
request, not a warmup request. You can prevent loading requests in
most cases by using the Always On feature

이걸 보면 제 경우는 돈내서 Always On하지 않으면 안될거 같은데
그치 않은지요??

On 2월24일, 오전10시39분, 박정환 <ulger...@gmail.com> wrote:

> 그게 콜드스타트가 없어진게 아니라
> 웜업셋팅해주는 게 생긴거에요.http://code.google.com/intl/ko-KR/appengine/docs/java/config/appconfi...


> 에 웜업을 참조하셔요.
> 2011년 2월 24일 오전 8:55, 김석민 <uki...@gmail.com>님의 말:
>
>
>
>
>
>
>
> > 저도 그랬었는데, 답을 못 찾았었어요.
>

> > 2011년 2월 24일 오전 12:29, Jake Seo <geeks1...@gmail.com>님의 말:

Deokjune Yi

unread,
Feb 24, 2011, 4:54:04 AM2/24/11
to google-app-...@googlegroups.com
묘책은 아니고... 편법인데요. 
scheduled task 로 주기적으로 불러주면 어떨까요.

2011/2/24 Jake Seo <geek...@gmail.com>

Kyungwook Park

unread,
Feb 24, 2011, 9:50:04 AM2/24/11
to google-app-...@googlegroups.com
편법이긴한데 공공연하게 쓰이고 있죠.
저도 taskqueue로 일정 시간을 주기로 달구고(?) 있습니다.

전에 만들었던 채팅(http://ringo-chat.appspot.com)의 경우는 1초마다 돌리게 되어있죠.
API 사용량은 하루마다 리셋이 되고, 1초에 하나씩 돌아가도 하루 API량을 넘지 않습니다.


2011. 2. 24., 오후 6:54, Deokjune Yi 작성:

신승한

unread,
Feb 24, 2011, 6:44:36 PM2/24/11
to google-app-...@googlegroups.com

오호~ 이거 좋은방법이네요.

바로 써먹어야 겠습니다.

2011년 2월 24일 오후 11:50, Kyungwook Park <park...@gmail.com>님의 말:

Jake Seo

unread,
Feb 24, 2011, 7:26:10 PM2/24/11
to 구글 앱 엔진 개발자 토론 그룹
샘플코드좀 부탁드려도 될까요? , 어떻게 taskqueue를 써야 할지 --; 구글문서를 봐도 잘모르겠어요. 테스크만들고, 어
떤 url을 계속 찌르도록 테스크큐로 할수 있단 말씀이죠?

On 2월24일, 오후11시50분, Kyungwook Park <parks...@gmail.com> wrote:
> 편법이긴한데 공공연하게 쓰이고 있죠.
> 저도 taskqueue로 일정 시간을 주기로 달구고(?) 있습니다.
>

> 전에 만들었던 채팅(http://ringo-chat.appspot.com)의경우는 1초마다 돌리게 되어있죠.


> API 사용량은 하루마다 리셋이 되고, 1초에 하나씩 돌아가도 하루 API량을 넘지 않습니다.
>
> 2011. 2. 24., 오후 6:54, Deokjune Yi 작성:
>
>
>
>
>
>
>
> > 묘책은 아니고... 편법인데요.
> > scheduled task 로 주기적으로 불러주면 어떨까요.
>

> > 2011/2/24 Jake Seo <geeks1...@gmail.com>

Deokjune Yi

unread,
Feb 24, 2011, 8:19:09 PM2/24/11
to google-app-...@googlegroups.com
공짜로 하려면... 여전히 이게 맞는건지 자신 없지만, cold start는 없애 줄 것이라고 생각합니다. 

태스크큐도 방법이지만 scheduled task(cron job)도 괜찮을 것 같습니다. (쿼터에 여유에 따라...)
인스턴스가 언제 사라지는지 모르지만 호출 주기는 최소 단위인 every 1 minute 도 충분할 것 같구요.
cron으로 호출할 url은 쿼터 많이 안잡아먹도록 하나 만들어주면 되지 않을까요.
JAVA의 경우 cron.xml 만 작성해서 올려주면 됩니다.

http://code.google.com/intl/ko/appengine/docs/java/config/cron.html



2011/2/25 Jake Seo <geek...@gmail.com>

Jake Seo

unread,
Feb 24, 2011, 11:44:31 PM2/24/11
to 구글 앱 엔진 개발자 토론 그룹
급하게 언발에 오줌누기식으로 네트웍물려있는 피씨에서
html하나 만들고 그 html안에서 url 1초당 리프레쉬하도록 해서 브라우저로 열어두고 있습니다. ^^(임시처방)

cron.xml도 좋은 방법일듯하네요.

On 2월25일, 오전10시19분, Deokjune Yi <goch...@gmail.com> wrote:
> 공짜로 하려면... 여전히 이게 맞는건지 자신 없지만, cold start는 없애 줄 것이라고 생각합니다.
>
> 태스크큐도 방법이지만 scheduled task(cron job)도 괜찮을 것 같습니다. (쿼터에 여유에 따라...)
> 인스턴스가 언제 사라지는지 모르지만 호출 주기는 최소 단위인 every 1 minute 도 충분할 것 같구요.
> cron으로 호출할 url은 쿼터 많이 안잡아먹도록 하나 만들어주면 되지 않을까요.
> JAVA의 경우 cron.xml 만 작성해서 올려주면 됩니다.
>
> http://code.google.com/intl/ko/appengine/docs/java/config/cron.html
>

> 2011/2/25 Jake Seo <geeks1...@gmail.com>

Reply all
Reply to author
Forward
0 new messages