ตรวจสอบประสิทธิภาพของฐานข้อมูล

การตรวจสอบประสิทธิภาพของ Firebase Realtime Database และตรวจหาปัญหาที่อาจเกิดขึ้นในแอปทำได้หลายวิธี การตรวจสอบแบนด์วิดท์ขาเข้าและขาออก รวมถึงภาระของแอปยังช่วยให้คุณทราบถึงค่าใช้จ่ายที่จะเกิดขึ้นได้อีกด้วย นอกจากนี้ หากมีสิ่งผิดปกติเกิดขึ้น การดูภาพรวมที่ชัดเจนของการดำเนินการของฐานข้อมูลอาจเป็นเครื่องมือแก้ปัญหาที่มีประโยชน์

หน้านี้กล่าวถึงRealtime Databaseการตรวจสอบประสิทธิภาพ สําหรับการตรวจสอบการใช้งาน โปรดดูตรวจสอบการใช้งานฐานข้อมูล

ใช้เครื่องมือตรวจสอบ Realtime Database

คุณสามารถรวบรวมข้อมูลเกี่ยวกับประสิทธิภาพของ Realtime Database ผ่านเครื่องมือต่างๆ ได้ 2-3 อย่าง โดยขึ้นอยู่กับระดับรายละเอียดที่ต้องการ

ใช้เครื่องมือ Realtime Database Profiler

เครื่องมือโปรไฟล์ Realtime Database ให้ภาพรวมแบบเรียลไทม์ของการดำเนินการอ่าน/เขียนในฐานข้อมูล รายงานจะมีข้อมูลเกี่ยวกับความเร็วและขนาดของข้อมูลเพย์โหลดของการดำเนินการแต่ละรายการ นอกเหนือจากคำค้นหาที่ไม่ได้จัดทำดัชนี แต่จะไม่รวมข้อมูลย้อนหลังหรือสถิติเกี่ยวกับค่าใช้จ่ายเพิ่มเติมในการเชื่อมต่อ และไม่ควรใช้เพื่อประมาณค่าใช้จ่ายการเรียกเก็บเงิน

ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้เครื่องมือวิเคราะห์โปรไฟล์ได้ที่วิเคราะห์ฐานข้อมูล

ใช้คอนโซล Firebase

แท็บการใช้งานในFirebaseคอนโซลจะแสดงข้อมูลเกี่ยวกับการเชื่อมต่อกับฐานข้อมูลพร้อมกัน ปริมาณข้อมูลที่จัดเก็บ แบนด์วิดท์ขาออก (รวมถึงค่าใช้จ่ายเพิ่มเติมของโปรโตคอลและการเข้ารหัส) และภาระของฐานข้อมูลในช่วงเวลาทุก 1 นาที แม้ว่าแท็บการใช้งานจะให้ภาพรวมที่แม่นยำยิ่งขึ้นเกี่ยวกับประสิทธิภาพโดยรวมของฐานข้อมูล แต่คุณอาจเจาะลึกได้ไม่เพียงพอที่จะแก้ปัญหาด้านประสิทธิภาพที่อาจเกิดขึ้น

ใช้ Cloud Monitoring

เมื่อใช้ Cloud Monitoring จาก Google Cloud คุณจะใช้เครื่องมือสำรวจเมตริกเพื่อดูเมตริกประสิทธิภาพแต่ละรายการ หรือสร้างแดชบอร์ดต่างๆ ด้วยแผนภูมิที่แสดงการผสมผสานเมตริกประสิทธิภาพต่างๆ ในช่วงเวลาต่างๆ ได้ การผสานรวม Realtime Database กับ Cloud Monitoring จะให้รายละเอียดในระดับลึกที่สุด

ขั้นตอนในการตั้งค่า Cloud Monitoring มีอธิบายอยู่ในตรวจสอบการใช้ฐานข้อมูล

