ฉันมีกระบวนการพื้นหลังทำงานที่ 100% CPU บน Mac OS X แอปพลิเคชันอื่น ๆ ทั้งหมดนั้นช้ามากเพราะมัน
ฉันต้องการตั้งค่ากระบวนการนี้ให้ไม่เกิน 50% เพื่อให้แอปพลิเคชันของฉันทำงานได้ดีขึ้น ฉันจะทำสิ่งนี้ได้อย่างไร
ฉันมีกระบวนการพื้นหลังทำงานที่ 100% CPU บน Mac OS X แอปพลิเคชันอื่น ๆ ทั้งหมดนั้นช้ามากเพราะมัน
ฉันต้องการตั้งค่ากระบวนการนี้ให้ไม่เกิน 50% เพื่อให้แอปพลิเคชันของฉันทำงานได้ดีขึ้น ฉันจะทำสิ่งนี้ได้อย่างไร
คำตอบ:
จากบรรทัดคำสั่ง ( Terminal.app
หรืออะไรก็ตาม) ใช้nice
และrenice
เหมือนกับยูนิกซ์อื่น ๆ
ใช้nice
เมื่อเรียกใช้กระบวนการ:
nice -n <priority> <command> <arguments to command>
ลำดับความสำคัญเริ่มต้นคือศูนย์ค่าบวกคือ "nicer" (นั่นคือลำดับความสำคัญต่ำกว่า) และค่าลบเป็น "น้อยดี" (ลำดับความสำคัญสูงกว่า) ดูเหมือนว่า Mac OS จะทำงานตั้งแต่ +10 ถึง -10
ใช้renice
เพื่อเปลี่ยนลำดับความสำคัญของกระบวนการที่กำลังทำงานอยู่ (จากrenice
man page ใน 10.5):
renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
renice -n increment [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
ส่วนที่คุณสนใจคือpid
บิต นั่นคือรหัสกระบวนการสำหรับงานและคุณสามารถค้นหาได้โดยใช้ps -u <your username>
และค้นหาชื่อกระบวนการ แต่ฉันชอบtop -o
ในกรณีนี้เพราะกระบวนการที่คุณสนใจจะอยู่ด้านบนสุด
หมายเหตุ:หากไม่มีสิทธิ์ superuser คุณจะไม่สามารถเพิ่มลำดับความสำคัญของกระบวนการได้ สำหรับผู้ใช้ทั่วไปnice
และrenice
เป็นถนนเดินรถทางเดียว และการเปลี่ยนแปลงเล็ก ๆ น้อย ๆ ในลำดับความสำคัญสามารถมีผลกระทบขนาดใหญ่ในเวลาทำงาน ดังนั้นจงทำสิ่งนี้ให้ง่ายจนกว่าคุณจะเข้าใจ
คุณสามารถใช้คำสั่ง:
renice -n # PID
ที่ไหน:
top
บนแอพเทอร์มินัล (ยูทิลิตี้ / เทอร์มินัลแอป)หากเป็นกระบวนการระบบหรือกระบวนการผู้ใช้อื่นคุณควรพิมพ์:
sudo renice -n 10 PID
มันจะถามรหัสผ่านของคุณ (ถ้าคุณเป็น sudoer) สำหรับหมายเลขฉันจะแนะนำ 10 หรือ 19 (ลำดับความสำคัญต่ำกว่า)
โปรดทราบว่าสิ่งนี้จะเปลี่ยนลำดับความสำคัญไม่ใช่การใช้งาน CPU หากคุณไม่ได้ใช้กระบวนการอื่นที่ต้องใช้ CPU หรือคุณมี CPU มากกว่าหนึ่งตัวใน Mac (Core 2 Quad Core) กระบวนการอาจยังคงใช้ CPU 100%
renice 20 $(pgrep ImageOptim)
หรือใช้ชื่อโปรแกรมของคุณแทน ImageOptim
renice -20
ช่วยให้กระบวนการมีความสำคัญสูงสุดเท่าที่เป็นไปได้เช่นเมื่อรวบรวมโปรแกรมขนาดใหญ่เช่นระดับแปดเสียง renice 20
ให้กระบวนการมีลำดับความสำคัญต่ำสุด
นอกจากนี้ยังมียูทิลิตี้ GUI จำนวนหนึ่งเช่น BeNicer และตัวช่วยสร้างกระบวนการฟรี(รายการโปรดก่อนหน้านี้) และFreezerเวอร์ชัน $ 1.99 ซึ่งเป็นรายการโปรดใหม่ของฉัน สิ่งเหล่านี้ทำงานกับแอปพลิเคชันที่ทำงานอยู่
ถ้ากระบวนการของคุณเป็น app หรือผู้ช่วยแอปพลิเคยูทิลิตี้มากกว่ากระบวนการระบบและคุณไม่ต้องการที่จะทำnice
หรือrenice
ในการบูตระบบทุกครั้งที่คุณสามารถให้มันยิงไปAppPolice มันเป็นโอเพนซอร์สและฟรี คุณสามารถดาวน์โหลดได้ที่นี่
อีกหนึ่งทางเลือกที่จะเป็นบรรทัดคำสั่ง GUI htop
การจัดการงานที่ดีมากเรียกว่า คุณสามารถดูกระบวนการทั้งหมดและปรับnice
ค่าโดยF7
และและF8
ทางลัด
(โปรดทราบว่าnice
ค่าลบจะถูกจัดลำดับความสำคัญมากกว่าและตรงข้ามกับค่าบวก)
วิธีติดตั้ง:
brew install htop
ในเทอร์มินัลhtop
เพื่อดูและจัดการกระบวนการใน Terminal หรือsudo htop
ครอบคลุมระบบทั้งหมดคุณสามารถตั้งค่า nice (priority) สำหรับ daemon อย่างถาวรโดยใช้ตัวแปรในไฟล์ PLIST สำหรับแอป เพื่อหาวิธีพิมพ์ MAN plist ในหน้าต่างเทอร์มินัล