Назад | Перейти на главную страницу

Ограничить пользователя до N ядер ЦП

Я хочу ограничить пользователя моей системы, чтобы он мог использовать только одно ядро ​​моей системы.

После поиска я нашел этот, но я не могу понять, как им пользоваться.

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

Подход ограничения использования ядер / процессора, скорее всего, не то, что вам нужно. Может быть, у вас есть пользователь, который любит запускать многоядерные / интенсивные задачи, и это в конечном итоге замедляет работу всего сервера? Решение состоит в том, чтобы "приятно" этого пользователя автоматически.

В твоем /etc/security/limits.conf, вы хотите добавить запись для своего оскорбительного пользователя (от -19 до 19, где 19 - самый низкий приоритет):

username    -       priority        19

В основном это означает установку этого пользователя для работы с более низким приоритетом. Если никто другой не запускает процессы, этот пользователь может использовать дополнительный доступный ЦП (простаивающий ЦП - это потраченный впустую ЦП). Но если что-то еще запущено, процессы этого пользователя уступят ЦП. Я слышал, что серверы предназначены для оптимальной работы на 100% ЦП, и что вы не можете сохранить неиспользованные циклы ЦП для использования позже.

Предыстория: у меня есть сервер Linux, который работает на 100% CPU 24x7 на всех ядрах. Он одновременно запускает программное обеспечение для финансового анализа с интенсивными вычислениями, базу данных MySQL, экземпляр Tomcat и Apache / PHP. Финансовое программное обеспечение потребляет столько процессоров и ядер, сколько они могут получить, поэтому у меня их приоритет 19. Я хочу, чтобы мои серверы Tomcat и Apache / PHP реагировали на запросы, поэтому я устанавливаю их на -2 или -3. Веб-страницы появляются так же быстро, как при работе финансового программного обеспечения, так и без него, благодаря правильному управлению приоритетами.