기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
그래프 애플리케이션을 개발 및 튜닝할 때 데이터베이스에서 쿼리가 대기하는 방식을 파악하는 것이 도움이 될 수 있습니다. Amazon Neptune에서 쿼리 대기는 다음과 같이 발생합니다.
인스턴스 크기에 관계없이 인스턴스당 대기될 수 있는 최대 쿼리 수는 8,192개입니다. 해당 개수를 넘는 쿼리는 거부되고
ThrottlingException
으로 인해 실패합니다 .한 번에 실행할 수 있는 최대 쿼리 수는 할당된 작업자 스레드 수에 따라 결정됩니다. 이 수는 일반적으로 사용 가능한 가상 CPU 코어(vCPU) 수의 두 배로 설정됩니다.
쿼리 지연 시간에는 쿼리가 대기열에서 사용하는 시간과 네트워크 왕복 시간 및 쿼리가 실제로 실행되는 데 걸리는 시간이 포함됩니다.
지정된 순간에 대기열에 있는 쿼리 수 결정
MainRequestQueuePendingRequests
CloudWatch 지표는 입력 대기열에서 5분 단위로 대기 중인 요청 수를 기록합니다(Neptune CloudWatch 지표 참조).
Gremlin의 경우 Gremlin 쿼리 상태 API에서 반환한 acceptedQueryCount
값을 사용하여 대기열의 현재 쿼리 수를 얻을 수 있습니다. 그러나 SPARQL 쿼리 상태 API에서 반환하는 acceptedQueryCount
값에는 완료된 쿼리를 포함하여 서버가 시작된 이후 수락된 모든 쿼리가 포함됩니다.
쿼리 대기열이 제한 시간에 영향을 주는 방식
위에서 언급했듯이 쿼리 지연 시간에는 쿼리가 대기열에서 사용하는 시간과 쿼리가 실행되는 데 걸리는 시간이 포함됩니다.
쿼리의 제한 시간은 일반적으로 대기열에 들어갈 때부터 측정되므로 느리게 이동하는 대기열은 쿼리가 대기열에서 제거되는 즉시 많은 쿼리가 시간 초과될 수 있습니다. 이러한 상황은 분명히 바람직하지 않으므로 신속하게 실행할 수 없다면 많은 수의 쿼리를 대기시키지 않는 것이 좋습니다.