
У меня есть /etc/security/limits.conf
, это, кажется, не было применено:
a soft nofile 1048576 # default: 1024
a hard nofile 2097152
a soft noproc 262144 # default 128039
a hard noproc 524288
Где a
мое имя пользователя? Когда я запускаю ulimit -Hn
и ulimit -Sn
, он показывает:
4096
1024
В архиве есть только один файл с /etc/security/limits.d
таким содержимым:
scylla - core unlimited
scylla - memlock unlimited
scylla - nofile 200000
scylla - as unlimited
scylla - nproc 8096
Я также попробовал добавить эти значения /etc/security/limits.conf
, а затем перезапустить и сделать это:
echo '
session required pam_limits.so
' | sudo tee -a /etc/pam.d/common-session
но это не сработало. Моя ОС Ubuntu 17.04
.
решение1
https://superuser.com/questions/1200539/cannot-increase-open-file-limit-past-4096-ubuntu/1200818#_=_
По-видимому, начиная с Ubuntu 16 появился баг.
По сути:
- Отредактируйте
/etc/systemd/user.conf
для мягкого предела и добавьтеDefaultLimitNOFILE=1048576
. - Отредактируйте
/etc/systemd/system.conf
для жесткого ограничения и добавьтеDefaultLimitNOFILE=2097152
.
Заслуга в этом принадлежит@mkasberg.
решение2
Рекомендуетсядля создания /etc/systemd/*.d/
каталогов вместо редактирования /etc/systemd/system.conf
и /etc/systemd/user.conf
напрямую.
Создайте новый файл
/etc/systemd/system.conf.d/limits.conf
со следующим содержимым:[Manager] DefaultLimitNOFILE=1048576:2097152 DefaultLimitNPROC=262144:524288
Запуск
systemctl daemon-reexec
от имени root.Выйдите из системы и войдите снова.
Проверьте новые ограничения с помощью
ulimit -a
илиulimit -n
иulimit -u
для максимального количества открытых файлов и максимального количества процессов соответственно.
Обратитесь кsystemd-system.conf
страница руководствадля получения подробной информации.