ความผิดปกติในการทดสอบโหลด
ทำความเข้าใจความผิดปกติในการทดสอบโหลด
ระหว่างการทดสอบโหลดบน LoadFocus คุณอาจสังเกตเห็น จุดสีแดง หรือเครื่องหมายบนแผนภูมิที่บ่งชี้การพุ่งขึ้นอย่างฉับพลันของ response time เครื่องหมายเหล่านี้คือ anomalies -- ค่าเบี่ยงเบนทางสถิติที่สำคัญในข้อมูลการทดสอบโหลดของคุณที่ควรให้ความสนใจอย่างใกล้ชิด
ความผิดปกติเหล่านี้แสดงถึงอะไร
จุดสีแดง เน้นจุดที่ response time พุ่งสูงเกินกว่าช่วงปกติที่สังเกตได้ในข้อมูลของคุณ อัลกอริทึมตรวจจับ anomaly โดยทั่วไปใช้วิธี standard deviation เพื่อระบุค่าผิดปกติ จุดข้อมูลที่อยู่ห่างจากค่าเฉลี่ย response time มากกว่า 2 standard deviations จะถูกทำเครื่องหมายว่าเป็น anomaly
ทำไมจึงสำคัญ
จุดที่อาจแตกหัก Anomalies สามารถส่งสัญญาณเกณฑ์ที่ระบบของคุณเริ่มมีปัญหาภายใต้โหลดที่เพิ่มขึ้น หากคุณเห็นการพุ่งขึ้นที่สอดคล้องกับจำนวน virtual users ที่สูงขึ้น อาจเป็นสัญญาณเตือนล่วงหน้าว่าโครงสร้างพื้นฐานหรือโค้ดแอปพลิเคชันของคุณใกล้ถึงขีดจำกัด
จุดคอขวด การเพิ่มขึ้นอย่างฉับพลันของ response time สามารถชี้ให้เห็น resource contention (CPU, memory หรือ disk), database locks หรือ cache misses การระบุ spikes เหล่านี้ช่วยให้คุณมุ่งเน้นความพยายามในการปรับปรุงไปยังพื้นที่ที่มีปัญหามากที่สุด
External Dependencies บริการหรือ APIs ของบุคคลที่สามยังสามารถสร้าง anomalies หากตอบสนองช้าหรือประสบปัญหาประสิทธิภาพของตัวเอง การติดตาม anomalies ช่วยให้คุณเห็นว่า dependencies เหล่านี้มีส่วนทำให้เกิด latency โดยรวมหรือไม่
ปัญหา Memory Garbage collection pauses หรือ memory leaks มักแสดงเป็น response time spikes เป็นระยะ หาก anomalies ของคุณเกิดขึ้นเป็นช่วงเวลาสม่ำเสมอ อาจบ่งชี้ปัญหาการจัดการ memory
สิ่งที่ควรตรวจสอบ
เมื่อ anomalies ปรากฏ ใช้รายการตรวจสอบต่อไปนี้เพื่อระบุสาเหตุ:
ความสัมพันธ์กับโหลด ตรวจสอบว่า anomalies เกิดขึ้นหลังจากโหลดข้ามเกณฑ์หนึ่งหรือไม่ ตัวอย่างเช่น คุณเห็น spike เมื่อเกิน 500 หรือ 1,000 virtual users หรือไม่?
เมตริกระบบ ตรวจสอบการใช้ CPU, memory, disk I/O และ network บนเซิร์ฟเวอร์ของคุณในเวลาที่ anomalies เกิดขึ้น มองหา resource saturation หรือการลดลงอย่างฉับพลันของประสิทธิภาพ
ประสิทธิภาพฐานข้อมูล หากแอปพลิเคชันของคุณพึ่งพาฐานข้อมูลอย่างมาก ตรวจสอบเวลาการรัน query, locks หรือ deadlocks ในขณะที่เกิด spike
เส้นทางโค้ด ระบุว่า API endpoints หรือ functions เฉพาะใดที่เกี่ยวข้องกับ anomalies ช่วยแยกว่าปัญหาจำกัดอยู่ที่ส่วนใดของโค้ด
ปัจจัยภายนอก บางครั้ง anomalies เกิดพร้อมกับ ปัญหาเครือข่าย, เหตุการณ์ deployment หรือความล่าช้าของ third-party API เชื่อมโยง timeline การทดสอบโหลดกับการเปลี่ยนแปลงภายนอกหรือเหตุการณ์ที่ทราบ
วิธีดำเนินการกับ Anomalies
การปรับขนาด หาก anomalies เกี่ยวข้องกับเกณฑ์โหลด พิจารณาการปรับขนาดโครงสร้างพื้นฐานหรือปรับปรุงโค้ดแอปพลิเคชันเพื่อรองรับ concurrency ที่สูงขึ้น
การปรับปรุง Caching และฐานข้อมูล ประเมินว่ากลยุทธ์ caching ที่ดีขึ้นหรือ database queries ที่ปรับปรุงแล้วสามารถลดโหลดบนระบบและลด spikes ได้หรือไม่
การตรวจสอบและการแจ้งเตือน ตั้งค่า alerts แบบเรียลไทม์และการตรวจสอบสำหรับสภาพแวดล้อม production เพื่อให้คุณจับ anomalies ก่อนที่จะส่งผลกระทบต่อผู้ใช้จริง
รันทดสอบซ้ำ หลังจากทำการเปลี่ยนแปลง รันการทดสอบโหลดซ้ำ เพื่อยืนยันว่า anomalies ได้รับการแก้ไขหรือต้องการการตรวจสอบเพิ่มเติม
สรุป
ความผิดปกติในการทดสอบโหลดทำหน้าที่เป็น สัญญาณเตือนล่วงหน้า สำหรับจุดคอขวดด้านประสิทธิภาพและความไม่เสถียรของระบบ โดยการใส่ใจค่าผิดปกติเหล่านี้อย่างใกล้ชิดและเชื่อมโยงกับเมตริกระบบอื่นๆ คุณสามารถระบุและแก้ไขปัญหาเชิงรุกก่อนที่จะลุกลามเป็นเหตุการณ์ใหญ่