我在 Mac OS X 上有一个后台进程以 100% CPU 运行。所有其他应用程序因此而运行得很慢。
我想将此过程设置为不超过 50%,以便我的应用程序可以更好地运行。我该怎么做?
答案1
从命令行(Terminal.app
或其他任何方式)使用nice
和renice
,就像在其他 unix 上一样。
nice
启动进程时使用:
nice -n <priority> <command> <arguments to command>
默认优先级为零,正值表示“更好”(即优先级较低),负值表示“不太好”(优先级较高)。看来 Mac OS 的优先级从 +10 到 -10。
用于renice
更改已经运行的进程的优先级(来自renice
10.5 的手册页):
renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
renice -n increment [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
您感兴趣的部分是pid
位。这是作业的进程 ID,您可以使用ps -u <your username>
并查找进程名称来找到它,但我更喜欢top -o
在这种情况下,因为您感兴趣的进程将位于顶部附近。
笔记:如果没有超级用户权限,您永远无法提高进程的优先级。对于普通用户来说,nice
和renice
是单行道。优先级的微小变化会对运行时间产生很大影响。所以在您理解它之前,请谨慎处理。
答案2
您可以使用以下命令:
renice -n # PID
在哪里:
- #是一个应大于 0 的数字(否则您将把您的进程移至更高的优先级)
- PID
top
是您可以在终端应用程序 (utilities/terminal.app) 中输入查看的进程 ID
如果它是系统进程或另一个用户进程,您应该输入:
sudo renice -n 10 PID
它会要求您输入密码(如果您是 sudoer)。至于数字,我建议 10 或 19(优先级更低)。
请注意,这将改变优先级而不是 CPU 使用率。如果您没有运行其他需要 CPU 的进程,或者您的 Mac 上有多个 CPU(Core 2 四核),则该进程可能仍会使用 100% 的 CPU。
答案3
renice 20 $(pgrep ImageOptim)
或者使用程序的名称而不是 ImageOptim