2010-08-11 4 views
20

최근 앱 엔진이 느리게 실행되는 경우가 있습니다. 어느 정도까지는 클라우드 플랫폼의 아키텍처로 이해할 수 있습니다. 저는 새로운 서버 인스턴스에 대해 말하는 것이 아닙니다. 서버를 따뜻하게하기위한 요청 일뿐입니다. 나는 또한 단지 데이터 스토어 API가 아닌 CPU를 언급하고있다. 그러나 나는 그것에 대해서도 궁금해한다.더 느릴 때 앱 엔진이 더 비쌉니까?

이러한 느린 기간 동안 나는 많은 요청을 받아들이면서 많은 CPU를 사용하고 있다고 말합니다. 물론 그들은이 기간 동안 완료하는 데 더 오래 걸립니다. 내게 우려되는 것은 이러한 느린 기간 동안 내 청구 가능 CPU가 올라간 것 같습니다.

앱 엔진이 빠르면 요청이 100ms 이내에 완료 될 수 있습니다. 느린 경우 동일한 요청에 대해 1 초 이상 걸릴 수 있습니다. 동일한 URI, 동일한 캐싱, 동일한 처리 경로, 동일한 데이터 스토어, 동일한 인덱스 - 훨씬 더 많은 CPU. 노란색 경고는 내가 이해할 수 있듯이 청구 가능한 CPU 사용량을 지칭하며 앱 엔진이 느릴 때 더 많은 기능을 제공합니다.

이것은 앱 엔진 성능이 악화 될 때 내 앱의 실행에 더 많은 비용이 드는 기괴한 상황을 설정하는 것으로 보입니다. 이것은 Google이 플랫폼이 성능이 떨어지면 더 많은 돈을 버는 것을 의미합니다 (실패 또는 고객 이탈 시점까지). 어쩌면 나는 모든 상황을 잘못 이해했을 것입니다. 그런 식으로 작동하지 않습니다. 그런 식으로 작동한다면, 고객으로서의 압력과 균형은 모두 잘못입니다. 그것은 구글의 부분에서 잘못된 행동을 암시하는 것이 아닙니다. 두 가지 사이의 관계가 옳지 않은 것입니다.

마치 google의 알고리즘처럼 보입니다. 'CPU에 처리 작업을 보내고 시계를 시작한 다음 작업이 반환되면 청구 가능 CPU 수치가 표시됩니다.' 즉 CPU 작업을 전혀 측정하지 않습니다. 물론 그 시간은 동시에 실행되는 처리 작업의 수와 추가 컨텍스트 전환을 다루는 추가 작업으로 나눠야합니다. 물건을 측정하는 것이 어렵다는 것을 확신합니다. 아마도 그것이 이유입니다.

앱 엔진의 수요가 많을 때 더 많은 비용을 지불하는 것이 합리적이라고 주장 할 수는 있지만 예산이 거의 불가능 해집니다. '100 명의 사용자가 하루에 1 달러를 소비하는 것과 같은 통계를 생성 할 수 없습니다. 인프라가 제공 할 수있는 것보다 더 많은 고객을 입회시키는 앱 엔진을 포함하여 전체적으로 다양한 이유가있을 수 있습니다. Google이 앱 엔진을 과도하게 구독하면 모든 고객이 더 많은 비용을 지불합니다. 물론 google의 비용은 으로 증가해야하며, 규모의 경제를 기반으로 고객이 더 많은 리소스를 사용합니다.

내 앱에서 두 개의 동일한 요청이 실행될 때마다 대략 같은 금액을 지불해야한다고 생각합니까? 실제로 앱을 완성하는 데 소요되는 벽 시간 앱 엔진의 양과는 관계가 있습니까? 나는 이것이 어떻게 작동하는지 오해 했습니까? 내가 그렇지 않다면 장기적으로 걱정할 필요가없는 이유가 있을까요? 이 상황을 더 명확하게하는 몇 가지 문서가 있습니까? 건배,

콜린

+0

나에게 공정한 질문처럼 보입니다. 성능 범위가 훨씬 더 넓지 만 나는 똑같은 것을 보았다고 말할 수 있습니다. 데이터 저장소에 대한 청구를 사용 중지하여이 문제를 보완하려고했지만 최근에 다시 활성화되었습니다. – Greg

