Ubuntu 18.04 Step by Step
Надеюсь, все это поможет, довольно долго, но это работает (с доказательством)
Я сталкивался с этой темой во время установки MongoDb на Ubuntu 18.04
https://posidev.com/blog/2009/06/04/set-ulimit-parameters-on-ubuntu/
Как видите, он довольно старый, но у меня работает.
Вот что я сделал.
Рекомендуемые настройки MongoDb ( https://docs.mongodb.com/manual/reference/ulimit/#review-and-set-resource-limits )
- -f (размер файла): не ограничено
- -t (время процессора): не ограничено
- -v (виртуальная память): не ограничено [1]
- -l (размер заблокирован в памяти): не ограничен
- -n (открыть файлы): 64000
- -m (объем памяти): не ограничено [1] [2]
- -u (процессы / потоки): 64000
Проверьте мои текущие ограничения
ubuntu @ isdb-stage: ~ $ ulimit -a
основной размер файла (блоки, -c) 0
размер сегмента данных (в килобайтах, -d) неограничен
приоритет планирования (-e) 0
размер файла (блоков, -f) неограничен
ожидающие сигналы (-i) 7873
Максимальная заблокированная память (Кбайт, -l) 16384
максимальный объем памяти (кбайт, -м) неограничен
открыть файлы (-n) 1024
размер трубы (512 байт, -p) 8
Очереди сообщений POSIX (байты, -q) 819200
приоритет в реальном времени (-r) 0
размер стека (кбайт, -s) 8192
время процессора (секунды, -t) не ограничено
максимальное количество пользовательских процессов (-u) 7873
виртуальная память (кбайт, -v) не ограничена
файловые блокировки (-x) не ограничены
Запишите, что требует изменения
- размер заблокированной памяти , должен быть неограниченным.
- открыть файлы , необходимо установить 64000
- процессы / потоки * , должен быть установлен на 64000
Что Ubuntu говорит о том, как изменить эти ограничения?
$ man limit.conf
ИМЯ
limit.conf - файл конфигурации для модуля pam_limits
ОПИСАНИЕ
Модуль pam_limits.so применяет ограничения ulimit, хороший приоритет и ограничение количества одновременных сеансов входа в систему для сеансов входа пользователя. Это описание синтаксиса файла конфигурации относится к
Файл /etc/security/limits.conf и файлы * .conf в
/etc/security/limits.d каталог.
- Кажется, достаточно ясно, отредактируйте файл /etc/security/limits.conf. Хорошо, давайте разберемся ...
Вот начало этого файла, и посмотрите, что в нем даже есть инструкции, помните, что это открытый исходный код, написанный хорошими парнями! :)
vi /etc/security/limits.conf
# /etc/security/limits.conf
# Каждая строка описывает ограничение для пользователя в форме:
#
#Где:
# возможно:
# - имя пользователя
(Посмотрите файл самостоятельно, если вы хотите больше деталей)
- Наконец внесите изменения. Поскольку MongoDb работает как группа и пользователь mongodb, было бы неплохо повысить ограничения только для пользователей. Я видел '*' здесь и там, для меня это угроза безопасности. Это дает всем и каждому на сервере эти ограничения, которые могут быть использованы для максимального использования вашего сервера. Итак, давайте сделаем их только для пользователя mongodb.
Вот мои изменения: -
Mongodb Soft Memlock неограниченно
Mongodb жесткая блокировка без ограничений
mongodb soft нофиле 64000
mongodb hard nofile 64000
mongodb soft nproc 64000
mongodb hard nproc 64000
И наконец, наконец, запомните это в записи man limit.conf.
limit.conf - файл конфигурации для модуля pam_limits
Лучше убедиться, что модуль pam_limits загружен, чтобы все это работало. Для этого вы редактируете /etc/pam.d/common-session. Конечно, это также на странице руководства.
sudo vi /etc/pam.d/common-session
# Добавьте это, чтобы убедиться, что pam_limits.so загружен.
требуется сеанс pam_limits.so
Перезагрузка покажет ограничения (для пользователя mongodb) были применены. Если вы применили их, используя вместо этого '*', вы можете проверить, не переключаясь на пользователя mongodb. Просто выполните эту команду.
$ ulimit -a
основной размер файла (блоки, -c) 0
размер сегмента данных (в килобайтах, -d) неограничен
приоритет планирования (-e) 0
размер файла (блоков, -f) неограничен
ожидающие сигналы (-i) 7873
Максимальное количество заблокированной памяти (в килобайтах, -l) не ограничено
максимальный объем памяти (кбайт, -м) неограничен
открыть файлы (-n) 64000
размер трубы (512 байт, -p) 8
Очереди сообщений POSIX (байты, -q) 819200
приоритет в реальном времени (-r) 0
размер стека (кбайт, -s) 8192
время процессора (секунды, -t) не ограничено
максимальное количество пользовательских процессов (-u) 64000
виртуальная память (кбайт, -v) не ограничена
файловые блокировки (-x) не ограничены
Как видите, пухло жабло все настроено так, как мы хотели.