Рейтинг:0

Wildfly: слишком много открытых файлов

флаг om
Ror

Недавно мы получили ошибку «слишком много открытых файлов» в нашей продукции Wildfly 17 на Debian 9. Простой перезапуск службы wildfly избавил от ошибки, но я хотел бы избежать повторения проблемы. Я хотел бы увеличить лимит, но я не уверен, что мне следует изменить и как я могу узнать, что конфигурация была принята во внимание.

Я проверил ulimit для пользователя wildfly без входа в систему:

    sudo su - wildfly -c 'ulimit -a' -s '/bin/bash'
размер основного файла (блоки, -c) 0
размер сегмента данных (кбайт, -d) не ограничен
приоритет планирования (-e) 0
размер файла (блоки, -f) не ограничен
ожидающие сигналы (-i) 117724
максимальная заблокированная память (кбайт, -l) 64
максимальный размер памяти (кбайт, -m) не ограничен
открыть файлы (-n) 1024
размер канала (512 байт, -p) 8
Очереди сообщений POSIX (байты, -q) 819200
приоритет реального времени (-r) 0
размер стека (кбайт, -с) 8192
время процессора (секунды, -t) не ограничено
максимальное количество пользовательских процессов (-u) 117724
виртуальная память (кбайт, -v) не ограничена
блокировка файлов (-x) не ограничена

Ограничение, кажется, установлено на уровне 1024 для пользователя. Однако я могу проверить количество открытых файлов с помощью моих процессов wildfly, и у меня есть это:

sudo ls -l /proc/PID/fd | wc -l
1296

Что больше предела, и сейчас я не получаю никаких ошибок. Есть ли способ установить лимит выше навсегда? Может быть, в файлах конфигурации wildfly? Я немного потерян.

Рейтинг:2
флаг in

Вам необходимо отредактировать/добавить записи в /etc/security/limits.conf. Например, одна запись для пользователя муха и количество открытых файлов может выглядеть так:

дикая муха мягкая nofile 16384
дикая муха жесткий nofile 16384

Это устанавливает количество открытых файлов для пользователя до 16384.

P.S. Вы должны выйти из системы, а затем войти (как пользователь муха), чтобы сделать это в работе

Ror avatar
флаг om
Ror
Кажется, что это решение увеличивает лимит открытых файлов, но есть ли способ убедиться, что мой сервер wildfly использует эту конфигурацию?
Romeo Ninov avatar
флаг in
Если ваш сервер приложений работает как пользователь wildfly, он будет использовать его. Вам нужно только выйти из системы, затем войти и перезапустить сервер
Ror avatar
флаг om
Ror
Меня немного смущает часть входа/выхода из системы, поскольку пользователь wildfly не входит в систему?
Romeo Ninov avatar
флаг in
вы используете `sudo`. поэтому просто измените числа и с помощью `sudo` остановите и запустите сервер. Идея в том, что эти параметры устанавливаются во время входа в систему (или выполнения sudo).
Ror avatar
флаг om
Ror
Хорошо, теперь я понял, спасибо!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.