ดูเคล็ดลับเกี่ยวกับการใช้Cloud Monitoringเมตริกที่เฉพาะเจาะจงเพื่อตรวจหาปัญหาด้านประสิทธิภาพได้ที่ส่วนต่อไปนี้

ตรวจสอบประสิทธิภาพใน Cloud Monitoring

หากพบปัญหาด้านประสิทธิภาพ รวมถึงเวลาในการทํางานหรือเวลาในการตอบสนอง คุณอาจต้องใช้ Cloud Monitoring เพื่อตรวจสอบเมตริกต่อไปนี้ โปรดทราบว่าชื่อประเภทเมตริกทั้งหมดจะมี firebasedatabase.googleapis.com/ นำหน้า

ชื่อเมตริก คำอธิบาย
ภาระงานของฐานข้อมูล

io/database_load ใช้เมตริกนี้เพื่อตรวจสอบปริมาณแบนด์วิดท์ฐานข้อมูลที่ใช้งานได้ซึ่งใช้ในการประมวลผลคำขอเมื่อเวลาผ่านไป คุณอาจพบปัญหาด้านประสิทธิภาพเมื่อภาระของฐานข้อมูลใกล้ถึงแบนด์วิดท์ทั้งหมดที่ใช้ได้ นอกจากนี้ คุณยังดูได้ว่าการดำเนินการประเภทใดใช้การโหลดมากที่สุด และแก้ปัญหาตามความเหมาะสมได้ ภาระงานที่รายงานอาจมากกว่า 100% สำหรับการดำเนินการที่ใช้เวลานานกว่า 1 นาที กรณีนี้เกิดขึ้นเมื่อแบนด์วิดท์ทั้งหมดที่ใช้ในหลายนาทีถูกบีบอัดเป็นช่วงเวลาการรายงาน 1 นาทีหลังจากการดำเนินการเสร็จสมบูรณ์

เครือข่ายปิดใช้เนื่องจากใช้เกิน

network/disabled_for_overages เมตริกนี้แสดงการหยุดทำงานที่อาจเกิดขึ้นหาก Realtime Database ของคุณใช้แบนด์วิดท์หรือเครือข่ายเกินขีดจำกัด

ปิดใช้พื้นที่เก็บข้อมูลสำหรับพื้นที่เก็บข้อมูลเกิน

storage/disabled_for_overages เมตริกนี้แสดงการหยุดทำงานที่อาจเกิดขึ้นหาก Realtime Database ของคุณใช้พื้นที่เก็บข้อมูลเกินขีดจำกัด

รวมเมตริกในแผนภูมิบนแดชบอร์ดเพื่อดูข้อมูลเชิงลึกและภาพรวมที่เป็นประโยชน์ ตัวอย่างเช่น ให้ลองใช้ชุดค่าผสมต่อไปนี้

  • การดำเนินการ: ใช้เมตริก io/database_load เพื่อดูปริมาณการโหลดฐานข้อมูลทั้งหมดที่การดำเนินการแต่ละประเภทใช้ อย่าลืมจัดกลุ่ม io/database_loadตามประเภทเพื่อแก้ปัญหาการดำเนินการประเภทต่างๆ
  • พื้นที่เก็บข้อมูล: ใช้ storage/limit และ storage/total_bytes เพื่อตรวจสอบปริมาณพื้นที่เก็บข้อมูลที่ใช้เทียบกับขีดจำกัดพื้นที่เก็บข้อมูล Realtime Database นอกจากนี้ คุณยังเพิ่ม storage/disabled_for_overages เพื่อดูว่าแอปของคุณหยุดทำงานหรือไม่เนื่องจากใช้พื้นที่เก็บข้อมูลเกินขีดจำกัด
  • Overhead ของ SSL: ใช้ network/https_requests_count เพื่อตรวจสอบจํานวนคำขอการเชื่อมต่อ SSL ที่ฐานข้อมูลได้รับ และแยกคำขอที่ใช้ตั๋วเซสชัน SSL ที่มีอยู่ซ้ำด้วยตัวกรอง reused_ssl_session คุณสามารถวัดค่านี้เทียบกับ network/sent_bytes_count และ network/sent_payload_and_protocol_bytes_count เพื่อตรวจสอบว่าแอปของคุณใช้ตั๋วเซสชัน SSL อย่างมีประสิทธิภาพหรือไม่

