กลับไปหน้าบทความ

อ่าน 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
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Perf_(Linux)&oldid=1350177601 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ประสิทธิภาพ (ลินุกซ์)

perf (บางครั้งเรียกว่า perf_events [ 1 ] หรือ perf tools เดิมทีคือ Performance Counters for Linux , PCL ) [ 2 ] เป็น เครื่องมือ วิเคราะห์ประสิทธิภาพ ใน Linux...

การดำเนินการ

อินเทอร์เฟซระหว่างยูทิลิตี้ perf และเคอร์เนลประกอบด้วย การเรียกใช้ระบบ เพียงครั้งเดียว และดำเนินการผ่าน ตัวอธิบายไฟล์ และพื้นที่หน่วยความจำที่แมปไว้ [ 6 ] แตกต่างจาก LTTng หรือ oprofile เวอร์ชันเก่าไม่ จำเป็นต้อง ใช้เดมอน บริการ...

คำสั่งย่อย

คำสั่ง perf ใช้ร่วมกับคำสั่งย่อยหลายคำสั่ง:

การวิจารณ์

เอกสารประกอบของ perf ไม่ได้มีรายละเอียดมากนัก (ณ ปี 2014) ตัวอย่างเช่น ไม่ได้บันทึกเหตุการณ์ส่วนใหญ่หรืออธิบายชื่อแทน (มักใช้เครื่องมือภายนอกเพื่อรับชื่อและรหัสของเหตุการณ์ [ 15 ] ) [ 16 ] เครื่องมือ perf ยังไม่สามารถวิเคราะห์โปรไฟล์ตามเวลาจริง [ 16 ]...