44

У меня есть фоновый процесс, работающий на 100% CPU в Mac OS X. Из-за этого все другие приложения работают очень медленно.

Я бы хотел, чтобы этот процесс занимал не более 50%, чтобы мои приложения могли работать лучше. Как я могу это сделать?

5 ответов5

46

Из командной строки (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 - это улицы с односторонним движением. И небольшие изменения в приоритете могут иметь большое влияние на время работы. Так что будьте спокойны, пока не поймете это.

14

Вы можете использовать команду:

renice -n # PID

Куда:

  • # - это число, которое должно быть больше 0 (в противном случае вы перенесете свой процесс на более высокий приоритет)
  • PID - это идентификатор процесса, который вы можете просмотреть, набрав top в приложении терминала (utilities/terminal.app)

Если это системный процесс или другой пользовательский процесс, введите:

sudo renice -n 10 PID

Он попросит вас ввести пароль (если вы sudoer). Что касается числа, я бы порекомендовал 10 или 19 (даже более низкий приоритет).

Обратите внимание, что это изменит приоритет, а не загрузку процессора. Если вы не запускаете другие процессы, требующие ЦП, или у вас более одного ЦП на вашем Mac (Core 2 Quad Core), процесс все равно может использовать 100% ЦП.

4

Есть также ряд утилит с графическим интерфейсом, таких как бесплатный BeNicer и Process Wizard (мой предыдущий фаворит), и версия Freezer за $ 1,99, которая является моим новым фаворитом. Все это работает на запущенных приложениях.

3
renice 20 $(pgrep ImageOptim)

Или используйте имя вашей программы вместо ImageOptim

0
  • Если процесс является приложение или помощник приложения утилита , а не системный процесс , и вы не хотите , чтобы сделать nice или renice при каждой загрузке системы вы можете дать ему выстрелило в AppPolice. Это с открытым исходным кодом и бесплатно. Вы можете скачать его здесь.

  • Другой альтернативой будет очень приятный графический интерфейс диспетчера задач командной строки под названием htop . Вы можете видеть все процессы и настраивать их nice значения с помощью сочетаний клавиш F7 и F8 . (Обратите внимание, что отрицательные nice значения имеют более высокий приоритет и противоположны положительным значениям)

Чтобы установить его:

  • Установите homebrew, если у вас его еще нет.
  • Запустите эту команду brew install htop в Терминале
  • Теперь вы можете сделать htop для просмотра и управления процессами в терминале или sudo htop для охвата всей системы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .