ฉันมีกระบวนการพื้นหลังทำงานที่ 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เพื่อเปลี่ยนลำดับความสำคัญของกระบวนการที่กำลังทำงานอยู่ (จากreniceman 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 ในหน้าต่างเทอร์มินัล