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:
- 9 คำสั่งที่เป็นประโยชน์เพื่อรับข้อมูล CPU บน Linux
- Cpustat – ตรวจสอบการใช้งาน CPU โดยการรันกระบวนการใน Linux
- CoreFreq – เครื่องมือตรวจสอบ CPU อันทรงพลังสำหรับระบบ Linux
- ค้นหากระบวนการที่ทำงานสูงสุดตามหน่วยความจำและการใช้งาน CPU สูงสุดใน Linux
โดยสรุป CPUTool มีประโยชน์มากสำหรับการจัดการประสิทธิภาพของ Linux แบ่งปันความคิดเห็นของคุณเกี่ยวกับบทความนี้ผ่านแบบฟอร์มคำติชมด้านล่าง