+0

Google은 벽 시계 시간이 아닌 CPU 시간을 측정해야합니다. 아마도 이것은 인프라와 관련이 없습니다. – user27478

+0

동의 - 문제에 대한 합리적인 해결책을 나타내는 것으로 보이는 그렉의 대답 아래에 의견에 몇 가지 제안이 있습니다. – hawkett

답변

0

예. 파머 야. 또한 Java 응용 프로그램을 시작하기 위해 Java 응용 프로그램을 시작하는 데 걸리는 시간이 1 초 이상 걸리고 사이트 요구가 적어 자원을 필요로하지 않을 때가 있습니다.

나는 cron을 사용하여 자동으로 내 사이트를 핑 (ping)하여 따뜻한 상태로 유지했다. 모든 낭비 작업을 수행하면 요금이 저렴 해졌으며 시작 시간이 없었기 때문에 2ms가 많이 걸렸다. ping ...

+1

을 이해하십시오. 콜드 스타트 ​​(cold start) - 맨 위에는 따뜻한 서버를 언급하고있었습니다. 성능 대 비용 질문에만 관심이 있습니다. 다른 불만을 야기하는이 스레드를 만들고 싶지는 않습니다. 당신은 그것이 더 느릴 때 구글이 더 비싸도록 앱 엔진을 설정했는지, 아니면 나는 단지 일화적인 관찰을 언급하고 있는지 확실히 알고 있습니까? 고마워. – hawkett

3

더 복잡 할 수 있지만 청구 알고리즘을로드 함수로 변경할 수 있습니다.또는 과거 비슷한 호출의 성능을 기반으로 CPU 측정을 표준화 할 수있었습니다.

나는 개발자에게 문제가 있음을 동의합니다.

+2

동의 - 그들은 자신이 사용하는 표준 요청 집합을 가질 수도 있습니다. 이러한 요청의 표준 CPU 사용량을 결정한 다음 정기적으로 실행하십시오. 결과가 보통 2 배라면 그 기간 동안 모든 사용자의 청구 가능 CPU를 2로 나눕니다. 제품의 규모를 감안할 때 표준 요구 사항의 대표적인 세트를 선택하면 통계적으로는 평균치가 꽤 높아집니다. 이 솔루션이 구현하기가 힘들다는 것을 실제로 알 수는 없습니다. (그리고 내가 대략 생각한 것입니다.) 고마워. – hawkett

+0

앱 엔진이 특히 빠르게 실행되면 모든 사람의 CPU 측정 값을 늘리면이 반대가 맞을 것으로 생각됩니다. Google이 무료 할당량이 백만 건에 달하는 요청을 기반으로한다는 것을 감안할 때 모든 것을 표준화하기 위해이 접근법을 사용하지 않는 것은 놀라운 일입니다. – hawkett

+0

저는 GAE 엔지니어들이 플랫폼을 매우 자랑스럽게 여기고 있으며이를 해결하기 위해 열심히 노력하고 있습니다. 그러나 나는 반항 할 수 없다. 아이러니하게도, "구글에서 스피드에 사로 잡혀 있다는 말을 들었을 것이다."구글은 이제 순위 알고리즘에서 사이트 속도를 사용하고있다. 그들이 GAE에서 실행중인 사이트에 장애가 있는지 궁금합니다. :) 죄송합니다. 저항 할 수 없습니다. – Greg

0

이 질문은 오래된 나타나고 나는 가격 체계를 변경해야합니다 생각 ...

"instance hours"에 대한 구글 앱 엔진의 요금 및 현재 양산 인스턴스는 GAE 콘솔에서 볼 수 있습니다. 또한 Google은 조정을 통해 비용 대비 대기 시간을 결정할 수 있습니다.

https://developers.google.com/appengine/docs/adminconsole/performancesettings

내가 눈치 않았다 프런트 엔드는 GAE 대기 시간을 얻기 위해 인스턴스의 무리를 생성하는 일반적인 백엔드 자원 타격 수렁에 빠져 경우. 대기 시간/처리량이 향상되지 않더라도 이러한 인스턴스 시간 동안 비용을 지불하게됩니다. 제가 언급 한 조정이 도움이되는 것 같습니다.

관련 문제