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

การทำความเข้าใจค่าเฉลี่ยและเปอร์เซ็นไทล์:คู่มือสำหรับผู้เริ่มต้นเกี่ยวกับการวัดประสิทธิภาพ

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

ค่าเฉลี่ย

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

ใน Ruby นี่คือสิ่งที่การคำนวณเวลาตอบสนองเฉลี่ยจะมีลักษณะดังนี้:

 

หมายเหตุ :ในตัวอย่างนี้ เพื่อให้ผลลัพธ์ที่แม่นยำยิ่งขึ้นเมื่อทำการหาร เราจะแปลงค่าระยะเวลารวมเป็นแบบทศนิยม มิฉะนั้น Ruby จะปัดเศษลงเป็นจำนวนเต็มที่ใกล้ที่สุดโดยส่งคืน 09 แทน.

สถิติที่มีประโยชน์อีกประการหนึ่งคือค่ามัธยฐาน แม้ว่าจะฟังดูคล้ายกัน แต่ก็มีความแตกต่างระหว่างค่าเฉลี่ยและค่ามัธยฐานของชุดค่าต่างๆ

ค่ามัธยฐานคือค่าที่แยกครึ่งบนของชุดออกจากครึ่งล่างของชุด

สำหรับชุดข้อมูลที่มีค่าเป็นจำนวนคี่ คุณจะได้รับค่ามัธยฐานโดยการเรียงลำดับค่าก่อน จากนั้นเลือกตัวเลขตรงกลาง สำหรับเซตที่มีค่าจำนวนคู่ หลังจากเรียงลำดับแล้ว ค่ามัธยฐานจะเป็นค่าเฉลี่ยของตัวเลขตรงกลางสองตัว

 

สถิตินี้เป็นวิธีที่ดีในการดูว่าข้อมูลมีการบิดเบือนอย่างมากหรือมีส่วนหางยาว

 

ค่าเฉลี่ยสำหรับระยะเวลาข้างต้นคือ 16 เนื่องจากค่าผิดปกติเพียงครั้งเดียวที่ 2000ms ค่ามัธยฐานซึ่งมีค่าเพียง 24 แสดงว่ามีความเบ้

ด้วยการคำนวณทั้งค่าเฉลี่ยและมัธยฐานของชุดข้อมูล คุณจะทราบได้ว่ามีค่าผิดปกติขนาดใหญ่หรือหางยาว

ปัญหาค่าเฉลี่ย

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

รูปภาพด้านล่างแสดงเปอร์เซ็นไทล์ที่ 99 (สีน้ำเงิน) และ 90 (สีเขียว) และค่าเฉลี่ย (สีแดง) สำหรับการดำเนินการบางอย่างใน AppSignal จะเห็นว่าเส้นที่ 99 และ 90 ค่อนข้างไกลจากค่าเฉลี่ยและมีการปรับขึ้นบ้าง ซึ่งหมายความว่าแม้ว่าลูกค้าทั่วไปของคุณจะได้รับประสบการณ์ที่ดี แต่ก็มีผู้ใช้ที่ต้องรอนานกว่าเกือบสองเท่าในการแสดงผลหน้าเว็บ ตามหลักการแล้ว คุณคงอยากให้ค่าเหล่านี้อยู่ใกล้กันมากที่สุดเท่าที่จะเป็นไปได้ เพื่อสร้างประสบการณ์ที่สอดคล้องกันมากขึ้นสำหรับผู้ใช้ทุกคน

การทำความเข้าใจค่าเฉลี่ยและเปอร์เซ็นไทล์:คู่มือสำหรับผู้เริ่มต้นเกี่ยวกับการวัดประสิทธิภาพ

ตัวอย่างเช่น เมื่อกำหนดระยะเวลาต่อไปนี้โดยที่ลูกค้า 10 รายร้องขอหน้าเว็บที่มีระยะเวลาระหว่าง 100 มิลลิวินาทีถึง 1 วินาที

 

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

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

เปอร์เซ็นไทล์

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

รับชุด (เรียงลำดับ) ต่อไปนี้:

 

หากเราต้องการทราบเปอร์เซ็นไทล์ที่ 20 เราสามารถคำนวณได้ดังนี้:ในชุดจะมีค่าอยู่ 10 ค่า ค่าที่ต้องการอยู่ที่ตำแหน่ง 1 (43 ) เนื่องจากอาร์เรย์ของเราเริ่มต้นที่ศูนย์ เนื่องจากอาร์เรย์นี้มีจำนวนรายการเท่ากัน เราจึงต้องคำนวณค่าเฉลี่ยระหว่างดัชนี (56 ) และดัชนี + 1 (68 ). ซึ่งจะส่งผลให้มีค่า 75 สำหรับเปอร์เซ็นไทล์ที่ 20

การใช้งาน Ruby ที่ไร้เดียงสามากจะมีลักษณะดังนี้:

 

88 นี้ ฟังก์ชั่นดูคล้ายกับ 95 ของเรามาก การคำนวณและในความเป็นจริง 106 เหมือนกับ 111 เปอร์เซ็นไทล์

 

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

สิ่งแปลกประหลาด

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

 

นี่จะให้ 129 แก่เรา จาก 138 และเปอร์เซ็นไทล์ที่ 90 เท่ากับ 147 .

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

😏 หากคุณชอบบทความนี้ ยังมีอะไรอีกมากมายที่เราเขียนเกี่ยวกับประสิทธิภาพของ Ruby (บน Rails) โปรดดูรายการตรวจสอบการตรวจสอบประสิทธิภาพของ Ruby

คุณเกือบ 100% ของโพสต์นี้

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

การทำความเข้าใจค่าเฉลี่ยและเปอร์เซ็นไทล์:คู่มือสำหรับผู้เริ่มต้นเกี่ยวกับการวัดประสิทธิภาพ

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

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

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