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

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

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

ใช้เครื่องมือการตรวจสอบ 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 นาที กรณีนี้จะเกิดขึ้นเมื่อแบนด์วิดท์ที่ใช้ทั้งหมด ในช่วงเวลาหลายนาทีและถูกย่ออยู่ในช่วงเวลาการรายงานเป็นนาที หลังจากการดำเนินการเสร็จสิ้น

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

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

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

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

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

ปรับแต่งแผนภูมิ Cloud Monitoring สำหรับการประเมินกฎตามต้องการ เช่น กรองผลลัพธ์การประเมินบางรายการ เช่น ALLOW, DENY หรือ ERROR การตั้งค่าและการปรับแต่งแผนภูมิครอบคลุมอยู่ใน ตรวจสอบการใช้ฐานข้อมูล

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