Ubuntu 18.04 крок за кроком
Сподіваюся, що все це допомагає, досить довго, але це працює (з доказом)
Я натрапив на цю нитку під час встановлення 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
- -м (об'єм пам'яті): необмежений [1] [2]
- -u (процеси / потоки): 64000
Перевірте мої поточні ліміти
ubuntu @ isdb-етап: ~ $ ulimit -a
розмір основного файлу (блоки, -c) 0
розмір сегмента даних (кбайт, -d) необмежений
Пріоритет планування (-е) 0
розмір файлу (блоки, -f) необмежений
сигнали в очікуванні (-i) 7873
Максимально заблокована пам'ять (кбайт, -l) 16384
Максимальний об'єм пам'яті (кбайт, -м) необмежений
відкрити файли (-n) 1024
розмір труби (512 байт, -p) 8
Черги повідомлень POSIX (байти, -q) 819200
пріоритет у режимі реального часу (-r) 0
розмір стека (кбайт, -ів) 8192
час процесора (секунди, -t) необмежений
максимальні користувацькі процеси (-u) 7873
віртуальна пам'ять (кбайт, -v) необмежена
блокування файлів (-x) необмежено
Запишіть, що вимагає змін
- розмір заблокованої пам’яті , потрібно встановити необмежений.
- відкритих файлів , потрібно встановити на 64000
- процесів / потоків * , потрібно встановити на 64000
Що говорить ubuntu про те, як змінити ці ліміти?
$ man limit.conf
ІМ’Я
limit.conf - файл конфігурації модуля pam_limits
ОПИС
Модуль pam_limits.so застосовує обмеження для обмеження, приємний пріоритет та кількість одночасних сеансів входу для сеансів входу користувачів. Цей опис синтаксису файлу конфігурації застосовується до
/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 nofile 64000
mongodb hard nofile 64000
mongodb soft nproc 64000
mongodb hard nproc 64000
Нарешті, нарешті, запам'ятайте це у статті man.conf.
limit.conf - файл конфігурації модуля pam_limits
Краще переконайтеся, що модуль pam_limits завантажений, щоб все це обмежило роботу. Для цього слід редагувати /etc/pam.d/common-session. Звичайно, це також є на сторінці man.
sudo vi /etc/pam.d/common-session
# Додайте це, щоб забезпечити завантаження pam_limits.so.
потрібен сеанс pam_limits.so
Перезавантаження покаже обмеження (для користувача mongodb). Якщо ви застосували їх, використовуючи "*", ви можете перевірити, не перемикаючись на користувача mongodb. Просто виконайте цю команду.
$ ulimit -а
розмір основного файлу (блоки, -c) 0
розмір сегмента даних (кбайт, -d) необмежений
Пріоритет планування (-е) 0
розмір файлу (блоки, -f) необмежений
сигнали в очікуванні (-i) 7873
Максимально заблокована пам'ять (кбайт, -l) необмежена
Максимальний об'єм пам'яті (кбайт, -м) необмежений
відкрити файли (-n) 64000
розмір труби (512 байт, -p) 8
Черги повідомлень POSIX (байти, -q) 819200
пріоритет у режимі реального часу (-r) 0
розмір стека (кбайт, -ів) 8192
час процесора (секунди, -t) необмежений
максимум процесів користувача (-u) 64000
віртуальна пам'ять (кбайт, -v) необмежена
блокування файлів (-x) необмежено
Як бачимо, луб'яно-ювелірно все встановлено до тих меж, які ми хотіли.