Cloud Function for Firebase가 느립니까?
준비하다
참조냉각 부팅 감소 핫 스페어 인스턴스 지정
exports.getAutocompleteResponse = functions
.runWith({
// Keep 5 instances warm for this latency-critical function
minInstances: 5,
})
.https.onCall((data, context) => {
// Autocomplete a user's search term
});
이렇게 해서 hotstandby가 됐다는 보도가 있었지만, 확인 방법이 없어 실제로 hotstandby가 됐는지 알 수 없었다.별 효과가 없다.가까운 지역을 이용하다
default는 us-central 1(미국 중부)이기 때문에 아시아-northeast1(도쿄)로 지정됩니다.
exports.JpFunc = functions
.region("asia-northeast1")
.https.onCall(async (data, context) => {
// Some func
});
RTT 효과메모리 지정
default는 256MB이기 때문에 증가합니다.증가하면 가동을 포함한 속도가 개선된다.
exports.JpFunc = functions
.runWith({
memory: "1GB" as "1GB",
})
.https.onCall(async (data, context) => {
// Some func
});
극적인 효과가 있다.단순한 함수라면 그것만으로도 대책으로 충분하다.4s->200ms 이하.느린 함수라도 1s 정도밖에 안 돼요.
그럼에도 불구하고 처음으로 발생한 늦은 문제
상술한 조치를 취하더라도 특정한 동기 함수 중에는 1s 정도의 함수가 있다.처리 내용을 고려하더라도 100ms 이하에서 처리할 수 있으며, 연속 호출하면 2차 이후 100ms 이하에서 회답할 수 있다.
시간이 걸리는 함수의 특징을 조사한 결과 Firestore를 사용하는 함수와 Authentication을 사용하는 함수, 즉 Firebase를 사용하는 다른 서비스의 공통점을 발견했다.
조사에 따르면 이쪽수표에는 gRPC의 초기화에 시간이 많이 걸린다는 정보가 있다.
초기화에 시간이 걸리기 때문에 실례가 시작되면Firebase가 초기화 상태에 있고 바로 답장하는 이유도 이해할 수 있다.
개선 방법으로 삼다
특히 사용자 정의 인증을 사용할 때는 어떻게든 펀션 측에서 Authentication을 사용해야 하는데, 아직 대안이 없기 때문에 UI로 1s가량의 지연을 감춰야 한다.
총결산
총결산하다
exports.getAutocompleteResponse = functions
.region("asia-northeast1")
.runWith({
// Keep 5 instances warm for this latency-critical function
minInstances: 5,
memory: "1GB" as "1GB",
})
.https.onCall((data, context) => {
// Autocomplete a user's search term
});
Reference
이 문제에 관하여(Cloud Function for Firebase가 느립니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/isamua/articles/firebase-functions-performance텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)