วิธีตรวจสอบการใช้งาน CPU ใน Linux

How Check Cpu Utilization Linux



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

ในคู่มือนี้ ให้ดูวิธีตรวจสอบการใช้งาน CPU ใน Linux







การใช้งาน CPU ใน Linux

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



ระบบปฏิบัติการสมัยใหม่ได้รับการปรับให้เหมาะสมเพื่อใช้ CPU อย่างมีประสิทธิภาพมากที่สุด แม้แต่แอพอื่น ๆ ก็ได้รับการปรับให้เหมาะสมที่สุด อย่างไรก็ตาม ผู้ใช้อาจจะไม่ใช่ ในกรณีของฉัน ตัวอย่างเช่น ฉันเล่นเกมในขณะที่เปิดแท็บเบราว์เซอร์หลายร้อยแท็บและมีงานพื้นหลังหลายงานทำงานอยู่ ในขณะที่ซอฟต์แวร์ทั้งหมดได้รับการปรับให้เหมาะสม วิธีการใช้งานของฉันจะทำให้ CPU โหลดสูงขึ้น



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





บางครั้งการใช้งาน CPU ที่ผิดปกติอาจบ่งชี้ว่ามีการบุกรุกระบบ

จากข้อมูลทั้งหมดนี้ การตรวจสอบการใช้งาน CPU นั้นค่อนข้างจะชาญฉลาด



ตรวจสอบการใช้งาน CPU ใน Linux

ในกรณีของ Linux มีเครื่องมือมากมายในการตรวจสอบการใช้งาน CPU มีการเรียกระบบในตัวที่หลากหลายเพื่อแยกการอ่านประสิทธิภาพ เครื่องมือบางตัวติดตั้งมาพร้อมกับ Linux distros ทั้งหมด บางตัวอาจต้องติดตั้งด้วยตนเอง

วิธีการทั้งหมดต่อไปนี้แสดงให้เห็นบน Ubuntu 20.04.1 LTS อย่างไรก็ตาม มันจะทำงานได้ดีกับ distro สมัยใหม่อื่น ๆ

ตรวจสอบการใช้งาน CPU โดยใช้ top

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

เครื่องมือระดับบนสุดสามารถแสดงการใช้งาน CPU เปิดตัวเครื่องมือ

$สูงสุด

ในที่นี้ ประเด็นสำคัญที่ต้องเน้นคือบรรทัดที่สาม ค่าเอาต์พุตจะอธิบายสั้นๆ แต่ละค่าจะอธิบายระยะเวลาที่ CPU ใช้ในการดำเนินการบางอย่าง

  • เรา: เวลาที่ใช้ในการดำเนินการกับผู้คนในพื้นที่ผู้ใช้
  • sy: เวลาที่ใช้ในการรันกระบวนการพื้นที่เคอร์เนล
  • ni: เวลาที่ใช้ในการรันกระบวนการด้วยค่าที่กำหนดเอง (ตั้งค่าด้วยตนเอง) ที่ดี
  • id: เวลาที่ใช้ไปโดยเปล่าประโยชน์
  • wa: เวลาที่ใช้ในการรอคำขอ I/O ให้เสร็จสิ้น
  • สวัสดี: เวลาที่ใช้ในการให้บริการขัดจังหวะฮาร์ดแวร์
  • si: เวลาที่ใช้ในการให้บริการซอฟต์แวร์ขัดจังหวะ
  • st: เวลาที่สูญเสียไปในการรันเครื่องเสมือนหรือที่เรียกว่าเวลาขโมย

ตอนนี้คุณสามารถเรียงลำดับและกรองรายการกระบวนการด้วยปุ่มลัดต่างๆ ฉันได้อธิบายสิ่งที่เกี่ยวข้องกับการใช้งาน CPU แล้ว

  • ป: เรียงลำดับกระบวนการตามการใช้งาน CPU
  • I: ลบกระบวนการที่ไม่ได้ใช้งานออกจากรายการ หากต้องการเปลี่ยนกลับ ให้กด I อีกครั้ง
  • M: เรียงลำดับรายการตามการใช้หน่วยความจำ
  • S: เรียงลำดับรายการตามระยะเวลาที่กระบวนการทำงาน
  • U: กรองกระบวนการโดยเจ้าของ
  • K: ฆ่ากระบวนการ ต้องการ PID ของกระบวนการ

ตรวจสอบการใช้งาน CPU โดยใช้ htop

