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

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

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

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

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

ใช้เครื่องมือ Realtime Database โปรไฟล์

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

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

ใช้คอนโซล 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 เพื่อดูว่าแอปของคุณมีช่วงหยุดทำงานเนื่องจากใช้พื้นที่เก็บข้อมูลเกินขีดจำกัดหรือไม่
  • ส่วนเกินของ 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