MongoDB 공식 한국 사용자 그룹 주디아줌마
64bit 아키텍쳐, 리틀 에디언 서버 CPU 파일 시스템 DISK IOPS 와 Seek Time 을 고려 RAID 1+0 RAM 용량이 클때 최적의 성능 인덱스 와 작업 데이터를 램이 수용할 수 있도록 충분한 용량을 갖는 하드웨어 구성
파일 디스크립터 클럭
Topology 선택 최소 권장 배포 구성 3 node (2 node + 1 arbitor) 작업 Data SIZE 가 램 용량 초과시 샤드 고려 저널링 모든 쓰기를 핵심데이터 파일에 쓰기 전에 먼저 저널에 쓰기 Diasaster Recovery 저널링 Off : Mongod –nojournal 100ms 쓰기 버퍼를 디스크에 동기화
mongoimport, mongoexport utility
데이타베이스 단위의 간단한 인증 메커니즘 안전한 환경 구성 방화벽 주소 바인딩 ▪ Mongod –bind_ip , 인증 Mongod – auth
관리자 생성 Use admin db.addUser(“boss”, “supersecret”) 인증모드 실행 Mongod – auth 복제셋 인증 인증 Key : 복제셋 멤버와 통신하기 위해 사용하 는 일종의 패스워드 --keyFile 저장위치
로깅 Background 실행 –logpath 저장 위치 로그 추가 옵션 –logappend 로그 lotate ▪ Use admin ▪ db.runCommand( {logrotate:1})
내부 모니터링 serverStatus, dbstats, collstats Top db.currentOp() Mongostat, mongostat --discover Web ▪
외부 모니터링 tools Nagios Munin cactic
진단 도구 Mongosniff ▪ 클라이언트로부터 전송되는 패킷 검사 ▪ 드라이버를 작성하거나 잘못된 연결을 디버깅할 때 유 용함 Bsondump ▪ BSON 원파일을 검사
백업, 복구 ▪ mongodump, mongorestore ▪ Mongodump –h localhost –port ▪ Mongodump index 정보가 포함되어서 백업되지 않는다. 데이터 파일에 기반한 백업 ▪ Database 잠금 필요 ▪ use admin ▪ db.runCommand( {fsync:1, lock:true}) ▪ 데이터 파일 복사 ▪ 충분한 oplog 필요
압축과 수리 ▪ mongo-- repair ▪ Use cloud-docs ▪ db.runcommand({repareDatabase:1}) ▪ 충분한 디스크 공간 필요 ▪ 오프라인 작업 ▪ 마지막 수단 ▪ 인덱스 재구축 ▪ db.spreadsheets.reIndex() ▪ db.runcommand({compact: “spreadsheets”}).
업그레이드 가능한 최신 버전을 실행 복제셋의 경우 세컨더리 노드부터 시작해서 한 번에 한 노드씩 업그레이드 한다..
성능 문제 해결 DISK 이슈 ▪ iostat –x 2 인덱스와 쿼리 효율성 램 추가 디스크 성능 향상 (SSD, RAD10) 수평적 확장 ( 샤드 클러스터 ) 전문가의 도움.
성능 문제 해결 DISK 이슈 ▪ iostat –x 2 인덱스와 쿼리 효율성 램 추가 디스크 성능 향상 (SSD, RAD10) 수평적 확장 ( 샤드 클러스터 ) 전문가의 도움.