Computer >> 컴퓨터 >  >> 프로그램 작성 >> 데이터 베이스

MongoDB 인스턴스를 확장해야 하는 경우

MongoDB 인스턴스를 확장해야 하는 경우

이전 블로그 게시물에서 MongoDB를 사용한 대규모 확장에 대한 소개를 제공했습니다. 확장은 본질적으로 반응적인 경향이 있어 애플리케이션 성능 저하 또는 더 심각한 경우 전체 애플리케이션 다운타임과 같은 문제를 야기합니다. 이러한 문제는 궁극적으로 비즈니스에 영향을 미치는 부정적인 고객 경험으로 이어집니다. 그렇다면 수익에 영향을 미치지 않도록 Mongo 데이터베이스를 확장할 적절한 시기가 언제인지 어떻게 알 수 있습니까?

앱에 적합한 임계값 찾기

애플리케이션 사용량이 급증하고 트래픽이 급증하는 폭풍우를 견디도록 하려면 부하 테스트가 필수적입니다. 프로덕션 시스템에 확장과 같은 변경 사항을 적용하기 전에 애플리케이션이 처리할 수 있는 임계값을 결정하는 시스템입니다. 더 자주 이 프로세스를 간과하고 트래픽 증가와 관련된 문제에 직면했을 때 소방 훈련을 하게 됩니다.

성공적인 MongoDB 부하 테스트로 가는 길에는 다음 고려 사항이 포함되어야 합니다.

  • 병목 현상을 찾기 위해 어떤 측정항목을 모니터링해야 하나요?
  • 확장 시기와 관련하여 어떤 임계값을 사용해야 합니까?
  • 측정항목을 분석하려면 어떤 도구를 사용해야 하나요?
  • 부하 테스트를 어디에서 실행해야 하나요?

병목 현상을 찾기 위해 어떤 측정항목을 모니터링해야 하나요?

먼저 특정 애플리케이션에 대한 제한 요소를 찾는 데 사용할 기준을 결정해야 합니다. 모든 응용 프로그램은 다릅니다. 이러한 요구 사항을 알면 데이터베이스 측에서 모니터링할 적절한 메트릭을 결정할 수 있습니다.

다음은 몇 가지 예입니다.

  • 트래픽이 증가하면 애플리케이션에 초당 X개의 삽입이 필요합니다.
  • 데이터는 100밀리초 이내에 사용자에게 반환되어야 합니다.
  • 동시 연결 수에 제한이 있습니다.
  • 높은 CPU 또는 로드 평균과 같은 서버 리소스에 제한이 있습니다.

애플리케이션 측 메트릭을 결정할 수 있으면 데이터베이스 측에서 모니터링할 대상을 결정할 수 있습니다.

예를 들어 요구 사항에 특정 수의 삽입 요청이 있어야 하는 경우 다음과 같은 쓰기 메트릭에 중점을 둡니다.

  • 서버 I/O
  • 데이터베이스 잠금
  • 상대방 , 활성 쓰기 측면에서
  • WiredTiger를 스토리지 엔진으로 실행하는 경우 사용 가능한 쓰기 티켓

측정항목 분석에 사용되는 도구

모니터링할 메트릭을 결정했으면 데이터베이스 측에서 데이터를 수집해야 합니다. 다음은 부하 계수를 분석하는 데 사용할 수 있는 몇 가지 유틸리티입니다.

  • 몽고스타트 유틸리티는 잠금, 읽기 및 쓰기 대기열에 대한 실시간 데이터베이스 메트릭을 보여줍니다.
  • db.currentOp() 유틸리티는 현재 활성 작업을 결정합니다.
  • 몽고톱 상위 활성 컬렉션을 볼 수 있습니다.
  • 상단과 같은 서버 유틸리티 , 사르 , iostat CPU 사용률 또는 디스크 처리량과 같은 측정항목을 표시합니다.

실시간 분석 외에도 MongoDB 로그를 마이닝하여 데이터베이스 활동 및 오류 조건에 대한 추가 세부 정보를 얻을 수도 있습니다. 기본적으로 MongoDB는 실행하는 데 100ms 이상 걸리는 쿼리를 기록하므로 성능이 좋지 않은 쿼리를 식별하는 좋은 도구입니다.

부하 테스트를 실행할 위치 결정

데이터를 수집하는 데 사용할 항목을 결정했으면 로드 테스트를 수행할 준비가 된 것입니다. 상식적으로 프로덕션 환경에서는 로드 테스트를 해서는 안 됩니다. 때때로 이것은 환경을 충분히 빠르게 회전시키는 것이 어려울 수 있기 때문에 쇼 스토퍼가 됩니다. 아직 ObjectRocket 플랫폼을 사용하고 있지 않다면 MongoDB 테스트 클러스터를 매우 빠르게 가동할 수 있습니다.

도움이 필요하십니까?

MongoDB 환경을 확장할 때를 아는 것은 복잡해질 수 있습니다. ObjectRocket 고객은 최고의 스케일링 및 샤딩 지원을 직접 즐깁니다. 우리 DBA는 클러스터 확장의 모든 측면을 도울 수 있으며 우리의 도움은 항상 포함되어 있습니다. 시작하려면 지금 문의하세요.

이제 MongoDB 인스턴스를 확장할 시기를 결정할 수 있으므로 다음 블로그에서는 MongoDB 인스턴스를 확장하는 방법을 다룰 것입니다.