Latest article
Home >> Performance >> Checklist ตรวจสอบ performance บน MongoDB ที่ใช้เนื้อที่มากกว่า 100GB
Checklist ตรวจสอบ performance บน MongoDB ที่ใช้เนื้อที่มากกว่า 100GB

Checklist ตรวจสอบ performance บน MongoDB ที่ใช้เนื้อที่มากกว่า 100GB

Checklist สำหรับ MongoDB ที่จัดทำขึ้นโดย MongoHQ ที่จะช่วยให้ผู้ใช้งาน MongoDB ตรวจสอบระบบของตนเองและดำเนินการแก้ไข เพื่อป้องกันปัญหาเรื่อง performance ที่จะเกิดขึ้นเมื่อจำนวนข้อมูลที่เก็บไว้ใน MongoDB มีขนาดมากขึ้นเรื่อยๆ

สำหรับ Checklist ในการตรวจสอบระบบ MongoDB นี้ผมได้ทำการสรุปคร่าวๆได้เป็นหัวข้อดังนี้

  1. ตรวจสอบลักษณะข้อมูลและการใช้งานของ application ซึ่งทาง MongoHQ ได้ทำการแบ่งชนิดของข้อมูลออกเป็น 4 แบบ คือ fast, slow, small และ large และแบ่งรูปแบบข้อมูลของ application ที่จะเข้าถึงข้อมูลออกเป็นชนิดต่างๆ

    จากรูปแบบข้อมูลของ application ต่างๆ (ตามภาพด้านล่าง) ทาง MongoHQ ได้แนะนำให้ให้หลีกเลี่ยงข้อมูลของ application ชนิดที่เป็น OLTP, Queues และ Messages

    data type to avoid for mongodb

  2. จากข้อ 1. ข้อมูลที่ไม่เหมาะกับ MongoDB แนะนำให้ใช้งาน engine อื่นแทน เช่น redis เป็นต้น

    remove unrefactorable data to redis

  3. หลีกเลี่ยง query ที่มีลักษณะ complex และ unknow เช่น data discovery

    query to avoid for mongoDB

  4. ทำการ optimize query ให้เรียบง่ายที่สุด

    optimize query mongodb

  5. แยก hot และ cold data
  6. หยุดใช้งาน mongodump เพื่อทำการ backup เพราะการทำงานของ mongodump จะทำการ scan table ทั้งหมด ทำให้เกิดปัญหาเรื่อง performance ได้ โดยถ้าหากต้องการ Backup ให้เลือกใช้ tool ตัวอื่นแทนเช่น MMS backup
  7. อย่าลืมทำระบบ monitor ซึ่ง ณ ตอนนี้อาจจะยังไม่ได้ช่วยอะไรมากมาย แต่ต่อไปจะช่วยให้คุณมีข้อมูลในการวิเคราะห์สาเหตุได้ และยังเป็นข้อมูลประกอบในการวางแผนเรื่อง capacity plan ได้ดี
  8. หลีกเลี่ยง query ที่ทำให้เกิด page faults (พยายามเข้าถึงข้อมูลบน memory แต่จริงๆแล้วไม่มีข้อมูลอยู่บน memory) เพราะจะทำให้ประสิทธิภาพการทำงานตกลงอย่างน่าใจหาย

    MongoHQ ได้ยกตัวอย่างเช่น ถ้าหากระบบไม่เกิด page fault เลยจะสามารถรองรับได้ 7,000 operations per second แต่ถ้าหากเกิด 1% table scans จะทำให้ประสิทธิภาพลดลง 50% (3,500 operations per second) (คิดว่าแสดงค่า 1% table scans ผิด)

    avoid page fault on mongodb

  9. Monitor slow query โดยใช้ tool ต่างๆ เช่น ex, MongoProfessor, Mongo-QP หรือ Slow Query Tracker
  10. ซื้อ hardware ใหม่เพิ่มเสริมประสิทธิภาพการทำงาน แต่อย่าซื้ออย่างหน้ามือตามัว ก่อนซื้อให้คำนึงถึงเรื่อง optimization และรูปแบบการใช้งานด้วย

ข้อมูลเพิ่มเติมสามารถดูได้ที่ slideshare และ video webinar

The following two tabs change content below.
Error: Unable to create directory wp-content/uploads/2018/11. Is its parent directory writable by the server?
I'm interested in: Database: MySQL and MariaDB, WebScaleSQL, SQL Tuning, Database sharding Search engine: Elasticsearch Web: Apache tuning, web optimization and SEO Platform: log platform
Error: Unable to create directory wp-content/uploads/2018/11. Is its parent directory writable by the server?
Facebook Iconfacebook like buttonTwitter Icontwitter follow button
Copy Protected by Chetan's WP-Copyprotect.