LINUX.ORG.RU

Как изменить лимит количества открытых файлов?

 , ,


0

1

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

[warn] epoll_create: Too many open files
[warn] evutil_make_internal_pipe_: pipe: Too many open files
[err] evsig_init_: socketpair: Too many open files

Понятно что надо где-это это увеличить, поредактировал /etc/sysctl.conf и /etc/security/limits.conf (пока так и не понял в чем разница между ними). В интернетах пишут еще надо куда-то добавлять session required /lib/security/pam_limits.so, вобщем как обычно чтобы изменить одну циферку надо воротить непонять что.

Самое интересное что в итоге это все конечно же не работает и я все равно имею лимит из 80х в 1024 файла:

> ulimit -a
Maximum size of core files created                           (kB, -c) 0
Maximum size of a process’s data segment                     (kB, -d) unlimited
Maximum size of files created by the shell                   (kB, -f) unlimited
Maximum size that may be locked into memory                  (kB, -l) 16384
Maximum resident set size                                    (kB, -m) unlimited
Maximum number of open file descriptors                          (-n) 1024
Maximum stack size                                           (kB, -s) 8192
Maximum amount of cpu time in seconds                   (seconds, -t) unlimited
Maximum number of processes available to a single user           (-u) 1000
Maximum amount of virtual memory available to the shell      (kB, -v) unlimited

Еще я случайно обнаружил что в tty, вне графической сессии (под тем же юзером) лимит увеличился, что наводит на мысли что он в итоге выставляется не системой а кем-то другим. Собственно прощу помощи разобраться в том что происходит и какой конфиг все-таки на самом деле фиксит проблему, спасибо!

★★★★★

Только написал пост как сам нашел: DefaultLimitNOFILE=4096 в /etc/systemd/system.conf.

Буду благодарен если кто объяснит в чем разница между всеми этими конфигами.

loz ★★★★★ ()
Последнее исправление: loz (всего исправлений: 1)

Так sysctl.conf для всех, limits.conf для отдельных пользователей и категорий. Недостаточно разницы? Наверно systemd постарался. Ну или /etc/sysctl.conf опять не читается без патчей. Есть ещё вариант что ограничения прописаны где-нибудь в профиле пользовательской сессии.

anonymous ()
Ответ на: комментарий от loz

Хм, в документации сказано, что DefaultLimitNOFILE из конфига systemd должен применятся к юнитам. Но при этом, для сессий, зарегистрированных через PAM должны применяться правила из limits.conf. Почему это работает для консольных сессий, но не работает для графических мне не понятно.

Khnazile ★★★★★ ()