카테고리 없음

Amazon Linux 2에서 MongoDB maxPoolSize 튜닝 방법

idea9329 2025. 3. 2. 16:49
반응형

 

Amazon Linux 2에서 MongoDB의 maxPoolSize 값을 조정하는 방법을 정리합니다. 이 설정을 최적화하면 동시에 처리할 수 있는 데이터베이스 연결 수를 조절하여 성능을 개선할 수 있습니다.


1. maxPoolSize란?

MongoDB의 maxPoolSize는 클라이언트가 유지할 수 있는 최대 연결 풀 크기를 의미합니다. 기본값은 100이며, 너무 낮거나 높으면 성능에 영향을 미칠 수 있습니다.

  • 낮은 값: 동시 연결 요청이 많을 경우, 대기 시간이 길어짐
  • 높은 값: 불필요한 연결 유지로 메모리와 CPU 사용량 증가

적절한 값 설정이 필요합니다.


2. 현재 maxPoolSize 확인

현재 설정된 값을 확인하려면 다음을 실행하세요.

mongo --eval "db.adminCommand({ getParameter: 1, maxPoolSize: 1 })"

또는 MongoDB 내부에서 실행:

use admin
db.runCommand({ getParameter: 1, maxPoolSize: 1 })

3. maxPoolSize 변경 방법

(1) MongoDB 클라이언트 옵션에서 설정

클라이언트가 MongoDB에 연결할 때, maxPoolSize 값을 조정할 수 있습니다.

예시: Python (pymongo)

from pymongo import MongoClient

client = MongoClient("mongodb://localhost:27017/", maxPoolSize=200)
db = client["mydatabase"]

예시: Node.js (Mongoose)

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost:27017/mydatabase', {
  maxPoolSize: 200
});

(2) MongoDB 설정 파일 (mongod.conf)에서 변경

MongoDB 인스턴스의 연결 풀 크기를 변경하려면 설정 파일을 수정해야 합니다.

  1. 설정 파일 열기
sudo nano /etc/mongod.conf
  1. 설정 변경
net:
  maxIncomingConnections: 500  # 예: 최대 연결 수 증가
  1. MongoDB 재시작
sudo systemctl restart mongod

(3) 명령어로 변경

MongoDB에서 직접 설정 변경도 가능합니다.

mongo --eval "db.adminCommand({ setParameter: 1, maxPoolSize: 200 })"

이 방법은 일시적인 설정이므로, 서버를 재시작하면 초기화됩니다.


4. maxPoolSize 튜닝 팁

  1. 기본값 100 → 200~500으로 조정 후 테스트
  2. 메모리 사용량 확인 (htop, top 명령어 활용)
  3. MongoDB 성능 모니터링 (mongostat, mongotop 명령어 활용)
  4. 서버 스펙에 맞춰 최적화
    • RAM이 4GB 이하라면 200~300이 적절
    • RAM이 8GB 이상이라면 500 이상 설정 가능

5. 성능 테스트 및 모니터링

(1) 현재 연결 수 확인

mongo --eval "db.serverStatus().connections"

(2) MongoDB 상태 모니터링

mongostat
mongotop

(3) 네트워크 연결 확인

netstat -anp | grep mongod

결론

Amazon Linux 2에서 MongoDB의 maxPoolSize 값을 조정하면, 동시 연결을 최적화하여 성능을 향상시킬 수 있습니다.
설정 변경 후 연결 상태와 서버 리소스 사용량을 모니터링하며 최적의 값을 찾아 적용하세요.

🔹 키워드:
Amazon Linux 2 MongoDB maxPoolSize 튜닝, MongoDB 최대 연결 풀 설정, mongod.conf maxPoolSize 설정, MongoDB 성능 최적화, MongoDB 클라이언트 maxPoolSize

반응형
댓글수0