1

없이 용량 아래의 처리량을 읽어 보시기 바랍니다.DynamoDB의 내가 읽기 처리량이 그래프에서 눈에 띄는 제한없이 잘 규정 된 능력 이하 디나모에 문제가 있어요 어떤 제한

내 테이블과 유사한 데이터의 100기가바이트 있습니다

| Partition Key | Sort Key | Value | A | A1 | 1 | A | A2 | 21 | A | A3 | 231 ... | A | A200 | 31 | B | B1 | 5

이 구조는 내가 기반으로 모든 주어진 키에 관련된 값 (더 복잡한 쿼리를 조회 할 수 있습니다 것이 중요하다으로 너무 많이 변경할 수 없습니다 지정된 파티션 키에 관련 지을 수 있었던 소트 키) . 이렇게하면 동일한 파티션에 자주 충돌해야하므로 쓰기 작업이 줄어들지 만 실제로 이상한 것은 읽기 처리량입니다. 이 테이블에는 1000 개의 읽기 장치가 프로비저닝되어 있지만 기록 된 최대 처리량은 초당 600 읽기입니다. 이는 초당 최대 10,000 개의 프로비저닝 된 읽기 단위와 일치합니다. 클라이언트 측

, 정말 이론적 판독 처리량 1,000 초당 판독되어야 (레이트 제한을 사용하여, 균일하게) 초당 1,000 요청을 보낸다. 요청 수가 클라이언트 측에서 증가하더라도 속도는 동일하게 유지되고 스로틀 된 읽기는 0입니다.

클라이언트 다이나모 같은 영역에서 EC2 m4.2xlarge 예에서 실행된다. 나는 CPU 사용량이 상당히 낮기 때문에 클라이언트와 관련된 문제를 배제했으며 충분한 메모리를 사용할 수 있습니다.

이 문제의 원인에 대한 의견이 있으십니까?

+0

1000 개의 읽기 (/ 초)가 모두 성공했다고 말하면서 시스템은이를 600으로 계산합니까? –

+0

@ Michael-sqlbot 만약 초당 1000 회의 읽기를 보내면 모두 성공하지만 초당 600/500으로 계산됩니다. 2000을 보내면 no, 초당 2000보다 적지 만 그래프에 표시되는 것보다 많습니다 . –

답변

0

RCU에서 영향을 미칠 수있는 항목 당 데이터의 양.

참조 : http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ProvisionedThroughput.html

한 읽기 능력 단위가 초당 하나를 강력하게 일관된 읽기를 나타내거나 결국 일관성이가 KB 4 크기의 항목에 대한 초당 읽습니다. 4KB보다 큰 항목을 읽어야 할 경우 DynamoDB는 추가 읽기 용량 단위를 사용해야합니다. 필요한 총 읽기 용량 단위 수는 항목 크기, 및 궁극적으로 일관성이 있거나 매우 일관된 읽기 여부에 따라 다릅니다.

일관된 읽기 및 읽기 당 가져 오는 데이터의 양을 사용하고 있는지 확인해야합니다.

+0

그것은 일관성과 관련이 있습니다. 일관된 읽기를 사용하기 시작했을 때 원하는 처리량에 가깝게 접근 할 수 있었지만 스로틀 링이 없더라도 그 값을 확장 할 수는 없었습니다. –

0

몇 가지 생각 테스트에서

  1. 당신은 파티션 키의 모든 통해 쿼리를 확산되고있다? Dynamo는 모든 파티션에서 처리량을 분배하므로 헤드 라인 처리량을 달성하지 못할 수도있는 파티션 하위 집합에 부딪혔습니다.
  2. 각 읽기가 반환하는 데이터의 양을 알고 있습니까? 1 개의 읽기 용량은 최대 4KB의 데이터를 반환 할 수 있습니다. 결과 중 일부가 4KB보다 큰 경우 1000 RCU에 대해 초당 읽기가 1000 개 미만이됩니다.
  3. 테이블에있는 파티션 수와 처리량이 파티션에 얼마나 많은지 알고 있습니까? 단일 파티션에는 3,000 개의 RCU 만있을 수 있습니다. Temporarily increasing 처리량으로 인해 테이블이 새로운 파티션을 생성 할 수 있습니다. 그런 다음 RCU를 다시 내리면 RCU가 더 얇게 퍼지면서 동일한 수의 파티션에 데이터가 유지됩니다.
+0

1. 예, 읽기가 잘 분산되어 있고, 키를 기록했지만 키가 두 번 이상 쿼리되지 않았습니다. 2. 각 읽기는 4KB보다 훨씬 적은 데이터를 반환합니다. 얼마인지는 모르지만 훨씬 적습니다. 3. 내가 생각하지 못한 것이 있습니다. 고맙습니다 –