• 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 เพื่อเพิ่มความแม่นยำและความยืดหยุ่นของการวิเคราะห์ประสิทธิภาพ

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น