- 0x.tools คือชุดยูทิลิตีโอเพนซอร์สสำหรับวิเคราะห์ประสิทธิภาพแอปพลิเคชันบน Linux
- ออกแบบมาโดยมุ่งเน้นความง่ายในการติดตั้งใช้งานและการพึ่งพาสิ่งอื่นให้น้อยที่สุด เพื่อลดความยุ่งยากในการแก้ปัญหาระบบ
- ไม่จำเป็นต้องอัปเกรด OS, ติดตั้งเคอร์เนลโมดูล, เฟรมเวิร์กมอนิเตอร์ขนาดใหญ่, Java agent หรือฐานข้อมูล
- สามารถวัดกิจกรรมได้ในระดับเธรดรายตัว พร้อมทั้งติดตามและสุ่มตัวอย่างการรันโค้ด, สถานะสลีป, system call และตำแหน่งการรอในเคอร์เนล
เปิดตัว xcapture-bpf & xtop 2.0.2 เบตา
- xcapture-bpf และ xtop คล้ายกับเครื่องมือ top ของ Linux แต่ใช้ eBPF เพื่อให้ดูข้อมูลประสิทธิภาพได้จากหลายมุมมอง
- สามารถเจาะลึกได้ตั้งแต่ภาพรวมระดับระบบ ไปจนถึงกิจกรรมของเธรดรายตัวและอีเวนต์ในเคอร์เนล
- eBPF สามารถโปรแกรมได้อย่างเต็มรูปแบบ และมีแผนจะใช้ความสามารถนี้ให้ได้มากที่สุด
การไฮไลต์ในเทอร์มินัลและ stacktile ของ xcapture-bpf
- ฟังก์ชันค้นหา/ไฮไลต์ข้อความในเทอร์มินัลและการเลื่อนหน้าจอทำงานร่วมกับรูปแบบ stacktile ใหม่ได้ดี
- stacktile สามารถใส่ข้อมูลได้หลากหลาย ไม่ใช่แค่ชื่อฟังก์ชัน แต่รวมถึงชื่อไฟล์หรือสาเหตุของการจัดสรรหน่วยความจำด้วย
การติดตั้ง xcapture-bpf
- xcapture-bpf ยังอยู่ในเวอร์ชันเบตา จึงไม่ควรรันบนระบบโปรดักชัน
- ใช้ eBPF และปัจจุบันอาศัย BCC กับ python3 สำหรับการดูข้อมูลและเป็นฟรอนต์เอนด์
- ทดสอบแล้วบน RHEL 8.1 หรือ Ubuntu 24.04 ขึ้นไป
เครื่องมือที่รวมมา
- มีทั้งเครื่องมือแบบอินเทอร์แอ็กทีฟเรียลไทม์และเครื่องมือโปรไฟล์ความถี่ต่ำ
- คำอธิบายเครื่องมือหลัก:
psn: สุ่มตัวอย่างกิจกรรมของเธรดที่ทำงานสูงสุดในขณะนั้น
xcapture: ตัวสุ่มตัวอย่างสถานะเธรดที่มีโอเวอร์เฮดต่ำ
xcapture-bpf: ตัวสุ่มตัวอย่างสถานะเธรดแบบตั้งโปรแกรมได้และมีโอเวอร์เฮดต่ำโดยใช้ eBPF
syscallargs: แสดงรายการ system call และอาร์กิวเมนต์
schedlat: แสดงค่า latency ของการจัดตาราง CPU สำหรับโปรเซสเดี่ยว
run_xcapture.sh: สคริปต์เดมอนแบบง่ายสำหรับรัน xcapture อย่างต่อเนื่อง
run_xcpu.sh: สุ่มตัวอย่างสแตกของเธรดบน CPU แบบต่อเนื่องที่ความถี่ต่ำ
วิธีใช้งานและตัวอย่างเอาต์พุต
- ใช้
xcapture เพื่อสุ่มตัวอย่างกิจกรรมของเธรดบน Linux และแสดงผลแบบความกว้างคงที่
- สามารถส่งออกเป็นไฟล์ CSV เพื่อวิเคราะห์ประสิทธิภาพผ่านบรรทัดคำสั่งได้
การติดตั้งและการใช้งาน
xcapture, schedlat, psn สุ่มตัวอย่างจากระบบไฟล์ /proc เหมือนเครื่องมือมาตรฐานของ Linux
- ทำงานได้บนเคอร์เนล Linux เวอร์ชัน 2.6 ขึ้นไปโดยไม่ต้องตั้งค่าเพิ่มเติม
FAQ
- 0x.tools เป็นผลิตภัณฑ์โอเพนซอร์สภายใต้ไลเซนส์ GPL v3
- โอเวอร์เฮดในการวัดต่ำกว่า 1% ของความสามารถ CPU ของเซิร์ฟเวอร์
- สามารถใช้งานในสภาพแวดล้อมโปรดักชันได้อย่างปลอดภัย
- เหตุผลที่ใช้การสุ่มตัวอย่าง /proc แทน Perf และ eBPF: เพราะในองค์กรเดิมไม่สามารถใช้ eBPF สำหรับโปรดักชันขนาดใหญ่ได้
ความเห็นของ GN⁺
- 0x.tools เป็นชุดเครื่องมือทรงพลังสำหรับการวิเคราะห์ประสิทธิภาพของระบบ Linux
- มีประโยชน์เพราะใช้ eBPF เพื่อให้ดูข้อมูลประสิทธิภาพได้จากหลายมุมมอง
- ออกแบบมาให้ใช้งานในสภาพแวดล้อมโปรดักชันได้อย่างปลอดภัย
- เมื่อเทียบกับเครื่องมือวิเคราะห์ประสิทธิภาพอื่น จุดเด่นคือโอเวอร์เฮดต่ำและติดตั้งง่าย
- ใช้เทคโนโลยีสมัยใหม่อย่าง eBPF เพื่อเพิ่มความแม่นยำและความยืดหยุ่นของการวิเคราะห์ประสิทธิภาพ
ยังไม่มีความคิดเห็น