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

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

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

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

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

ใช้เครื่องมือโปรไฟล์ 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 DatabaseCloud 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 DatabaseCloud Monitoring