Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon ตัวชี้วัดสำคัญในการตรวจสอบการทำโปรไฟล์หน่วยความจำในท่อ CI/CD คืออะไร


ตัวชี้วัดสำคัญในการตรวจสอบการทำโปรไฟล์หน่วยความจำในท่อ CI/CD คืออะไร


ตัวชี้วัดที่สำคัญสำหรับการทำโปรไฟล์หน่วยความจำในท่อ CI/CD มุ่งเน้นไปที่ประสิทธิภาพการรวบรวมรายละเอียดการรวบรวมรายละเอียด (GC) และไมโคร-เมทริกที่เกี่ยวข้องกับหน่วยความจำเพื่อจับความไร้ประสิทธิภาพของหน่วยความจำในช่วงต้นและป้องกันปัญหาการผลิต ตัวชี้วัดเหล่านี้นอกเหนือไปจากการใช้หน่วยความจำทั่วไปเพื่อรวมถึงพฤติกรรมระดับไมโครที่สามารถบ่งบอกถึงการรั่วไหลของหน่วยความจำคอขวดหรือการจัดการหน่วยความจำที่ไม่มีประสิทธิภาพ การตรวจสอบตัวชี้วัดเหล่านี้ช่วยให้สามารถปรับปรุงประสิทธิภาพของแอปพลิเคชันลดการใช้งาน CPU และการตรวจจับความผิดพลาดเชิงรุก

Garbage Collection (GC) Micro-Metrics

1. เวลาหยุด GC เฉลี่ย: ตัวชี้วัดนี้วัดเวลาเฉลี่ยที่แอปพลิเคชันหยุดชั่วคราวในระหว่างเหตุการณ์การรวบรวมขยะแต่ละครั้ง เวลาหยุดชั่วคราวที่ต่ำกว่าบ่งบอกถึงการตอบสนองของแอปพลิเคชันที่ดีขึ้นเนื่องจาก GC หยุดหยุดการประมวลผลแอปพลิเคชันปกติชั่วคราว การติดตามสิ่งนี้ทำให้มั่นใจได้ว่าแอปพลิเคชันจะรักษาการตอบสนองในระหว่างรอบการทำความสะอาดหน่วยความจำ

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

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

4. อัตราการจัดสรรวัตถุ: สิ่งนี้สะท้อนให้เห็นถึงอัตราที่วัตถุถูกสร้างขึ้นในหน่วยความจำโดยทั่วไปจะวัดใน MB/วินาที อัตราการจัดสรรที่สูงสามารถทำให้เกิดรอบ GC บ่อยครั้งซึ่งอาจนำไปสู่การเพิ่ม CPU และความเครียดของหน่วยความจำ การตรวจสอบมันช่วยระบุแหลมฉับพลันที่สามารถลดประสิทธิภาพได้

5. การบริโภคซีพียูจาก GC: เนื่องจากการรวบรวมขยะมีค่าใช้จ่ายมาก CPU การติดตามเวลา CPU ที่จัดสรรให้กับกระบวนการ GC จึงเป็นสิ่งจำเป็น ภาระ CPU ที่สูงจาก GC บ่งชี้ถึงความไร้ประสิทธิภาพหรือความต้องการในการปรับแต่งโดยมีผลกระทบที่อาจเกิดขึ้นกับประสิทธิภาพของระบบโดยรวมและต้นทุนทรัพยากร

6. ความถี่ GC: นักสะสมขยะในท่อส่งความถี่บ่อยแค่ไหน รอบ GC บ่อยครั้งอาจส่งสัญญาณการจัดสรรหน่วยความจำหรือการรั่วไหลมากเกินไปซึ่งนำไปสู่การเสื่อมสภาพที่อาจเกิดขึ้นในประสิทธิภาพ

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

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

ตัวชี้วัดการใช้หน่วยความจำ

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

2. การใช้หน่วยความจำที่ไม่ใช่กอง: รวมถึง Metaspace และพื้นที่ JVM อื่น ๆ ที่ไม่เกี่ยวข้องกับกอง แต่สำคัญสำหรับแอปพลิเคชัน การตรวจสอบพื้นที่ที่ไม่ใช่กองสามารถระบุจุดแรงดันหน่วยความจำนอกกอง

3. การใช้หน่วยความจำดั้งเดิม: สำหรับแอปพลิเคชันที่ใช้ประโยชน์จากหน่วยความจำเนทีฟการติดตามการใช้งานสามารถป้องกันการอ่อนเพลียของหน่วยความจำ

4. อัตราการจัดสรรหน่วยความจำ: อัตราที่หน่วยความจำได้รับการจัดสรรและปล่อยโดยแอปพลิเคชันซึ่งมีผลต่อพฤติกรรม GC

5. จากอัตราความผิดพลาดของหน่วยความจำ: แม้ว่ามักจะเป็นเหตุการณ์ที่หายาก แต่การตรวจสอบการเกิดขึ้นหรือความเสี่ยงของ OutofMemoryError นั้นมีความสำคัญอย่างยิ่งต่อการหลีกเลี่ยงการชนหรือระบบการผลิต

