เกณฑ์มาตรฐานสำหรับเซิร์ฟเวอร์ Linux: ตัวเลือกเครื่องมือแบบเปิด

เรายังคงพูดคุยเกี่ยวกับเครื่องมือในการประเมินประสิทธิภาพของ CPU บนเครื่อง Linux วันนี้ในเนื้อหา: temci, uarch-bench, likwid, perf-tools และ llvm-mca

เกณฑ์มาตรฐานเพิ่มเติม:

เกณฑ์มาตรฐานสำหรับเซิร์ฟเวอร์ Linux: ตัวเลือกเครื่องมือแบบเปิด
ภาพถ่าย — ลูคัส เบลเซค — อันสแปลช

เทมชิ

นี่เป็นเครื่องมือสำหรับประมาณเวลาดำเนินการของสองโปรแกรม โดยพื้นฐานแล้วจะช่วยให้คุณสามารถเปรียบเทียบเวลาดำเนินการของสองแอปพลิเคชันได้ ผู้เขียนยูทิลิตี้นี้เป็นนักศึกษาจากประเทศเยอรมนี Johannes Bechberger ผู้พัฒนาสิ่งนี้โดยเป็นส่วนหนึ่งของวิทยานิพนธ์ระดับปริญญาตรีของเขาในปี 2016 เครื่องมือประจำวันนี้ จัดจำหน่ายโดย ได้รับอนุญาตภายใต้สัญญาอนุญาตสาธารณะทั่วไปของ GNU

Johannes ต้องการสร้างเครื่องมือที่ช่วยให้เขาวัดประสิทธิภาพของระบบคอมพิวเตอร์ในสภาพแวดล้อมที่มีการควบคุมได้ ดังนั้นหนึ่งในคุณสมบัติหลักของ temci ก็คือความสามารถในการตั้งค่าสภาพแวดล้อมการทดสอบ ตัวอย่างเช่น, หนึ่งสามารถ: เปลี่ยนการตั้งค่าตัวจัดการความถี่ CPU ปิดการใช้งาน ไฮเปอร์เธรดดิ้ง และแคช L1 และ L2 ปิดโหมดเทอร์โบบนโปรเซสเซอร์ Intel ฯลฯ สำหรับการวัดประสิทธิภาพ temci ใช้เครื่องมือ เวลา, perf_stat и การรุก.

นี่คือลักษณะของยูทิลิตี้ในกรณีแรก:

