Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Mongo db in use(naver)

500 Aufrufe

Veröffentlicht am

2016년 1월에 Naver Labs 초청으로 그린 팩토리에서 발표했던 내용입니다. 기본적인 내용은 기존 발표 자료와 유사하며, 추가적인 Tip과 Q&A 부분의 변동이 다소 있습니다.

Veröffentlicht in: Daten & Analysen
  • Als Erste(r) kommentieren

Mongo db in use(naver)

  1. 1. MongoDB in use MongoDB Korea 김인범
  2. 2. Agenda I. MongoDB에 대해 알려진 사실 들 II. MongoDB + WiredTiger III. MongoDB를 이용하면서 느낀 점 IV. MongoDB 모니터링
  3. 3. Intro  저는 김인범입니다.  MongoDB Korea에서 활동하고 있 습니다.  커뮤니티 소개는 기회가 된다 면...  MongoDB와 관련된 이야기를 하 려 합니다.
  4. 4. 1. MongoDB에 대 해 알려진 사실 들(?)
  5. 5. a.k.a?(1)  잘 다운되지 않나요? - 1.x ~ 2.2 release 까지는 불안정의 연속 - 상대적으로 사용이 미숙했던 것 도 문제 - 3.x 진입하면서 안정성 확보1. MongoDB에 대해 알려진 사실들(?)
  6. 6. a.k.a?(2)  Locking은 언제쯤... - ~ 2.6 release : DB Level Locking - 3.0 default : Collection Level Locking - 3.0 wired Tiger : document Level Locking 1. MongoDB에 대해 알려진 사실들(?)
  7. 7. a.k.a?(3)  MongoDB는 저 비용으로 구성하기 에 알맞다? - 물론 초기에는 저 비용 - 하지만.. - 성능, 용량, 확장성... 다 따지면 ! !1. MongoDB에 대해 알려진 사실들(?)
  8. 8. a.k.a?(4) - Q&A  MySQL보다 좋다? 나쁘다? - (제 경험으로) insert/update시의 read 속 도는 - MongoDB 2.6<= MySQL5.5<= MongoDB 3.0 - 데이터 증가할수록 MySQL5.51. MongoDB에 대해 알려진 사실들(?)
  9. 9. a.k.a?(5)  MongoDB가 Oracle, MySQL을 대체...? - 아니요... - 그럴리가요... - 기분 탓일거예요... 1. MongoDB에 대해 알려진 사실들(?)
  10. 10. a.k.a?(5)  MongoDB가 Oracle, MySQL을 대체...? - 물론 미국에서는 Main Stream으로 진 입중 - 하지만 국내에서는.... 아직 오랑캐 DB 1. MongoDB에 대해 알려진 사실들(?)
  11. 11. 11. MongoDB + WiredTiger
  12. 12. WiredTiger  3.0 release 부터 도입된 WiredTiger  mongodb 사용시 엔진 선택 가능 (--storageEngine=“wiredTiger”)  디폴트 설정시에는 MMAPv1 엔진 사용  3.2 release부터는 WiredTiger가 디폴트!11. MongoDB + WiredTiger
  13. 13. WiredTiger performance – (1)  MongoDB 2.6 vs 3.0 11. MongoDB + WiredTiger https://www.mongodb.com/blog/post/performance-testing-mongodb-30-part-1-throughput-improvements- measured-ycsb (YCSB – Yahoo Cloud Serving Benchmark)
  14. 14. WiredTiger performance – (2)  MongoDB 3.0(MMAP) vs 3.0 (WT) 11. MongoDB + WiredTiger https://www.mongodb.com/blog/post/performance-testing-mongodb-30-part-1-throughput-improvements- measured-ycsb (YCSB – Yahoo Cloud Serving Benchmark)
  15. 15. WiredTiger vs TokuMX – Q&A  쿼리 성능 측면에서 TokuMX가 유 리함 (특히 insert, update)  두 제품의 data 구조 차이로 인해 성능 차이 발생 WiredTiger : B-Tree 데이터 구조 TokuMX : Fractal tree Indexing11. MongoDB + WiredTiger
  16. 16. TokuMX performance  TokuMX 2.0.1 vs WiredTiger 3.0 11. MongoDB + WiredTiger http://benchmark-docs.readthedocs.org/en/latest/mongodb-sysbench-hppro2.html
  17. 17. WiredTiger vs TokuMX – Q&A  B-tree vs Fractal Tree 11. MongoDB + WiredTiger https://www.bnl.gov/csc/seminars/abstracts/Bender_Presentation.pdf
  18. 18. WiredTiger vs TokuMX – Q&A  다만 TokuMX를 써보니...  CPU 과부하 문제가 발생할 수 있 으며, 모니터링 & 조절 가능하다면 TokuMX 추천  TokuMX는 도입시에 다양한 측면11. MongoDB + WiredTiger
  19. 19. 111. MongoDB를 이용하며 느 낀 점
  20. 20. 피할 수 없는 RDBMS와의 비 교 – Q&A(1) 대용량 시스템 운영시 RDBMS 대 비 주의할 점 - 제일 중요한 건 모니터링! (변수 가 더 많음) - 그 다음 중요한 건 shard key 설정 (효과적인 shard key 설정은 서비스11I. MongoDB를 이용하며 느낀 점
  21. 21. 피할 수 없는 RDBMS와의 비 교 – Q&A(2) 대용량 시스템 운영시 RDBMS 대 비 주의할 점 - 장애시 Contingency Plan이 명확해야 함 - 용량별, 시기별 확장 계획이 있다 면 좋음11I. MongoDB를 이용하며 느낀 점
  22. 22. Script 언어를 알면 유리한 MongoDB script언어를 알면 MongoDB 활용성 ↑ - 모니터링 shell - 개인에게 특화된 function 사용 - 다양한 driver 연동11I. MongoDB를 이용하며 느낀 점
  23. 23. MongoDB 를 관리하는 주체는...? (1) MongoDB를 누가 관리할 것인가? - 개발자가 이해하기 쉬운 구조 - 하지만 ~DB가 붙고 data가 들어와 서 DBA느낌 - 왠지 모니터링도 잘해야 할 것 같11I. MongoDB를 이용하며 느낀 점
  24. 24. MongoDB 를 관리하는 주체는...? (2) MongoDB를 누가 관리할 것인가? - 앞서 열거한 역량을 고루 가진 운 영자 - devops 성격을 가진 조직 (서비스 개발자들이 직접 운영도 수행)11I. MongoDB를 이용하며 느낀 점
  25. 25. 1V. MongoDB 모니터 링
  26. 26. MongoDB Monitoring(1)  내부 명령어를 이용한 방법 - mongotop (≒ top ) - mongostat (≒ vmstat )  Shell Scripting의 조합(능력자 ver.) 1V. MongoDB 모니터링
  27. 27. MongoDB Monitoring(2)  그 외 tool 1V. MongoDB 모니터링
  28. 28. MongoDB Monitoring(3)  돈을 쓰게 된다면... - Cloud Manager와 같은 Enterprise version 제품 사용 가능하지만, - 생각보다 응답시간이 오래 걸림. - 이상적인 것은 자체 개발 1V. MongoDB 모니터링
  29. 29. MongoDB Monitoring(4)  흥미 롭게 봤던 외부 tool(PandoraFMS) - Open Source(GPL2) (Ent. Ver가 따로 존재) - Ent. Ver는 100 agent부터 비용이 책정 됨. 1V. MongoDB 모니터링
  30. 30. MongoDB Monitoring(5)  흥미 롭게 봤던 외부 tool(PandoraFMS) 1V. MongoDB 모니터링
  31. 31. MongoDB Monitoring(6)  제가 시도해 보고 있는 방법은... - 브라우저 / 서버 / 데이터베이스 에 이르기까지 자바스크립트로 구성된 풀스택 플랫폼 - 실시간 업데이트 가능 (매번 빌드1V. MongoDB 모니터링
  32. 32. MongoDB Monitoring(7)  제가 시도해 보고 있는 방법은... - MongoDB의 Oplog를 이용한 Monitoring 수행 * oplog : 복제셋 형태로 운영되는 MongoDB 서버간의 동기화를 위해 DB의 변경사항을1V. MongoDB 모니터링
  33. 33. MongoDB Monitoring(8)  제가 시도해 보고 있는 방법은... - 해결책으로서, Meteor는 data변화를 탐지하고 observer를 작동시키기 위해 oplog를 사용한다. - Meteor는 Primary를 tailing하는 Secondary1V. MongoDB 모니터링
  34. 34. MongoDB Monitoring(9)  제가 시도해 보고 있는 방법은... 1V. MongoDB 모니터링
  35. 35. V. MongoDB 운영 Tips
  36. 36. Tips 1. 충분한 메모리와 SSD, 그 리고 CPU!! V. 운영 Tips
  37. 37. Tips 2. 성능을 고려한다면 동적 스키마를 배제 할 것. V. 운영 Tips
  38. 38. Tips 3. 복제는 필수지만, 샤딩은 충분히 고려 해 볼 것. V. 운영 Tips
  39. 39. Tips 4. 데이터에 대한 이해가 없다면, shard Key는 포기할 것. V. 운영 Tips
  40. 40. Tips 5. 성능 향상을 위해 PageFault 를 최소화할 수 있는 구성 을 할 것. V. 운영 Tips
  41. 41. Tips 6. 필드 네이밍을 짧게할수 록 속도 엄~~~청 빨라짐. (Key-Value 구조에서 key가 길 수록 모두 비용이V. 운영 Tips
  42. 42. Tips 7. document resizing은 엄청난 overhead 발생시키므로, 더미 필드를 미리 만들어 놓는 것도 방 법 중 하나. V. 운영 Tips
  43. 43. Tips 8. fragmentation 발생시 compact 보다 ‘usePowerOf2Sizes’ 옵션을 사용하 거나, fragmentation이 발생하지 않는 스키마 모델링을 할 것. V. 운영 Tips
  44. 44. Tips 9. 급하게 성능을 올려야 한다 면 Scale out 보다는 Scale up! scale out으로 인한 성능 변화가 생각보다 크지 않음.V. 운영 Tips
  45. 45. Tips 10. release update에 따른 API 변화 및 deprecated 확인 필요! V. 운영 Tips
  46. 46. Q & A 추가 항목 : 기존에 shard key 재설정 하려 면 Sharding 설정을 다시 해야 됐 는데.. 신규 release에서도 같은 상황 인지..V. 운영 Tips
  47. 47. Q&A 추가항목 Q. 기존에 shard key 재설정 하려면 Sharding 설정을 다시 해야 됐는데.. 신규 release에서도 같은 상황인지.. A. 우선 신규 release 에서도 기존과 같이 샤딩 재설정은 불가능.1V. MongoDB 모니터링
  48. 48. Q&A 추가항목 1V. MongoDB 모니터링 https://docs.mongodb.org/manual/faq/sharding/#can-i-change-the-shard-key-after-sharding-a-collection
  49. 49. 참고할 만한 곳  DB 점유율 ranking (http://db-engines.com/en/ranking)  mongodb 학습 사이트 (http://university.mongodb.com/) 1V. MongoDB 모니터링
  50. 50. Q & A
  51. 51. 감사합니다. inbum85@gmail.com https://www.facebook.com/revolutionistK https://www.facebook.com/groups/krmug/

×