ตัวชี้วัดระดับระบบที่เกี่ยวข้องกับหน่วยความจำ

1. การใช้งานการใช้งาน: สัญญาณการใช้งานที่สูงขึ้นของหน่วยความจำอ่อนเพลียในโฮสต์ประสิทธิภาพที่ลดลงและหมายถึงความจำเป็นในการทำโปรไฟล์หน่วยความจำใน CI/CD

2. อัตราความผิดพลาดของหน้า: ความผิดพลาดของหน้าเว็บที่เพิ่มขึ้นสามารถระบุการฟาดแบบหน่วยความจำซึ่งเป็นสัญญาณของแรงกดดันที่มากเกินไปใน RAM

3. ขนาดชุดถิ่นที่อยู่ (RSS): ส่วนของหน่วยความจำที่ครอบครองซึ่งจัดขึ้นใน RAM; การตรวจสอบ RSS ช่วยติดตามความทรงจำทางกายภาพที่กระบวนการใช้งานได้มากแค่ไหน

การรวมและเกณฑ์ใน CI/CD

- การเปิดใช้งานการบันทึก GC โดยละเอียดในสภาพแวดล้อม CI/CD (เช่นอาร์กิวเมนต์ JVM สำหรับบันทึก GC) ช่วยให้สามารถจับการวัด GC ที่ครอบคลุมในระหว่างการทดสอบประสิทธิภาพ
- บันทึกเหล่านี้สามารถแยกวิเคราะห์และวิเคราะห์โดยใช้เครื่องมือหรือ APIs ที่ให้ข้อมูลเชิงลึกและตรวจจับความผิดปกติเช่นการหยุด GC แบบยาว, GCs เต็มรูปแบบมากเกินไปหรือการใช้งานที่ผันผวน
- เกณฑ์สำหรับการวัดคีย์เช่น Max GC หยุดชั่วคราวเวลาหยุดชั่วคราวโดยเฉลี่ยและปริมาณงาน GC สามารถตั้งค่าต่อแอปพลิเคชันจำเป็นต้องล้มเหลวโดยอัตโนมัติเมื่อมีการ จำกัด เมื่อเกินขีด จำกัด การบังคับใช้มาตรฐานประสิทธิภาพ
- เกณฑ์ที่กำหนดเองมีความสำคัญเนื่องจากความต้องการหน่วยความจำแตกต่างกันไป: กระบวนการแบทช์ทนต่อการหยุด GC ที่ยาวนานขึ้นในขณะที่แอปพลิเคชันแบบโต้ตอบต้องการเวลาแฝงที่ต่ำมาก

ข้อควรพิจารณาเพิ่มเติม

- การตรวจสอบแนวโน้มเมื่อเวลาผ่านไปเป็นสิ่งจำเป็นสำหรับการตรวจจับการเสื่อมสภาพของหน่วยความจำแบบค่อยเป็นค่อยไปซึ่งอาจไม่ชัดเจนในการสร้างเดี่ยว
- เชื่อมโยงตัวชี้วัดหน่วยความจำกับตัวชี้วัดไปป์ไลน์อื่น ๆ เช่นอัตราการทดสอบความสำเร็จและสร้างระยะเวลาเพื่อทำความเข้าใจผลกระทบต่อความเสถียรของท่อโดยรวม
- การทำงานร่วมกันข้ามการพัฒนา QA และทีมปฏิบัติการทำให้มั่นใจได้ว่าตัวชี้วัดการทำโปรไฟล์หน่วยความจำสามารถดำเนินการได้และนำไปสู่การปรับปรุง
- รวมการทำโปรไฟล์หน่วยความจำเข้ากับประสิทธิภาพอัตโนมัติและการทดสอบโหลดภายในท่อส่ง CI/CD เพื่อจับปัญหาก่อน

โดยสรุปตัวชี้วัดที่สำคัญสำหรับการทำโปรไฟล์หน่วยความจำในท่อ CI/CD หมุนรอบตัวบ่งชี้ประสิทธิภาพการรวบรวมขยะรายละเอียดเช่นค่าเฉลี่ยและเวลาหยุดชั่วคราวสูงสุดปริมาณงาน GC ความถี่และค่าใช้จ่าย CPU ควบคู่ไปกับการวัดการใช้หน่วยความจำรวมถึงการใช้กองและการใช้งานที่ไม่ใช่กอง การตั้งค่าเกณฑ์เฉพาะแอปพลิเคชันและการรวมตัวชี้วัดเหล่านี้เข้ากับการวิเคราะห์อัตโนมัติรองรับการตรวจจับเชิงรุกและการป้องกันปัญหาประสิทธิภาพที่เกี่ยวข้องกับหน่วยความจำในสภาพแวดล้อมการผลิต