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

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

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

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

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

ใช้เครื่องมือวิเคราะห์โปรไฟล์ Realtime Database

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

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

ใช้คอนโซล Firebase

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

ใช้ Cloud Monitoring

เมื่อใช้ Cloud Monitoring จาก Google Cloud คุณจะใช้ Metrics Explorer เพื่อดูเมตริกประสิทธิภาพแต่ละรายการ หรือสร้างแดชบอร์ดต่างๆ ที่มีแผนภูมิซึ่งแสดงชุดค่าผสมของเมตริกประสิทธิภาพต่างๆ เมื่อเวลาผ่านไปได้ การผสานรวม 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 เพื่อดูว่าแอปหยุดทำงานเนื่องจากพื้นที่เก็บข้อมูลเกินขีดจำกัดหรือไม่
  • ค่าใช้จ่ายเพิ่มเติมของ 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: การจัดการการดำเนินการ REST GET
  • listen: กำลังดึงข้อมูลเริ่มต้นสำหรับการดำเนินการ on และ once จากไคลเอ็นต์ที่เชื่อมต่อ
  • on_disconnect: กำลังลงทะเบียนการดำเนินการยกเลิกการเชื่อมต่อจากไคลเอ็นต์
  • put: กำลังจัดการการดำเนินการ set จากไคลเอ็นต์หรือการดำเนินการ REST PUT
  • transaction: การทำธุรกรรมจากคำขอ REST แบบมีเงื่อนไขหรือการดำเนินการ transaction จากไคลเอ็นต์
  • update: การจัดการการดำเนินการ update หรือคำขอ REST PATCH

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

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

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

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

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