Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม Bash

Guider – เครื่องมือวิเคราะห์ประสิทธิภาพระบบ Linux ที่ครบวงจรที่สุด

Guider เป็นเครื่องมือวิเคราะห์ประสิทธิภาพระบบทั่วไป (system-wide performance analysis tool) ที่ฟรีและโอเพนซอร์ส เขียนด้วยภาษา Python สำหรับระบบปฏิบัติการ Linux

Guider ออกแบบมาเพื่อวัดการใช้ทรัพยากรระบบและติดตามพฤติกรรมของระบب ทำให้การวิเคราะห์ปัญหาประสิทธิภาพและปรับแต่งประสิทธิภาพ (performance tuning) ง่ายขึ้นอย่างมาก

เครื่องมือนี้แสดงข้อมูลเชิงลึกมากมายเกี่ยวกับ CPU, หน่วยความจำ, การใช้งานดิสก์ต่อเธรด (thread), กระบวนการ (processes), และฟังก์ชันระบบ (user/kernel) ช่วยให้คุณสามารถหาต้นเหตุของปัญหาประสิทธิภาพที่ผิดปกติหรือปรับปรุงประสิทธิภาพระบบทั้งหมดได้อย่างมีประสิทธิภาพ

ข้อกำหนดของระบบ

  • Linux kernel (รุ่น 3.0 ขึ้นไป)
  • Python (รุ่น 2.7 ขึ้นไป)
  • ขนาด Kernel buffer อย่างน้อย 40960

ในบทความนี้ เราจะแนะนำวิธีติดตั้ง Guider จากซอร์สโค้ด และใช้งานเพื่อวิเคราะห์และปรับปรุงประสิทธิภาพของระบบปฏิบัติการ Linux

วิธีสร้างและติดตั้ง Guider – เครื่องมือวิเคราะห์ประสิทธิภาพ Linux

เพื่อติดตั้ง Guider บน Linux ให้โคลนที่เก็บข้อมูล (repository) ของ Guider จาก GitHub ดังนี้:

$ git clone https://github.com/iipeace/guider.git
$ cd guider
$ guider.py [รันโดยไม่ต้องติดตั้ง]

คุณสามารถรัน guider.py ได้ทันทีโดยไม่ต้องติดตั้ง หรือใช้คำสั่งด้านล่างเพื่อสร้างและติดตั้ง:

$ make
$ sudo make install

หากระบบของคุณใช้ PIP สามารถติดตั้งได้ด้วยคำสั่ง:

$ sudo pip install --pre guider

วิธีใช้ Guider วิเคราะห์ประสิทธิภาพระบบ Linux

โดยปกติ Guider จะตั้งค่าขนาดบัฟเฟอร์ (buffer size) ให้เอง แต่หากล้มเหลวและแสดงข้อผิดพลาด ให้ตรวจสอบขนาดบัฟเฟอร์ด้วยคำสั่ง:

$ sudo cat /sys/kernel/debug/tracing/buffer_size_kb

หากค่าต่ำกว่า 40960 ให้ตั้งค่าใหม่ดังนี้:

$ echo 40960 | sudo tee /sys/kernel/debug/tracing/buffer_size_kb

Guider – เครื่องมือวิเคราะห์ประสิทธิภาพระบบ Linux ที่ครบวงจรที่สุด

คุณสามารถเรียกใช้ Guider ในโหมด thread, function, top, file และ system ด้วยไวยากรณ์:

$ guider [ mode | file ] [options]

เช่นเดียวกับเครื่องมือวิเคราะห์ประสิทธิภาพ Linux แบบบรรทัดคำสั่งส่วนใหญ่ คุณจะต้องใช้หน้าจอกว้างเพื่อดูผลลัพธ์ของ Guider ได้ชัดเจน

วิเคราะห์การใช้งาน CPU ในโหมด Thread

