Как управлять процессами, интенсивно использующими процессор на сервере - PullRequest
7 голосов
/ 18 марта 2009

Мне нужно запустить сценарий Python с большой загрузкой процессора и памяти (анализ и изменение длинного файла WAV) в качестве фонового процесса на моем веб-сервере (VPS) между HTTP-запросами.

Выполнение сценария занимает до 20 секунд, и меня беспокоит производительность на моем сервере. Есть ли хороший подход для того, чтобы либо снизить приоритет процесса, либо периодически передавать управление ОС, либо иным образом защитить производительность моего скромного сервера?

Ответы [ 2 ]

7 голосов
/ 18 марта 2009

Предполагая, что это сервер UNIX, вы можете использовать команду nice , чтобы понизить ее приоритет. Это должно сработать.

5 голосов
/ 19 марта 2009

Вы можете использовать cpulimit на сервере под управлением Linux. Это позволит вам ограничить использование ЦП (указать ограничение в процентах) даже для сценариев, которые уже запущены, и его использование довольно просто.

Он доступен в репозитории Debian, поэтому вы можете легко установить его, используя aptitude:

apt-get install cpulimit

Типичные способы использования cpulimit включает в себя:

# To limit CPU usage to 75% of program called foo:
cpulimit -e foo -l 75

# To limit CPU usage to 50% of program with pid = 1582
cpulimit -p 1582 -l 50
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...