อ่าน 4 นาที
ประสิทธิภาพ (ลินุกซ์)
perf (บางครั้งเรียกว่า perf_events [ 1 ] หรือ perf tools เดิมทีคือ Performance Counters for Linux , PCL ) [ 2 ] เป็น เครื่องมือ วิเคราะห์ประสิทธิภาพ ใน Linux...
ประสิทธิภาพ (ลินุกซ์)
| เพอร์ฟ | |
|---|---|
| เขียนเป็น | ซี |
| ระบบปฏิบัติการ | เคอร์เนลลินุกซ์ |
| พิมพ์ | การตรวจสอบและทดสอบประสิทธิภาพ |
| ใบอนุญาต | จีเอ็นยู จีพีแอล |
| เว็บไซต์ | perf.wiki.kernel.org/index.php/Main_Page |
| ที่เก็บข้อมูล | https://github.com/torvalds/linux/tree/master/tools/perf |
perf (บางครั้งเรียกว่าperf_events [ 1 ]หรือperf toolsเดิมทีคือPerformance Counters for Linux , PCL ) [ 2 ]เป็น เครื่องมือ วิเคราะห์ประสิทธิภาพในLinuxซึ่งมีให้ใช้งานตั้งแต่เคอร์เนล Linuxเวอร์ชัน 2.6.31 ในปี 2552 [ 3 ]ยูทิลิตี้ควบคุมพื้นที่ผู้ใช้ชื่อperfสามารถเข้าถึงได้จากบรรทัดคำสั่ง และมี คำสั่งย่อยจำนวนหนึ่งสามารถทำการวิเคราะห์สถิติของระบบทั้งหมด (ทั้งเคอร์เนลและ โค้ด พื้นที่ผู้ใช้ ) ได้
รองรับ ตัว นับประสิทธิภาพฮาร์ดแวร์จุดติดตาม ตัวนับประสิทธิภาพซอฟต์แวร์ (เช่น hrtimer) และโพรบแบบไดนามิก (เช่นkprobesหรือ uprobes) [ 4 ] ในปี 2012 วิศวกร ของ IBM สองคน ได้ตระหนักว่า perf (พร้อมกับOProfile ) เป็นหนึ่งในสองเครื่องมือวิเคราะห์ ประสิทธิภาพที่ใช้กันมากที่สุดบน Linux [ 5 ]
การดำเนินการ
อินเทอร์เฟซระหว่างยูทิลิตี้ perf และเคอร์เนลประกอบด้วยการเรียกใช้ระบบ เพียงครั้งเดียว และดำเนินการผ่านตัวอธิบายไฟล์และพื้นที่หน่วยความจำที่แมปไว้[ 6 ] แตกต่างจากLTTng หรือ oprofileเวอร์ชันเก่าไม่ จำเป็นต้อง ใช้เดมอน บริการ เนื่องจากฟังก์ชันส่วนใหญ่ถูกรวมเข้าไว้ในเคอร์เนล ยูทิลิตี้ perf จะดัมพ์ข้อมูลดิบจากบัฟเฟอร์ที่แมปไว้ลงดิสก์เมื่อบัฟเฟอร์เต็ม ตามที่ R. Vitillo ( LBNL ) กล่าวไว้ การทำโปรไฟล์ที่ดำเนินการโดย perf มีค่าใช้จ่ายต่ำมาก[ 6 ]
ณ ปี 2010 สถาปัตยกรรมที่รองรับตัวนับฮาร์ดแวร์ ได้แก่x86 , PowerPC 64, UltraSPARC ( IIIและIV ), ARM (v5, v6, v7, Cortex -A8และ-A9 ), Alpha EV56 และSuperH [ 4 ] การใช้ Last Branch Records [ 7 ]ซึ่ง เป็นการใช้งาน การติดตามสาขาที่มีอยู่ใน ซีพียู Intelตั้งแต่Pentium 4นั้นมีให้ใช้งานในรูปแบบแพตช์[ 6 ] ตั้งแต่เวอร์ชัน 3.14 ของเคอร์เนล Linux mainlineซึ่งเผยแพร่เมื่อวันที่ 31 มีนาคม 2014 perf ยังรองรับการจำกัดพลังงานเฉลี่ยขณะทำงาน (RAPL) สำหรับการวัดการใช้พลังงาน ซึ่งมีให้ใช้งานเป็นคุณสมบัติของซีพียู Intel บางรุ่น[ 8 ] [ 9 ] [ 10 ]
Perf ได้รับการสนับสนุนโดยตรงในระบบปฏิบัติการ Linux ยอดนิยมหลายระบบ รวมถึงRed Hat Enterprise Linux (ตั้งแต่เวอร์ชัน 6 ที่วางจำหน่ายในปี 2010) [ 11 ]และDebianใน แพ็คเกจ linux-tools-common (ตั้งแต่Debian 6.0 (Squeeze) ที่วางจำหน่ายในปี 2011) [ 12 ]
คำสั่งย่อย
คำสั่ง perf ใช้ร่วมกับคำสั่งย่อยหลายคำสั่ง:
stat: วัดจำนวนเหตุการณ์ทั้งหมดสำหรับโปรแกรมเดียวหรือสำหรับระบบในช่วงเวลาหนึ่งtop: มุมมองแบบไดนามิก ที่โดดเด่นของฟังก์ชันยอดนิยมrecord: วัดและบันทึกข้อมูลการสุ่มตัวอย่างสำหรับโปรแกรมเดียว[ 13 ]report: วิเคราะห์ไฟล์ที่สร้างโดยบันทึกประสิทธิภาพ สามารถสร้างโปรไฟล์แบบแบนหรือแบบกราฟได้[ 13 ]annotate: ใส่คำอธิบายประกอบให้กับแหล่งที่มาหรือการประกอบsched: การติดตาม/การวัดการกระทำและเวลาแฝงของตัวกำหนดตารางเวลา[ 14 ]list: แสดงรายการกิจกรรมที่มีอยู่
การวิจารณ์
เอกสารประกอบของ perf ไม่ได้มีรายละเอียดมากนัก (ณ ปี 2014) ตัวอย่างเช่น ไม่ได้บันทึกเหตุการณ์ส่วนใหญ่หรืออธิบายชื่อแทน (มักใช้เครื่องมือภายนอกเพื่อรับชื่อและรหัสของเหตุการณ์[ 15 ] ) [ 16 ]เครื่องมือ perf ยังไม่สามารถวิเคราะห์โปรไฟล์ตามเวลาจริง[ 16 ]ซึ่งเป็นสิ่งที่ได้รับการแก้ไขโดยการเพิ่มการวิเคราะห์โปรไฟล์นอก CPU
ความปลอดภัย
ระบบย่อย perf ของเคอร์เนล Linux ตั้งแต่เวอร์ชัน 2.6.37 ถึง 3.8.8 และเคอร์เนล RHEL6 เวอร์ชัน 2.6.32 มีช่องโหว่ด้านความปลอดภัย ( CVE - 2013-2094 ) ซึ่งถูกใช้ประโยชน์เพื่อเข้าถึงสิทธิ์ระดับรูทโดยผู้ใช้ภายในเครื่อง[ 17 ] [ 18 ]ปัญหาเกิดจากการใช้ประเภทที่ไม่ถูกต้อง (int 32 บิตแทนที่จะเป็น 64 บิต) ในเส้นทางโค้ดการตรวจสอบ event_id [ 19 ]
ดูเพิ่มเติม
- รายชื่อเครื่องมือวิเคราะห์ประสิทธิภาพ
- โอโปรไฟล์
- อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชันประสิทธิภาพ
- การวิเคราะห์ประสิทธิภาพ (การเขียนโปรแกรมคอมพิวเตอร์)
ลิงก์ภายนอก
- วิกิของ perfบนkernel.org
- Arnaldo Carvalho de Melo เครื่องมือ 'perf' ใหม่ของ Linuxการนำเสนอจาก Linux Kongress กันยายน 2010
- ตารางแสดงการรองรับฮาร์ดแวร์ PMU – ตรวจสอบคอลัมน์ perf_event
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ประสิทธิภาพ (ลินุกซ์)
perf (บางครั้งเรียกว่า perf_events [ 1 ] หรือ perf tools เดิมทีคือ Performance Counters for Linux , PCL ) [ 2 ] เป็น เครื่องมือ วิเคราะห์ประสิทธิภาพ ใน Linux...
การดำเนินการ
อินเทอร์เฟซระหว่างยูทิลิตี้ perf และเคอร์เนลประกอบด้วย การเรียกใช้ระบบ เพียงครั้งเดียว และดำเนินการผ่าน ตัวอธิบายไฟล์ และพื้นที่หน่วยความจำที่แมปไว้ [ 6 ] แตกต่างจาก LTTng หรือ oprofile เวอร์ชันเก่าไม่ จำเป็นต้อง ใช้เดมอน บริการ...
คำสั่งย่อย
คำสั่ง perf ใช้ร่วมกับคำสั่งย่อยหลายคำสั่ง:
การวิจารณ์
เอกสารประกอบของ perf ไม่ได้มีรายละเอียดมากนัก (ณ ปี 2014) ตัวอย่างเช่น ไม่ได้บันทึกเหตุการณ์ส่วนใหญ่หรืออธิบายชื่อแทน (มักใช้เครื่องมือภายนอกเพื่อรับชื่อและรหัสของเหตุการณ์ [ 15 ] ) [ 16 ] เครื่องมือ perf ยังไม่สามารถวิเคราะห์โปรไฟล์ตามเวลาจริง [ 16 ]...