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

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

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

ใช้เครื่องมือตรวจสอบฐานข้อมูลเรียลไทม์

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

ใช้เครื่องมือสร้างโปรไฟล์ฐานข้อมูลเรียลไทม์

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

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

ใช้คอนโซล Firebase

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

ใช้การตรวจสอบคลาวด์

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

ขั้นตอนในการตั้งค่า Cloud Monitoring อธิบายไว้ใน Monitor Database Use

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

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

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

ชื่อเมตริก คำอธิบาย
โหลดฐานข้อมูล

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

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

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

พื้นที่เก็บข้อมูลถูกปิดใช้งานเนื่องจากอายุเกิน

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

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

  • การดำเนินการ: ใช้ตัววัด io/database_load เพื่อดูว่าการดำเนินการแต่ละประเภทใช้โหลดฐานข้อมูลทั้งหมดเป็นจำนวนเท่าใด ตรวจสอบให้แน่ใจว่าได้จัดกลุ่ม io/database_load ตามประเภทเพื่อแก้ไขปัญหาการดำเนินการประเภทต่างๆ
  • พื้นที่จัดเก็บ: ใช้ storage/limit และ storage/total_bytes เพื่อตรวจสอบการใช้พื้นที่จัดเก็บข้อมูลของคุณโดยสัมพันธ์กับขีดจำกัดพื้นที่จัดเก็บฐานข้อมูลเรียลไทม์ คุณยังสามารถเพิ่ม 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 และรับการแจ้งเตือนตามตัวชี้วัดฐานข้อมูลเรียลไทม์ ตัวอย่างเช่น คุณสามารถเลือกรับการแจ้งเตือนได้หาก io/database_load ของคุณใกล้ถึงเกณฑ์ที่กำหนด

ดู รายการตัววัดฐานข้อมูลเรียลไทม์ทั้งหมดที่มีให้บริการผ่าน 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 จำนวนการประเมินกฎฐานข้อมูลเรียลไทม์ที่ดำเนินการเพื่อตอบสนองต่อคำขอเขียนหรืออ่าน คุณสามารถแยกย่อยเมตริกนี้ตามผลลัพธ์ของคำขอ (อนุญาต ปฏิเสธ หรือข้อผิดพลาด)

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

ดู รายการตัววัดฐานข้อมูลเรียลไทม์ทั้งหมดที่มีให้บริการผ่าน Cloud Monitoring