# compare the run times of two programs, running them each 20 times
> temci short exec "sleep 0.1" "sleep 0.2" --runs 20
Benchmark 20 times                [####################################]  100%
Report for single runs
sleep 0.1            (   20 single benchmarks)
     avg_mem_usage mean =           0.000, deviation =   0.0
     avg_res_set   mean =           0.000, deviation =   0.0
     etime         mean =      100.00000m, deviation = 0.00000%
     max_res_set   mean =         2.1800k, deviation = 3.86455%
     stime         mean =           0.000, deviation =   0.0
     utime         mean =           0.000, deviation =   0.0

sleep 0.2            (   20 single benchmarks)
     avg_mem_usage mean =           0.000, deviation =   0.0
     avg_res_set   mean =           0.000, deviation =   0.0
     etime         mean =      200.00000m, deviation = 0.00000%
     max_res_set   mean =         2.1968k, deviation = 3.82530%
     stime         mean =           0.000, deviation =   0.0
     utime         mean =           0.000, deviation =   0.0

จากผลการเปรียบเทียบ ระบบจะสร้าง รายงานที่สะดวก ด้วยไดอะแกรม ตาราง และกราฟ ซึ่งทำให้ temci แตกต่างจากโซลูชันที่คล้ายคลึงกัน

ในบรรดาข้อบกพร่องของ temci นั้น "เยาวชน" ของมันโดดเด่น เพราะเหตุนี้เขา ไม่รองรับทุกอย่าง การกำหนดค่าฮาร์ดแวร์และซอฟต์แวร์ ตัวอย่างเช่น การทำงานบน macOS เป็นเรื่องยาก และคุณสมบัติบางอย่างไม่พร้อมใช้งานบนระบบที่ใช้ ARM ในอนาคต สถานการณ์อาจมีการเปลี่ยนแปลง เนื่องจากผู้เขียนกำลังพัฒนาโครงการอย่างแข็งขัน และจำนวนดาวบน GitHub ก็ค่อยๆ เพิ่มขึ้น - เมื่อไม่นานมานี้ temci ด้วยซ้ำ กล่าวถึงในความคิดเห็น ในข่าวแฮ็กเกอร์

uarch-ม้านั่ง

ยูทิลิตี้สำหรับประเมินประสิทธิภาพของฟังก์ชัน CPU ระดับต่ำ พัฒนาโดยวิศวกร Travis Downs (ทราวิส ดาวน์ส). ล่าสุดเขาได้เขียนบล็อกแล้ว เรื่องประสิทธิภาพ บนหน้า GitHub ซึ่งพูดถึงเครื่องมือการเปรียบเทียบและสิ่งอื่น ๆ ที่เกี่ยวข้อง โดยทั่วไปแล้ว uarch-bench เพิ่งเริ่มได้รับความนิยม แต่มันก็ค่อนข้างธรรมดาอยู่แล้ว กล่าวถึง ผู้อยู่อาศัยของ Hacker News ในกระทู้เฉพาะเรื่องในฐานะเครื่องมือไปสู่การเปรียบเทียบ

Uarch-bench ช่วยให้คุณสามารถประเมินประสิทธิภาพของหน่วยความจำ ความเร็วในการโหลดข้อมูลแบบขนาน และงานทำความสะอาด YMM ลงทะเบียน. คุณสามารถดูผลลัพธ์การเปรียบเทียบที่สร้างขึ้นโดยโปรแกรมได้ ในที่เก็บข้อมูลอย่างเป็นทางการ ที่ด้านล่างของหน้า

เป็นที่น่าสังเกตว่า uarch-bench เช่น temci ตัดการเชื่อมต่อ ฟังก์ชั่น Intel Turbo Boost (จะเพิ่มความเร็วสัญญาณนาฬิกาของโปรเซสเซอร์โดยอัตโนมัติภายใต้โหลด) เพื่อให้ผลการทดสอบสอดคล้องกัน

สำหรับตอนนี้ โครงการยังอยู่ในช่วงเริ่มต้นของการพัฒนา ดังนั้น uarch-bench จึงไม่มีเอกสารประกอบโดยละเอียด และการดำเนินการอาจมีข้อบกพร่อง ตัวอย่างเช่น ความยากลำบากเป็นที่ทราบกันดี ด้วยการเปิดตัวบน Ryzen นอกจากนี้ยังรองรับเฉพาะการวัดประสิทธิภาพสำหรับสถาปัตยกรรม x86 เท่านั้น ผู้เขียนสัญญาว่าจะเพิ่มฟังก์ชันการทำงานเพิ่มเติมในอนาคตและขอเชิญคุณเข้าร่วมการพัฒนา

ลิขิต

นี่คือชุดเครื่องมือสำหรับประเมินประสิทธิภาพของเครื่อง Linux ด้วยโปรเซสเซอร์ Intel, AMD และ ARMv8 มันถูกสร้างขึ้นภายใต้การอุปถัมภ์ของกระทรวงศึกษาธิการและการวิจัยแห่งสหพันธรัฐเยอรมันในปี 2017 และเผยแพร่สู่โอเพ่นซอร์ส

ในบรรดาเครื่องมือ likwid เราสามารถเน้น likwid-powermeter ซึ่งแสดงข้อมูลจากการลงทะเบียน RAPL เกี่ยวกับพลังงานที่ใช้โดยระบบ เช่นเดียวกับ likwid-setFrequencies ซึ่งช่วยให้คุณควบคุมความถี่ของโปรเซสเซอร์ได้ คุณสามารถดูรายการทั้งหมดได้ ค้นหาในที่เก็บ.

เครื่องมือนี้ถูกใช้โดยวิศวกรที่เกี่ยวข้องกับการวิจัย HPC ตัวอย่างเช่นกับ likwid โรงงาน กลุ่มผู้เชี่ยวชาญจาก Regional Computing Center ของ University of Erlangen-Nuremberg (RRZE) ในประเทศเยอรมนี เธอยังมีส่วนร่วมในการพัฒนาชุดเครื่องมือนี้อีกด้วย

เกณฑ์มาตรฐานสำหรับเซิร์ฟเวอร์ Linux: ตัวเลือกเครื่องมือแบบเปิด
ภาพถ่าย — เคลม โอโนเจกูโอ — อันสแปลช

เครื่องมือที่สมบูรณ์แบบ

เครื่องมือนี้สำหรับวิเคราะห์ประสิทธิภาพของเซิร์ฟเวอร์ Linux ส่ง เบรนแดน เกร็ก. เขาเป็นหนึ่งในนักพัฒนา DTrace — กรอบงานการติดตามแบบไดนามิกสำหรับการดีบักแอปพลิเคชันแบบเรียลไทม์

perf-tools ขึ้นอยู่กับระบบย่อยเคอร์เนล perf_events และ ftrace ยูทิลิตี้เหล่านี้ช่วยให้คุณวิเคราะห์เวลาแฝง I/O (iosnoop) ติดตามอาร์กิวเมนต์การเรียกของระบบ (unccount, funcslower, funcgraph และ functrace) และรวบรวมสถิติเกี่ยวกับ “การเข้าชม” ในแคชของไฟล์ (cachestat) ในกรณีหลัง คำสั่งจะมีลักษณะดังนี้:

# ./cachestat -t
Counting cache functions... Output every 1 seconds.
TIME HITS MISSES DIRTIES RATIO BUFFERS_MB CACHE_MB
08:28:57 415 0 0 100.0% 1 191
08:28:58 411 0 0 100.0% 1 191
08:28:59 362 97 0 78.9% 0 8
08:29:00 411 0 0 100.0% 0 9

ชุมชนขนาดใหญ่พอสมควรได้ก่อตัวขึ้นรอบๆ เครื่องดนตรี (เกือบ 6 ดาวบน GitHub). และมีบริษัทหลายแห่งที่ใช้งาน perf-tools อย่างจริงจัง เป็นต้น Netflix. แต่เครื่องมือนี้กำลังได้รับการพัฒนาและแก้ไขเพิ่มเติม (แม้ว่าช่วงนี้จะมีการเผยแพร่การอัปเดตค่อนข้างน้อยก็ตาม) ดังนั้นข้อผิดพลาดอาจเกิดขึ้นในการดำเนินการ - ผู้เขียนเขียนว่าบางครั้งเครื่องมือที่สมบูรณ์แบบทำให้เกิดความตื่นตระหนกของเคอร์เนล

llvm-mca

ยูทิลิตี้ที่คาดการณ์จำนวนรหัสเครื่องที่ต้องใช้ทรัพยากรการประมวลผลบน CPU ที่แตกต่างกัน เธอ ประเมิน คำแนะนำต่อรอบ (IPC) และโหลดบนฮาร์ดแวร์ที่แอปพลิเคชันเฉพาะสร้างขึ้น

llvm-mca ถูกนำเสนอในปี 2018 โดยเป็นส่วนหนึ่งของโครงการ LLVMซึ่งกำลังพัฒนาระบบสากลสำหรับการวิเคราะห์ การเปลี่ยนแปลง และการเพิ่มประสิทธิภาพของโปรแกรม เป็นที่ทราบกันดีว่าผู้เขียน llvm-mca ได้รับแรงบันดาลใจจากโซลูชันสำหรับการวิเคราะห์ประสิทธิภาพของซอฟต์แวร์ IACA จากอินเทล และพยายามสร้างทางเลือกอื่น และจากข้อมูลของผู้ใช้ ผลลัพธ์ของเครื่องมือ (เค้าโครงและปริมาณ) คล้ายกับ IACA จริงๆ - ตัวอย่าง สามารถพบได้ที่นี่. อย่างไรก็ตาม llvm-mca ยอมรับเท่านั้น ไวยากรณ์ของ AT&Tดังนั้นคุณจึงมักจะต้องใช้ตัวแปลงจึงจะใช้งานได้

สิ่งที่เราเขียนเกี่ยวกับบล็อกและโซเชียลเน็ตเวิร์กของเรา:

เกณฑ์มาตรฐานสำหรับเซิร์ฟเวอร์ Linux: ตัวเลือกเครื่องมือแบบเปิด "เสื่อ. โมเดลวอลล์สตรีท" หรือวิธีเพิ่มประสิทธิภาพต้นทุนคลาวด์

เกณฑ์มาตรฐานสำหรับเซิร์ฟเวอร์ Linux: ตัวเลือกเครื่องมือแบบเปิด วิธีรักษาความปลอดภัยระบบ Linux ของคุณ: 10 เคล็ดลับ
เกณฑ์มาตรฐานสำหรับเซิร์ฟเวอร์ Linux: ตัวเลือกเครื่องมือแบบเปิด การลดความเสี่ยง: วิธีที่จะไม่สูญเสียข้อมูลของคุณ

เกณฑ์มาตรฐานสำหรับเซิร์ฟเวอร์ Linux: ตัวเลือกเครื่องมือแบบเปิด หนังสือสำหรับผู้ที่เกี่ยวข้องกับการบริหารระบบอยู่แล้วหรือกำลังวางแผนเริ่มต้น
เกณฑ์มาตรฐานสำหรับเซิร์ฟเวอร์ Linux: ตัวเลือกเครื่องมือแบบเปิด ตัวเลือก: หนังสือห้าเล่มและหนึ่งหลักสูตรบนเครือข่าย

เกณฑ์มาตรฐานสำหรับเซิร์ฟเวอร์ Linux: ตัวเลือกเครื่องมือแบบเปิดพวกเราที่ 1cloud.ru ให้บริการฟรี”โฮสติ้ง DNS" คุณสามารถจัดการบันทึก DNS ได้ในบัญชีส่วนตัวบัญชีเดียว

ที่มา: will.com

เพิ่มความคิดเห็น