Как может процесс Ruby ограничить использование своего процессора? - PullRequest
6 голосов
/ 15 мая 2011

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

1 Ответ

11 голосов
/ 15 мая 2011

Вы можете попробовать использовать Process.setrlimit из стандартного ядра:

Устанавливает ограничение ресурса процесса.

Это похоже наэто просто оболочка для setrlimit из библиотеки C, поэтому она может быть доступна только на платформах Unix-ish.setrlimit не поддерживает процентное ограничение ЦП, но поддерживает ограничение времени ЦП в секундах.

Если вы просто пытаетесь не дать процессу Ruby перегружать весь ЦП, то вы можете попытаться отрегулировать его приоритет сProcess.setpriority, который является просто оболочкой для setpriority libc и предлагает некоторый контроль над приоритетом планирования вашего процесса.Опять же, доступность, вероятно, будет ограничена вашей платформой, но она должна работать в Linux, OSX или любой другой системе Unix-ish.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...