นอกจากนี้ คุณยังตั้งค่าการแจ้งเตือนผ่าน Cloud Monitoring และรับการแจ้งเตือนตามเมตริก Realtime Database ได้ด้วย เช่น คุณเลือกรับการแจ้งเตือนได้หาก io/database_load ใกล้จะถึงเกณฑ์ที่กำหนด

ดูรายการเมตริก Realtime Database ทั้งหมดที่ใช้ได้ผ่าน Cloud Monitoring

ประเภทภาระงานของฐานข้อมูล

เมตริก io/database_load ยังมีป้ายกำกับประเภทการดำเนินการที่ทำให้เกิดโหลดด้วย ประเภทการดำเนินการที่วัดได้มีดังนี้

  • admin: การดำเนินการของผู้ดูแลระบบ เช่น การตั้งกฎและการอ่านข้อมูลเมตาของโปรเจ็กต์
  • auth: การยืนยันการตรวจสอบสิทธิ์จากบัญชีบริการหรือ Firebase การตรวจสอบสิทธิ์สําหรับไคลเอ็นต์รายเดียว
  • client_management: การจัดการการเพิ่มและการนำการเชื่อมต่อที่เกิดขึ้นพร้อมกันออก ซึ่งรวมถึงการดำเนินการยกเลิกการเชื่อมต่อในการนำออก
  • get_shallow: การดึงข้อมูลจาก REST GET ด้วย shallow=true
  • get: การจัดการการดำเนินการ GET ของ REST
  • listen: การดึงข้อมูลเริ่มต้นสําหรับการดำเนินการ on และ once จากไคลเอ็นต์ที่เชื่อมต่อ
  • on_disconnect: การลงทะเบียนการดำเนินการยกเลิกการเชื่อมต่อจากไคลเอ็นต์
  • put: การจัดการการดำเนินการ set จากไคลเอ็นต์หรือการดำเนินการ REST PUT
  • transaction: การทำธุรกรรมจากคําขอ REST แบบมีเงื่อนไขหรือการดำเนินการจากไคลเอ็นต์transaction
  • update: การจัดการการดำเนินการ update หรือคําขอ REST PATCH

ตรวจสอบกฎความปลอดภัยใน Cloud Monitoring

นอกจากนี้ คุณยังวิเคราะห์การประเมินกฎความปลอดภัยได้ด้วย โปรดทราบว่าชื่อเมตริกทุกประเภทจะมีfirebasedatabase.googleapis.com/อยู่ข้างหน้า

ชื่อเมตริก คำอธิบาย
การประเมินกฎ rules/evaluation_count. จํานวนการประเมินกฎฐานข้อมูลเรียลไทม์ที่ดำเนินการเพื่อตอบสนองคําขอเขียนหรืออ่าน คุณสามารถแจกแจงเมตริกนี้ตามผลลัพธ์ของคําขอ (อนุญาต ปฏิเสธ หรือข้อผิดพลาด)

ปรับแต่งแผนภูมิ Cloud Monitoring สำหรับการประเมินกฎตามต้องการ เช่น โดยการกรองผลการประเมินที่เฉพาะเจาะจง เช่น อนุญาต ปฏิเสธ หรือข้อผิดพลาด การตั้งค่าและการปรับแต่งแผนภูมิจะอยู่ในหัวข้อตรวจสอบการใช้ฐานข้อมูล

ดูรายการเมตริก Realtime Database ทั้งหมดที่ใช้ได้ผ่าน Cloud Monitoring