Pinterest ได้ผนึกกำลังกับ Intel เพื่อต่อยอด gProfiler ซึ่งเป็นเครื่องมือ Profiler แบบ Open-source ที่ให้การมองเห็นประสิทธิภาพการทำงานของระบบในระดับโครงสร้างพื้นฐานที่รองรับการใช้งานระดับอินเทอร์เน็ต
Pinterest ระบุว่าระบบนี้ทำงานบนอินสแตนซ์หลายแสนตัว ซึ่งรองรับผู้ใช้งานพร้อมกัน 640 ล้านคนต่อเดือน โดยรองรับบริการที่เขียนด้วย Java, Python, C++, Go และ Node.js
เครื่องมือนี้รวมข้อมูลประสิทธิภาพระดับระบบเข้ากับเครื่องมือเฉพาะด้าน เช่น async-profiler สำหรับ Java และ eBPF สำหรับ Python เพื่อสร้าง flame graph ที่เป็นหนึ่งเดียวกัน แม้ว่าแอปพลิเคชันจะใช้เวลาใน JVM, ไลบรารีเนทีฟ หรือ Linux kernel ก็ตาม
Agent จะค้นหาโปรเซส เริ่ม Profiler ที่เหมาะสม ผสาน stack trace และอัปโหลดโปรไฟล์โดยไม่จำเป็นต้องแก้ไขโค้ดแอปพลิเคชัน และข้อมูลจะถูกจัดเก็บใน S3 และวิเคราะห์ใน ClickHouse
ทั้ง Pinterest และ Intel ได้ปรับปรุงแพลตฟอร์มนี้ให้แข็งแกร่งสำหรับ Production โดยจัดการปัญหาการใช้ทรัพยากรของ Agent และการรับข้อมูลขนาดหลายเทราไบต์ก่อนนำไปใช้ในระดับ Fleet
ในขณะที่ Parca และ Grafana Pyroscope ใช้ eBPF สำหรับการทำ Profiling ทั่วทั้ง Fleet แต่ Intel VTune นั้นเน้นไปที่การวิเคราะห์ประสิทธิภาพเชิงวิศวกรรมมากกว่าการเป็น Cloud-native fleet profiler
ศัพท์ที่ควรรู้
- gProfiler – เครื่องมือ Profiler แบบ Open-source ที่ใช้ในการตรวจสอบประสิทธิภาพของระบบ
- Flame graph – ภาพกราฟิกที่แสดงให้เห็นว่าโปรเซสต่างๆ ใช้เวลาไปกับส่วนไหนบ้าง
- eBPF – เทคโนโลยีที่ใช้ในการเก็บข้อมูลเชิงลึกของเคอร์เนล Linux สำหรับการทำ Profiling
- JVM – Java Virtual Machine คือสภาพแวดล้อมที่รันแอปพลิเคชัน Java และอาจเป็นจุดที่ใช้เวลาในการประมวลผล
- S3 – บริการจัดเก็บข้อมูลบนคลาวด์ที่ใช้ในการเก็บไฟล์โปรไฟล์
ที่มา: infoq.com