Linux лимит запущенных процессов

Содержание
  1. Лимит процессов по количеству для пользователя
  2. Re: Лимит процессов по количеству для пользователя
  3. Re: Лимит процессов по количеству для пользователя
  4. Re: Лимит процессов по количеству для пользователя
  5. Re: Лимит процессов по количеству для пользователя
  6. Re: Лимит процессов по количеству для пользователя
  7. Re: Лимит процессов по количеству для пользователя
  8. Re: Лимит процессов по количеству для пользователя
  9. Re: Лимит процессов по количеству для пользователя
  10. Re: Лимит процессов по количеству для пользователя
  11. Re: Лимит процессов по количеству для пользователя
  12. Как ограничить использование процессора программой в Linux
  13. Перегрев и тормоза компьютера
  14. Ограничение использование центрального процессора (с помощью cpulimit)
  15. Контроль нагрузки на центральный процессор создаваемой группой программ
  16. Заключение
  17. Русские Блоги
  18. Количество процессов и дескрипторов linux
  19. Единая концепция обработки и управления
  20. Во-вторых, ограничения ресурсов Linux
  21. 1. Ограничения пользовательских ресурсов
  22. 2. ограничение ресурса обслуживания
  23. 3. Лимит системных ресурсов
  24. Три, количество процессов ограничено
  25. 1. Ограничьте количество пользовательских процессов.
  26. 2. Лимит процесса обслуживания
  27. 3. Общее количество процессов в системе.
  28. В-четвертых, ограничение количества ручек
  29. 1. Ограничьте количество пользовательских дескрипторов
  30. 2. Предел обработки обслуживания
  31. 3. Общее количество системных дескрипторов.

Лимит процессов по количеству для пользователя

Для ограничения количества процессов для пользователя надо патч ставить на ядро, или это можно сделать через /etc/login.conf ?

где-то ранее видел такое, вроде в /etc/login.conf, но теперь начал искать, никак не могу найти.

может кто сталкивался с этим.
спасибо.

Re: Лимит процессов по количеству для пользователя

Можно использовать PAM. Модуль называется pam_limits. Копай мануал на предмет опции nproc.

Re: Лимит процессов по количеству для пользователя

ulimit -u колво_процессов

Re: Лимит процессов по количеству для пользователя

Re: Лимит процессов по количеству для пользователя

Re: Лимит процессов по количеству для пользователя

дистр — слака 9.0

пытался понять кто использует файл /etc/security/limits.conf в АСП 10.0, но так и не понял.

пытался найти маны на limits.conf и похожее — бестолку, ничего путного.

