5일차 교육 |
1. 아키텍쳐 튜닝
- replicaSet clusters 영역과 Functional area 영역은 반드시 분리하라
- 하나의 인스턴스 보다 샤트 클러스터를 적절히 활용하라
- 슬레이브 데이이터베이스에는 백업과 레포츠활동을 중지하라
- 하나의 머신에는 하나의 몽고 인스턴스만 활성화하라
2. 하드웨어 튜님
- ssd 권장
- mapped cache area 크기가 2GB인 경우 적정 메모리의 크기는 약 10GB 이다.
- CPU는 다중CPU 환경에서 구축하라.
- 분산처리가 가능하게 하라.
3. 인스턴스 튜닝
- 인덱스의 타입과 갯수는 적절히 하라
- 최적화된 READ/WRITE가 가능하도록 쿼리를 작성하라
- 인접성이 높아질수 있도록 설계하고 저장하라.
4. mongoperf
- 디스트 I/O 성능을 측정하는 유틸
(실습)
1) 텍스트파일 생성후 아래와 같이 작성
{nThreads:16, fileSizeMB:1000, mmf:false, r:true, w:true} => mmf : memory mapped file
2) mongoperf > perf.txt => 실행
3) 로그확인. 스레드 16개로 READ/WRITE를 수행
5. 백업과 복구
- 셧다운&파일 백업 - 리스토어
- fsyncLock/fsyncUnLock&backup - CopyDatabase/CloneDatabase
- Snapshot Backup - Recovery
- MongoDump - MongoRestore
- MongoExport - MongoImport
- Master/Slave, Replica Backup(OpLog) - Replica Set, Recovery(OpLog)
- 백업 및 복구단위 - 전체, db별, 컬렉션별 백업
- 각 컬렉션을 bson으로 백업
1) mongoDump & mongorestore
(실습)
mongodump --db test --collection employees --out c:\mongodb\bin\dump => --out 옵션을 안주면 bin아래 dump폴더가 디폴트
mongorestore c:\mongodb\bin\dump --objcheck --drop
- 유의사항
dump중 사용자의 CRUD를 놓칠수 있으므로 낮시간에는 --oplog를 넣어준다.
2) BsonDump
- 백업 파일 분석.
3) mongoImport & mongoExport
- json타입, csv타입, tsv타입(탭구분)
4) copyDatabase & cloneDatabase
(실습)
db.copyDatabase("test", "test2", "localhost")
- 클론의 경우 다른 서버에서 같은 이름의 db명에서 실행해야함
5) MongoStat & MongoTop
- 실시간 모니터링 유틸리티
- MongoStat - 서버의 모든 액션을 모니터링
- MongoTop - 모든 컬렉션에서 발생하는 액션을 모니터링
6) Web monitoring
- 서버 구동시 --rest 옵션을 주고, http://localhost:28017/ 로 접근
7) 로그 수집
- 서버 구동시 옵션 추가 => --logpath c:\mongodb\logs\log_20130426.txt
8) 그 외
- db.serverStatus()
- db.stats()
- db.currentOp()
- db._adminCommand("connPoolStats")
5. 하둡연동
(실습) 책보고 실습하기
6. Flume, Fluentd (http://fluentd.org)
- 로그를 json형태로 수집해주는 로그 수집기.
댓글 없음:
댓글 쓰기