У меня есть фоновый процесс, работающий на 100% CPU в Mac OS X. Из-за этого все другие приложения работают очень медленно.
Я бы хотел, чтобы этот процесс занимал не более 50%, чтобы мои приложения могли работать лучше. Как я могу это сделать?
У меня есть фоновый процесс, работающий на 100% CPU в Mac OS X. Из-за этого все другие приложения работают очень медленно.
Я бы хотел, чтобы этот процесс занимал не более 50%, чтобы мои приложения могли работать лучше. Как я могу это сделать?
Ответы:
Из командной строки ( 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
. Это идентификатор процесса для работы, и вы можете найти его, используя ps -u <your username>
и ища имя процесса, но я предпочитаю top -o
в этом случае, потому что интересующий вас процесс будет ближе к началу.
Примечание. Без привилегий суперпользователя вы никогда не сможете повысить приоритет процесса. Для обычных пользователей nice
и renice
улиц с односторонним движением. И небольшие изменения в приоритете могут иметь большое влияние на время работы. Так что успокойся, пока не поймешь.
Вы можете использовать команду:
renice -n # PID
Где:
top
в терминальном приложении (utilities / Terminal.app)Если это системный процесс или другой пользовательский процесс, вы должны набрать:
sudo renice -n 10 PID
Он попросит вас ввести пароль (если вы sudoer). Что касается числа, я бы порекомендовал 10 или 19 (даже более низкий приоритет).
Обратите внимание, что это изменит приоритет, а не загрузку процессора. Если вы не запускаете другие процессы, требующие ЦП, или у вас более одного ЦП на вашем Mac (Core 2 Quad Core), процесс все равно может использовать 100% ЦП.
renice 20 $(pgrep ImageOptim)
Или используйте имя вашей программы вместо ImageOptim
renice -20
дает процессу наивысший возможный приоритет, например, при компиляции большой программы, такой как октава. renice 20
дает процессу самый низкий приоритет.
Есть также ряд утилит с графическим интерфейсом, таких как бесплатный BeNicer и Process Wizard (мой предыдущий фаворит), и версия Freezer за $ 1,99 , которая является моим новым фаворитом. Все это работает на запущенных приложениях.
Если ваш процесс является приложением или вспомогательной утилитой приложения, а не системным процессом, и вы не хотите делать это nice
или renice
при каждой загрузке системы, вы можете попробовать его в AppPolice . Это с открытым исходным кодом и бесплатно. Вы можете скачать его здесь .
Другой альтернативой будет очень приятный графический интерфейс диспетчера задач с командной строкой htop
. Вы можете увидеть все процессы и настроить их nice
значения с помощью F7
и F8
ярлыков.
(Обратите внимание, что отрицательные nice
значения являются более приоритетными и противоположными для положительных значений)
Чтобы установить его:
brew install htop
в Терминалеhtop
просматривать и управлять процессами в Терминале или sudo htop
охватывать всю систему.Вы можете установить значение nice (приоритет) для демона на постоянной основе, используя переменную в файле PLIST для приложения. Чтобы узнать, как набрать MAN plist в окне терминала.