ค้นหาเว็บไซต์

CPUTool - จำกัดและควบคุมการใช้งาน CPU ของกระบวนการใดๆ ใน Linux


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

เครื่องมือจำนวนหนึ่งเหล่านี้เพียงแสดงสถานะ/สถิติของระบบ ในขณะที่เครื่องมืออื่นๆ สองสามตัวให้วิธีการจัดการประสิทธิภาพของระบบแก่คุณ เครื่องมือหนึ่งที่เรียกว่า CPUTool

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

CPUTool ทำงานอย่างไร?

เพื่อจำกัดการใช้งาน CPU cputool จะส่งสัญญาณ SIGSTOP และ SIGCONT ไปยังกระบวนการ และกำหนดโดยโหลดของระบบ โดยอาศัยระบบไฟล์เทียม /proc เพื่ออ่าน PID และการวัดการใช้งาน CPU

อาจใช้เพื่อจำกัดการใช้งาน CPU หรือโหลดของระบบที่ได้รับอิทธิพลจากกระบวนการเดียวหรือกลุ่มของกระบวนการจนถึงขีดจำกัดที่กำหนด และ/หรือระงับกระบวนการหากโหลดของระบบเกินขีดจำกัด

แนะนำให้อ่าน: ทำความเข้าใจค่าเฉลี่ยโหลด Linux และตรวจสอบประสิทธิภาพของ Linux

ติดตั้ง CPUTool เพื่อจำกัดการใช้งาน CPU และโหลดค่าเฉลี่ย

CPUTool มีให้ติดตั้งบน Debian/Ubuntu และอนุพันธ์จากที่เก็บระบบเริ่มต้นโดยใช้เครื่องมือการจัดการแพ็คเกจเท่านั้น

sudo apt install cputool

การจำกัดการใช้งาน CPU ของกระบวนการด้วย CUPTool

ตอนนี้เรามาดูกันว่า cputool ทำงานอย่างไร เพื่อสาธิตทั้งหมด เราจะเรียกใช้ คำสั่ง dd ซึ่งจะส่งผลให้มีเปอร์เซ็นต์ CPU สูงในพื้นหลังและแสดง PID

dd if=/dev/zero of=/dev/null &

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

top

จากผลลัพธ์ด้านบน เราจะเห็นว่า คำสั่ง dd มีเปอร์เซ็นต์ของเวลา CPU สูงสุด 99.7%) ตอนนี้เราสามารถจำกัดสิ่งนี้ได้โดยใช้ cputool ดังที่แสดงด้านล่าง

แฟล็ก --cpu-limit หรือ -c ใช้เพื่อตั้งค่าเปอร์เซ็นต์การใช้งานสำหรับกระบวนการหรือกลุ่มของกระบวนการ และ -p เพื่อระบุ พีไอดี คำสั่งต่อไปนี้จะจำกัดคำสั่ง dd (PID 8275) ให้ใช้ 50% ของ CPU หนึ่งคอร์:

cputool --cpu-limit 50 -p 8275 

หลังจากรัน cputool เราสามารถตรวจสอบการใช้งาน CPU ใหม่สำหรับกระบวนการ (PID 8275) ได้อีกครั้ง ขณะนี้การใช้งาน CPU สำหรับกระบวนการ dd ควรอยู่ในช่วง (49.0%-52.0%)

top

หากต้องการจำกัดการใช้งาน CPU ของ dd ให้เหลือ 20% เราสามารถเรียกใช้ cputool ได้เป็นครั้งที่สอง:

cputool --cpu-limit 20 -p 8275 

จากนั้นให้ตรวจสอบทันทีโดยใช้เครื่องมือเช่นด้านบนหรือภาพรวมเช่นนี้ (การใช้งาน CPU สำหรับ dd ตอนนี้ควรอยู่ในช่วง 19.0%-22.0% หรือเกินกว่านี้เล็กน้อย):

top

โปรดทราบว่าเชลล์ไม่ได้คาดหวังการป้อนข้อมูลจากผู้ใช้ในขณะที่ cputool กำลังทำงานอยู่ จึงไม่ตอบสนอง หากต้องการฆ่ามัน (การดำเนินการนี้จะยุติการดำเนินการจำกัดการใช้งาน CPU) ให้กด Ctrl + C

ที่สำคัญ ในการระบุกลุ่มกระบวนการ (หนึ่งโปรแกรมที่มีอินสแตนซ์ที่ทำงานอยู่หลายอินสแตนซ์ โดยแต่ละโปรแกรมมี PID ที่แตกต่างกัน) สำหรับเว็บเซิร์ฟเวอร์ HTTP ของอินสแตนซ์:

pidof apache2
9592 3643 3642 3641 3640 3638 3637 1780

ใช้แฟล็ก -P ดังนี้:

cputool --cpu-limit 20 -P 1780

การจำกัดโหลดของระบบด้วย CUPTool

ตัวเลือก -l ใช้เพื่อระบุโหลดสูงสุดที่ระบบอาจดำเนินการเพื่อให้กระบวนการหรือกลุ่มกระบวนการทำงานต่อไป เราอาจใช้ค่าเศษส่วน (เช่น 2.5)

ตัวอย่างด้านล่างหมายถึงเรียกใช้ rsync สำหรับการสำรองข้อมูลในเครื่องเฉพาะเมื่อโหลดของระบบไม่เกิน 3.5:

cputool --load-limit 3.5 --rsync -av /home/tecmint /backup/`date +%Y-%m-%d`/

สำหรับข้อมูลเพิ่มเติมและการใช้งาน โปรดดูหน้าคู่มือ CPUTool:

man cputool

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

  1. 9 คำสั่งที่เป็นประโยชน์เพื่อรับข้อมูล CPU บน Linux
  2. Cpustat – ตรวจสอบการใช้งาน CPU โดยการรันกระบวนการใน Linux
  3. CoreFreq – เครื่องมือตรวจสอบ CPU อันทรงพลังสำหรับระบบ Linux
  4. ค้นหากระบวนการที่ทำงานสูงสุดตามหน่วยความจำและการใช้งาน CPU สูงสุดใน Linux

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