Htop และ top เป็นเครื่องมือเดียวกัน ทั้งสองมีคุณสมบัติเหมือนกันในแง่ของความสามารถในการตรวจสอบระบบ อย่างไรก็ตาม htop มอบประสบการณ์คุณภาพชีวิตที่ดีขึ้น

การแสดงผลเริ่มต้นของ htop นั้นใช้งานได้สะดวกกว่า UI มีความชัดเจนดีกว่าด้านบน ข้อความมีสีสันและน่ามอง นอกจากนี้ยังมีการเลื่อนทั้งแนวนอนและแนวตั้ง

แม้ว่า distros ส่วนใหญ่จะติดตั้งด้านบนตามค่าเริ่มต้น คุณต้องติดตั้ง htop ด้วยตนเอง เป็นการดีที่สุดที่จะติดตั้ง htop โดยใช้ snap เนื่องจากใช้งานได้กับ Linux distro สมมติว่าคุณติดตั้ง snappy (ตัวจัดการแพ็คเกจ snap) ให้รันคำสั่งต่อไปนี้

$sudosnapติดตั้ง htop

เปิดตัว htop

$htop

ฉันจะไม่พูดถึงอะไรเพิ่มเติมเนื่องจากการใช้ htop เหมือนกับด้านบน

ตรวจสอบการใช้งาน CPU โดยใช้ iostat

เครื่องมือ iostat รายงานสถิติการใช้งาน CPU และ I/O เป็นเครื่องมือง่ายๆ ที่มีเอาต์พุตที่เรียบง่าย อย่างไรก็ตาม จะรายงานเฉพาะสถิติในขณะที่เรียกใช้เครื่องมือเท่านั้น iostat ไม่มีการตรวจสอบระบบแบบเรียลไทม์ต่างจาก top หรือ htop

เครื่องมือ iostat มาเป็นส่วนหนึ่งของแพ็คเกจ sysstat มีอยู่ใน Linux distro เกือบทุกรุ่น สมมติว่าคุณได้ติดตั้งแพ็คเกจ sysstat แล้ว ไปกันเลย

เปิดตัว iostat

$iostat

สนใจรายงานเชิงลึกเพิ่มเติมหรือไม่? ใช้แฟล็ก -c เพื่อดูการใช้งาน CPU ของกระบวนการผู้ใช้ กระบวนการของระบบ การรอ I/O และเวลาที่ว่าง

$iostat-ค

ใช้แฟล็ก -x สำหรับสถิติเพิ่มเติม แฟล็ก -t จะกำหนดจำนวนครั้งที่ควรแสดงแต่ละรายงาน

$iostat-ความปีติยินดี 5 2

ตรวจสอบการใช้งาน CPU โดยใช้ mpstat

เครื่องมือ mpstat เป็นส่วนหนึ่งของแพ็คเกจ sysstat เครื่องมือนี้รายงานการใช้งานของโปรเซสเซอร์แต่ละตัวหรือคอร์ของโปรเซสเซอร์

ในการใช้ mpstat คุณต้องติดตั้งแพ็คเกจ sysstat ในระบบของคุณ สมมติว่าคุณติดตั้งแพ็คเกจแล้ว ให้ดำเนินการต่อไป

เปิด mpstat

$mpstat

นี่คือความหมายของค่า แต่ละค่าอธิบายการใช้งาน CPU ในระดับหนึ่ง

  • %usr: การใช้งาน CPU ระดับผู้ใช้
  • %nice: การใช้ CPU โดยกระบวนการของผู้ใช้ที่ดี
  • %sys: การใช้ CPU โดยเคอร์เนล
  • %iowait: กำลังรอการอ่าน/เขียนดิสก์
  • %irq: การจัดการการขัดจังหวะของฮาร์ดแวร์
  • %soft: การจัดการซอฟต์แวร์ขัดจังหวะ
  • %steal: บังคับให้รอให้ไฮเปอร์ไวเซอร์จัดการตัวประมวลผลเสมือน
  • % แขก: เรียกใช้ตัวประมวลผลเสมือน
  • % ไม่ได้ใช้งาน: ยืนว่าง

ตรวจสอบการใช้งาน CPU โดยใช้ sar

คำสั่ง sar ใช้สำหรับรวบรวมและรายงานข้อมูลกิจกรรมของระบบ มีรายงานสั้นๆ เกี่ยวกับการใช้งาน CPU

เราสามารถใช้ sar เพื่อเสนอข้อมูล CPU ในช่วงเวลาหนึ่ง (เป็นวินาที) แม้ว่าจะไม่ใช่รายงานแบบเรียลไทม์ แต่ก็ยังดีกว่าที่จะใช้งาน