этот файл (/etc/security/limits.conf) просто то что нужно. вот только кто его использует ((

Re: Лимит процессов по количеству для пользователя

> пытался понять кто использует файл /etc/security/limits.conf

Re: Лимит процессов по количеству для пользователя

А Slackware нет PAM.

Re: Лимит процессов по количеству для пользователя

man ulimit почитай.

Заодно почитай man initscript

Re: Лимит процессов по количеству для пользователя

Так ulimit выставляет ограничения для процессов запускаемых через bash, или глобально (через ядро) ?

Re: Лимит процессов по количеству для пользователя

Источник

Как ограничить использование процессора программой в Linux

Перегрев и тормоза компьютера

Некоторые программы в процессе своей работы нагружают центральный процессор на 100%. Это нормально и процессоры предназначены работать на максимальных своих частотах. Тем не менее, возможно возникновение сопутствующих проблем:

  • перегрев компьютера
  • подвисания операционной системы, «тормоза»

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

Обычно не нужно ограничивать количество процессорного времени, которое доступно для использования программой. Если процессор из-за интенсивной работы начинает перегреваться, то система сбрасывает частоты, то есть центральный процессор просто начинает медленнее работать. Это называется троттлинг. То есть имеется встроенная защита от того, чтобы процессор не сгорел. Если вы сталкиваетесь с перегревом и троттингом, то рекомендуется выполнить:

  • чистку компьютера от пыли (особенно актуально для ноутбуков после нескольких лет эксплуатации)
  • проверку и замену термопасты (актуально для используемых много лет настольных компьютеров)
Читайте также:  Карманный справочник по линуксу

Это может значительно улучшить ситуацию и ваша система будет работать быстрее за счёт того, что ЦПУ не будет сбрасывать частоты.

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

Если у вас система подвисает, начинает тормозить из-за слишком большой нагрузки на процессор, то можно изменить приоритет процесса. В Linux за это отвечает величина nice. Если вы понизите приоритет программы, то она всё равно будет работать на полную. Но если вы будете выполнять другие действия на компьютере, то центральный процессор сначала будет обрабатывать ваши действия в других программах и только затем, по остаточному принципу, будет предоставлять процессорные мощности «тяжёлой» программе.

Тем не менее, если вам действительно нужно ограничить мощность процессора, которую может использовать определённая программа, то об этом сказано ниже.

Ограничение использование центрального процессора (с помощью cpulimit)

Изучим как пользоваться cpulimit.

cpulimit – это простая программа, которая пытается ограничить использование ЦПУ процессом (величина выражена в процентах, а не во времени CPU). Это полезно для контроля длительных задач требующих сильной нагрузки на процессор, когда вы не хотите, чтобы они слишком сильно нагружали систему и мешали работе. Примером таких задач может быть: создание резервной копии системы или большого количества файлов, сжатие в архив большого объёма данных, брут-форс паролей и другие операции. Программа cpulimit не влияет на значение nice или другие способы планирования приоритета, она работает с настоящим использованием ЦПУ. Кроме того, эта программа может динамически и быстро адаптироваться к общей нагрузке на систему.

Если у вашей машины один процессор, вы можете ограничить процент от 0% до 100%, что означает, если вы, к примеру, установите 50%, процентов, то ваш процесс не может использовать более чем 500 миллисекунд времени центрального процессора каждую секунду. Но если на вашей машине четыре процессора, то процент можно устанавливать от 0% до 400%. Так установка лимита на 200% означает использование не более чем половины имеющейся мощности. В любом случае, процент — это то же самое, что вы видите когда запускаете программу top.

cpulimit должен быть запущен по крайней мере тем же пользователем от которого запущен контролируемый процесс. Но намного лучше, если вы запустите cpulimit от root, чтобы иметь более высокий приоритет и точный контроль.

cpulimit также ограничивает дочерние процессы указанной программы.

Установка cpulimit (в Ubuntu, Linux Mint, Kali Linux, Debian и другие его производные):

Команда запуска cpulimit имеет следующий вид:

Изучим опции cpulimit:

Примеры запуска cpulimit

Предположим, вы запустили foo —bar и вы обнаружили с помощью top или ps, что этот процесс использует всю мощность вашего ЦПУ, вы можете или:

Ограничить использование CPU процессом воздействуя на исполнимый файл программы (примечание: аргумент «—bar» пропущен):

Ограничить использование CPU процессом воздействуя на, который показывает ps:

Как и -e, но использует абсолютный путь:

Полезно для скриптов, где вы хотите троттлить последнюю запущенную команду:

Запуск веб-браузера Firefox и ограничение использование CPU 20% процентами:

Флаг -c устанавливает количество ядер ЦПУ, которые, как начинает думать программа, доступны. Обычно программа правильно определяет количество ядер, но это значение можно переписать:

Запуск программы Firefox и остановка процесса, если он будет использовать более 20% CPU.

Троттлить процесс 1234 на 20% использования CPU. Если cpulimit настроен для выхода, то он отправляет наблюдаемому процессу сигнал SIGTERM.

Читайте также:  Диагностика неполадок windows 10 отключена

Примеры запуска в cpulimit программы с опциями

Запуск веб-браузера Firefox в приватном режиме и ограничение использование центрального процессора на 25%:

Запуск программы aircrack-ng с опциями для взлома пароля Wi-FI:

Ещё раз обратите внимание, как именно считается выделяемый процент. Одно ядро – это 100% Допустим, на компьютере восемь ядер, тогда максимально можно установить значение 100% * 8 = 800%, что соответствует стопроцентному использованию всех восьми ядер. Если мы хотим, чтобы использовалось только половина процессорной мощности, то нужно указать 400%, то есть -l 400.

Контроль использования количества CPU выполняется отправкой процессу сигналов SIGSTOP и SIGCONT POSIX.

cpulimit всегда отправляет сигналы SIGSTOP и SIGCONT процессу, оба они нужны для верификации, что она может контролировать его и ограничивать среднее количество потребляемого ЦПУ. Это может привести к вводящим в заблуждение (раздражающим) сообщениям управления заданиями, которые показывают, что задание было остановлено (когда на самом деле оно действительно было остановлено, но немедленно перезапущено). Это также может вызвать проблемы с интерактивными оболочками, которые обнаруживают или иным образом зависят от SIGSTOP/SIGCONT. Например, вы можете разместить задание на переднем плане, но вы только увидите, что оно немедленно остановлено и перезапущено в фоне.

При вызове с опциями -e или -P, cpulimit ищет любой процесс в /proc с именем, которое соответствует имени процессу в переданном аргументе. Более того, она использует первый экземпляр найденного процесса. Для управление определённым экземпляром используйте опцию -p и укажите PID.

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

CPUTool – это ещё одна утилита, которая управляет использованием ЦПУ и нагрузкой на систему. Она умеет ограничивать нагрузку от одной программы или группы процесса по заданному лимиту.

CPUTool работает отправляя сигналы SIGSTOP и SIGCONT.

Установка CPUTool (в производные Debian):

Использование CPUTool:

Опции CPUTool:

Как и для предыдущей программы, возможно более 100% процессорной мощности, например, для двухъядерного процессора можно указать до 200 и так далее.

Примеры запуска CPUTool

Ограничить PID 4711 на использование 75% одного ядра ЦПУ:

Запуск rsync для создания резервной копии только когда системная нагрузка не превышает 7.5:

Заключение

Итак, с помощью этих программ вы можете ограничить, насколько интенсивно ресурсоёмкие приложение и программы будут использовать центральный процессор. Если ваша проблема заключается в перегреве и троттлинге, то начните с очистки физического компьютера от пыли и улучшения системы охлаждения.

О том, как контролировать текущую частоту и температуру процессора в Linux смотрите здесь.

Источник

Русские Блоги

Количество процессов и дескрипторов linux

Примечание: версия Linux CentOS7

оглавление

Единая концепция обработки и управления

Программа может открывать несколько объектов, а именно процессов;

Во время работы процесс будет открывать множество ресурсов, включая файл файла, сокет коммуникационного соединения, порт прослушивания и т. Д. Мы называем их коллективными дескрипторами. Все в Linux является файлом, поэтому, когда процесс открывает количество дескрипторов При превышении системного лимита мы получим предупреждение: слишком много открытых файлов.

Во-вторых, ограничения ресурсов Linux

1. Ограничения пользовательских ресурсов

В Bash есть команда ulimit, которая обеспечивает управление доступными ресурсами оболочки и процессами, запускаемыми оболочкой. В основном это количество открытых файловых дескрипторов, максимальное количество процессов пользователя, размер файла coredump и т. Д.

Конфигурацию ограничений ресурсов можно настроить в файле подконфигурации в /etc/security/limits.conf или /etc/security/limits.d/. Система сначала загружает limits.conf, а затем загружает каталог limits.d в алфавитном порядке. После загрузки файла конфигурации он перезапишет предыдущую конфигурацию. Формат конфигурации следующий:

soft — значение предупреждения, hard — максимальное значение, * означает соответствие всем пользователям

Читайте также:  Драйвера для сканера мустек 600 cu для windows 10 64 bit

Просмотр ограничений пользовательских ресурсов для входа в текущую оболочку

2. ограничение ресурса обслуживания

Мы всегда упоминали оболочку выше, поэтому для тех пользователей, которые не вошли в систему через аутентификацию PAM, таких как mysql, nginx и т. Д., Вышеуказанная конфигурация не эффективна;

Поскольку в системе CentOS 7 / RHEL 7 вместо предыдущего SysV используется Systemd, область конфигурации файла /etc/security/limits.conf сокращается. Конфигурация в limits.conf применима только для аутентификации PAM. Ограничение ресурсов вошедшего в систему пользователя, оно не влияет на ограничение ресурсов службы systemd.

Его нужно настроить с помощью файлов /etc/systemd/system.conf и /etc/systemd/user.conf. Точно так же все файлы .conf в двух соответствующих каталогах /etc/systemd/system.conf.d/* .conf и /etc/systemd/user.conf.d/*.conf.

Среди них system.conf используется экземплярами системы, а user.conf — экземплярами пользователей. Для общих служб используйте конфигурацию в system.conf. Конфигурация в system.conf.d / *. Conf переопределит system.conf.

Формат конфигурации следующий:

= Тип ресурса слева, размер справа

Просмотр лимита ресурсов службы

Например, проверьте влияние конфигурации службы nginx:

3. Лимит системных ресурсов

Для пользователя и службы ранее были выделены ресурсы, но каково общее количество ресурсов в системе? Сюда входят параметры ядра. Существует много параметров ядра. Нам нужно только знать, как изменить наиболее часто используемые, такие как количество процессов и количество дескрипторов.

Три, количество процессов ограничено

1. Ограничьте количество пользовательских процессов.

По умолчанию в /etc/security/limits.d/ есть файл подконфигурации 20-nproc.conf, который используется для установки максимального количества процессов для каждого пользователя.

Проверка /etc/security/limits.d/20-nproc.conf обнаружит, что пользователь root по умолчанию не ограничен, а максимальное количество обычных пользовательских процессов составляет 4096

Фактически, root и обычные пользователи по умолчанию используют значение # cat / proc / sys / kernel / threads-max / 2, что составляет половину количества системных потоков.

Установите максимальное количество процессов на пользователя

Примечание. Изменение файла конфигурации не повлияет на ограничение процесса для текущего пользователя, вошедшего в систему.

2. Лимит процесса обслуживания

Примечание: изменение файла конфигурации не изменит ограничение на количество процессов запущенной в данный момент службы, и ее необходимо перезапустить.

3. Общее количество процессов в системе.

Выше мы установили максимальное количество процессов, которые может открыть каждый пользователь, но это не контролирует общее количество процессов в системе (kernel.pid_max). Предполагая, что kernel.pid_max = 1000, максимальное количество пользовательских процессов пользователя, независимо от того, насколько велико заданное значение, Максимальное количество процессов, которые можно открыть, по-прежнему составляет 1000

Просмотрите глобальный метод pid_max:

Временно измените этот метод значения:

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

Вышеуказанное действует только временно, оно будет недействительным после перезапуска машины, постоянный эффективный метод:

Добавьте kernel.pid_max = 65535 в /etc/sysctl.conf

Затем перезапустите машину.

В-четвертых, ограничение количества ручек

1. Ограничьте количество пользовательских дескрипторов

Лимит пользователя для входа, как упоминалось выше, можно настроить с помощью файла подконфигурации в /etc/security/limits.conf или /etc/security/limits.d/ следующим образом:

Примечание: изменение файла конфигурации не повлияет на ограничение дескриптора текущего пользователя, вошедшего в систему.

2. Предел обработки обслуживания

Примечание. Изменение файла конфигурации не приведет к изменению ограничения дескриптора запущенной в данный момент службы.

3. Общее количество системных дескрипторов.

Количество процессов, которые могут быть открыты каждым пользователем, и количество дескрипторов, которые могут быть открыты каждым процессом, указаны выше; есть также файл, который устанавливает общее количество дескрипторов, которые могут быть открыты всеми процессами в системе, то есть этот параметр является системным.

Измените максимальное количество системных дескрипторов, метод следующий (действителен после настройки):

Просмотрите общее количество дескрипторов, используемых в настоящее время в системе:

Источник

Оцените статью