Для нормальной работы системы необходимо убедиться, что после установки различных программ установлены правильные значения ulimit.
В системе Linux предусмотрены средства ограничения количества используемых ресурсов.
Лимиты устанавливаются для каждой учетной записи пользователя Linux.
Однако системные ограничения применяются отдельно к каждому процессу, запущенному и для этого пользователя.
Например, при слишком низких пороговых значениях система может не позволить серверу обрабатывать веб-страницы с помощью Nginx/Apache или приложения PHP/Python.
Ограничения системных ресурсов просматриваются или устанавливаются с помощью команды ulimit.
Давайте посмотрим, как использовать команду ulimit, которая обеспечивает контроль над ресурсами, доступными оболочке и процессам.
- Как найти ulimit для пользователя в Linux
- Два типа лимитов
- Просмотр ulimit для учетной записи пользователя Linux
- Список всех жестких ограничений для пользователя с именем ‘tom’
- Найдем все мягкие лимиты для пользователя с именем ‘jerry’.
- Поиск ‘ulimit’ для пользователя процесса (имя процесса)
- Как найти ulimit для процесса
- Заключение
Как найти ulimit для пользователя в Linux
Команда ulimit Linux устанавливает или отображает ограничения на ресурсы пользовательского процесса.
Обычно лимиты задаются в файле /etc/security/limits.conf или в блоках systemd.
Два типа лимитов
Все лимиты Linux делятся на мягкие и жесткие:
- Мягкий лимит (Soft limit) – Все пользователи могут изменять мягкие лимиты до максимума, установленного жесткими лимитами. Передайте опцию -S в команду ulimit.
- Жесткий лимит (Hard limit) – Только пользователь root может изменять жесткие лимиты esource. Передайте опцию -H в ulimit.
Просмотр ulimit для учетной записи пользователя Linux
Чтобы просмотреть все мягкие и жесткие лимиты для текущего пользователя, используйте следующий синтаксис:
Список всех жестких ограничений для пользователя с именем ‘tom’
Вы должны выполнить следующую команду от имени пользователя root или, по крайней мере, иметь доступ к этой учетной записи через sudo/su:
Найдем все мягкие лимиты для пользователя с именем ‘jerry’.
Снова запустите его от имени root с помощью команды su или sudo:
см . также:
🚰 5 полезных инструментов для обнаружения утечек памяти с примерами
Поиск ‘ulimit’ для пользователя процесса (имя процесса)
Процесс в Linux – это не что иное, как запущенный экземпляр программы.
Например, когда вы запускаете приложение Firefox, вы создали процесс.
Однако некоторые процессы работают в фоновом режиме в течение длительного времени.
Обычно в фоновом режиме работают серверные процессы, и вы не можете использовать команду sudo или su, чтобы узнать их границы.
В данном примере nginx запущен под пользователем www-data в Debian Linux, но доступ к оболочке для учетной записи пользователя www-data заблокирован по умолчанию из соображений безопасности.
Другими словами, следующая команда su или sudo не выполнится на 100%:
Как найти ulimit для процесса
Синтаксис следующий:
Сначала найдите PID (идентификатор процесса) для nginx, выполнив команду ps вместе с командой grep:
Теперь выполните следующую команду cat:
Большинству разработчиков и сисадминов необходимо знать максимальное количество процессов и открытых файлов на один процесс nginx.
В двух словах, мы находим PID с помощью команды «ps aux | grep appname», затем смотрим на файл «limits» этого PID в каталоге /proc/.
Тогда вы будете точно знать, какие значения применяются к этому процессу, чтобы подстроить его производительность.
Заключение
В этом уроке вы научились находить значения ulimit для текущего запущенного процесса и учетной записи пользователя в Linux с помощью встроенной команды ‘ulimit -a’ и файла /proc/${PID}/limits.