คำสั่งต่อไปนี้จะเริ่มการติดตาม (tracing) แบบแม่นยำในโหมด thread (กด [Ctrl+c] เพื่อหยุดการติดตาม) เมื่อหยุดแล้ว จะบันทึกข้อมูลและเริ่มกระบวนการวิเคราะห์ แล้วแสดงรายงานวิเคราะห์

$ sudo guider record

Guider – เครื่องมือวิเคราะห์ประสิทธิภาพระบบ Linux ที่ครบวงจรที่สุด

รายงานวิเคราะห์ประกอบด้วยข้อมูลระบบทั่วไป, ข้อมูล OS, CPU, หน่วยความจำ, ดิสก์, และข้อมูลเธรดที่ท้ายของเพจเจอร์ (pager) ใช้ลูกศร Up และ Down เพื่อเลื่อนดูได้

Guider – เครื่องมือวิเคราะห์ประสิทธิภาพระบบ Linux ที่ครบวงจรที่สุด

ตรวจสอบระบบ Linux แบบเรียลไทม์ในโหมด Top

คำสั่งต่อไปนี้จะแสดงการใช้ทรัพยากรของกระบวนการ Linux แบบเรียลไทม์:

$ sudo guider.py top

Guider – เครื่องมือวิเคราะห์ประสิทธิภาพระบบ Linux ที่ครบวงจรที่สุด

คุณสามารถตั้งค่าช่วงเวลาแสดงผลด้วยสวิตช์ -i:

$ sudo guider top -i 2

เพื่อตรวจสอบข้อมูลการใช้ทรัพยากรทั้งหมด ใช้แฟล็ก -a:

$ sudo guider top -a

วิเคราะห์กระบวนการ Linux เดียวด้วย PID

หา Process ID ก่อนด้วยคำสั่ง pidof หรือ ps:

$ pidof apache2 OR $ ps -e | grep apache2

จากนั้นวิเคราะห์การใช้ทรัพยากรด้วยคำสั่ง (จะแสดง CPU cycle, instruction number, IPC, faults, cache miss, branch miss และอื่นๆ แบบเรียลไทม์) สวิตช์ -g ตั้งค่าตัวกรองเป็น PID:

$ sudo guider top -eP -g 1913

Guider – เครื่องมือวิเคราะห์ประสิทธิภาพระบบ Linux ที่ครบวงจรที่สุด

บันทึกเอาต์พุตของ Guider ลงไฟล์

คุณสามารถบันทึกข้อมูลการติดตามหรือเอาต์พุตใดๆ ลงไฟล์เพื่อวิเคราะห์ภายหลัง คำสั่งนี้บันทึกข้อมูล trace ไว้ในไฟล์ guider.dat (ค่าเริ่มต้น) ในไดเรกทอรีปัจจุบัน (ระบุตำแหน่งอื่นได้):

$ sudo guider -s .

เพื่อบันทึกเอาต์พุตอื่นๆ ลงไฟล์ guider.out (ค่าเริ่มต้น):

$ sudo guider top -o .

ตรวจสอบไฟล์เหล่านี้ด้วยคำสั่ง cat:

$ cat guider.dat
$ cat guider.out

ตัวเลือกและตัวอย่างการใช้งาน還有อีกมากมาย ดูได้จากหน้าช่วยเหลือของ Guider:

$ guider -h

ที่เก็บ GitHub ของ Guider: https://github.com/iipeace/guider

สรุป

Guider เป็นเครื่องมือวิเคราะห์ประสิทธิภาพระบบทั่วไปที่ยอดเยี่ยมสำหรับอนาคต เหมาะสำหรับผู้เชี่ยวชาญ Linux ลองใช้ฟีเจอร์ต่างๆ และแบ่งปันความคิดเห็นผ่านฟอร์มด้านล่าง หากคุณรู้จักเครื่องมือคล้ายๆ นี้ กรุณาแจ้งให้เราทราบด้วย