Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

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

เซิร์ฟเวอร์ทุกเครื่องที่ใช้งานแอปที่ใช้ AppSignal จะส่งคอลเลกชันตัวอย่างและหน่วยวัดไปยัง Push API ของเราทุกๆ 30 วินาที

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

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

มีบางที่ที่เราทำให้แคชใช้ไม่ได้ เช่น เมื่อมีการอัปเดตเวลาประมวลผลแบบพุช หรือเมื่อเราตรวจพบเนมสเปซใหม่

 

เราได้เพิ่มตัวนับหลายตัวเพื่อพิจารณาว่าแคชตัวใดที่ใช้ไม่ได้เหล่านี้เป็นสาเหตุ ในตัวอย่างนี้ เราเพิ่ม 07 ตัวนับเพื่อนับจำนวนการตรวจสอบทั้งหมด และใช้คีย์เฉพาะ เช่น 15 และ 23 สำหรับการยกเลิกเฉพาะเจาะจง

 

การเพิ่มเมตริกที่กำหนดเองด้านบนทำให้เราสามารถสร้างกราฟการเข้าชมแคชของเราเมื่อเวลาผ่านไป เห็นได้ชัดว่าคีย์แคชใดที่ทำให้เกิดการสืบค้นเพิ่มขึ้น 36 รหัสไม่ถูกต้องสำหรับแต่ละคำขอ

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

จำนวนคำขอที่แคชได้ทั้งหมดจะนับเป็น 48 .

หลังจากปรับใช้การแก้ไขสำหรับปัญหานี้ จำนวนการใช้งานไม่ได้ลดลงเหลือศูนย์ตราบใดที่เนมสเปซสำหรับแอปไม่ได้รับการอัปเดต

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

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

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

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

โรเบิร์ต บีคแมน

ในฐานะผู้ร่วมก่อตั้ง Robert ได้เขียนความมุ่งมั่นครั้งแรกของเรา เขายังเป็นแบบอย่างในการสนับสนุนของเราและรู้ทุกอย่างเกี่ยวกับรายละเอียดเล็กๆ น้อยๆ ในโค้ด การเดินทางและรูปถ่าย (พร้อมกัน)

บทความทั้งหมดโดย Robert Beekman