$ซาร์<ช่วงเวลา_วินาที>

ในตัวอย่างที่แล้ว sar จะทำงานอย่างไม่สิ้นสุด เราสามารถกำหนดจำนวนอินสแตนซ์ที่ sar จะพิมพ์ผลลัพธ์ ในตัวอย่างต่อไปนี้ sar จะพิมพ์เอาต์พุตในช่วงเวลา 5 วินาที เป็นเวลา 10 ครั้ง

$ซาร์5 10

ตรวจสอบการใช้งาน CPU โดยใช้ vmstat

เครื่องมือ vmstat รายงานข้อมูลระบบต่างๆ เช่น กระบวนการของระบบ หน่วยความจำ การสลับ ประสิทธิภาพของ CPU และ I/O

เรียกใช้ vmstat มันจะรายงานข้อมูลระบบทันทีที่รัน

$vmstat

คล้ายกับ sar vmstat สามารถรายงานสถานะของระบบในช่วงเวลาที่กำหนด (เป็นวินาที)

$vmstat 3

ในขั้นตอนสุดท้าย vmstat จะทำงานอย่างไม่สิ้นสุด ในการรัน vmstat ในช่วงเวลาที่กำหนด ให้กำหนดจำนวนการรัน ที่นี่ vmstat จะรายงานสถานะของระบบในช่วงเวลา 3 วินาที เป็นเวลา 10 ครั้ง

$vmstat 3 10

ตรวจสอบการใช้งาน CPU โดยใช้ Glances

Glances เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการตรวจสอบสถานะของระบบ มันเขียนด้วยภาษา Python ที่ใช้ไลบรารี psutil เพื่อดึงข้อมูลระบบต่างๆ Glances นำเสนอข้อมูลระบบเชิงลึกมากมาย เช่น การตรวจสอบ CPU หน่วยความจำ การใช้เครือข่าย ดิสก์ I/O กระบวนการ และการใช้งานระบบไฟล์ เป็นต้น ตรวจสอบ Glances ที่ GitHub

การติดตั้ง Glances เป็นเรื่องง่าย วิธีการต่อไปนี้จะใช้ได้กับ distro ของ GNU/Linux สิ่งที่คุณต้องมีคือติดตั้ง curl หรือ wget ในระบบของคุณ ภาพรวมจะถูกติดตั้งพร้อมกับการอ้างอิงที่จำเป็นทั้งหมด

$ curl-NShttps://bit.ly/เหลือบมอง| /เป็น/ทุบตี
$wget -หรือ-https://bit.ly/เหลือบมอง| /เป็น/ทุบตี

ภาพรวมยังมีให้ในแพ็คเกจสแน็ป สมมติว่าคุณติดตั้ง snappy (ตัวจัดการแพ็คเกจ snap) ในระบบของคุณ ให้ติดตั้ง Glances snap จาก Snapcraft ดูภาพรวมที่ Snapcraft

$sudosnapติดตั้งเหลือบมอง

การใช้ Glances นั้นง่ายมาก ในการเริ่มโหมดสแตนด์อโลน ให้รันคำสั่งต่อไปนี้

$เหลือบมอง

Glances ยังเสนอให้ทำงานในโหมดเว็บเซิร์ฟเวอร์ ในการเริ่มเว็บเซิร์ฟเวอร์ ให้รันคำสั่งต่อไปนี้

$เหลือบมอง-ใน

ในการเข้าถึงเซิร์ฟเวอร์ ไปที่ URL ต่อไปนี้

$http://<ที่อยู่ IP>:61208

สำหรับเอาต์พุตข้อมูลดิบ Glances สามารถพิมพ์เอาต์พุตไปยัง STDOUT

$ เหลือบมอง--stdoutcpu.user,mem.used,load

ความคิดสุดท้าย

มีหลายวิธีในการรับการใช้งาน CPU แม้ว่าสิ่งเหล่านี้จะทำงานได้ดี แต่คุณอาจต้องยึดติดกับสิ่งเหล่านี้บ้าง ทั้งนี้ขึ้นอยู่กับความจำเป็นของคุณ หากคุณเป็นผู้ดูแลระบบ การเรียนรู้ top/htop และ Glances จะมอบความยืดหยุ่นสูงสุด หากคุณต้องการอัปเดตการใช้ทรัพยากรระบบอย่างรวดเร็ว วิธีอื่นๆ จะมอบประสบการณ์ที่ดีกว่า

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

มีความสุขในการคำนวณ!