카테고리 없음
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 인스턴스의 연결 풀 크기를 변경하려면 설정 파일을 수정해야 합니다.
- 설정 파일 열기
sudo nano /etc/mongod.conf
- 설정 변경
net:
maxIncomingConnections: 500 # 예: 최대 연결 수 증가
- MongoDB 재시작
sudo systemctl restart mongod
(3) 명령어로 변경
MongoDB에서 직접 설정 변경도 가능합니다.
mongo --eval "db.adminCommand({ setParameter: 1, maxPoolSize: 200 })"
이 방법은 일시적인 설정이므로, 서버를 재시작하면 초기화됩니다.
4. maxPoolSize 튜닝 팁
- 기본값 100 → 200~500으로 조정 후 테스트
- 메모리 사용량 확인 (htop, top 명령어 활용)
- MongoDB 성능 모니터링 (mongostat, mongotop 명령어 활용)
- 서버 스펙에 맞춰 최적화
- 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
반응형