chpst соблюдает ulimit настройки?

Мы в настоящее время испытываем проблемы с находящимся в JBoss сервером на платформе Linux - эффективно, у нас заканчиваются доступные дескрипторы файлов в рамках процесса и карканий сервера.

Мы установили ulimit для разрешения 10 000 открытых дескрипторов файлов, и сервер последовательно отказывает, когда гораздо меньше дескрипторов файлов открыто.

Одна вещь, которую я заметил, состоит в том, что наши сценарии запуска используют chpst, и я заметил, что chpst разрешает для установки файла / обработать / пределы памяти как аргументы. Кто-либо знает, соблюдает ли chpst существующую систему ulimit, если никакие явные команды не установлены, или это использует свои собственные внутренние значения по умолчанию? Если так, где я нашел бы их?

спасибо

2
задан 5 September 2013 в 13:05
2 ответа

chpst даже не учитывает то, что вы передаете в качестве аргументов. Исходный код действительно сложен для чтения, но строгая строка подтверждает:

execve("/usr/sbin/chpst", ["chpst", "-o", "10000", "/bin/sh", "-c", "sleep 5"], [/* 26 vars */]) = 0
...
getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=4*1024}) = 0
setrlimit(RLIMIT_NOFILE, {rlim_cur=4*1024, rlim_max=4*1024}) = 0
execve("/bin/sh", ["/bin/sh", "-c", "sleep 5"], [/* 26 vars */]) = 0
...

я бы избежал.

.
1
ответ дан 3 December 2019 в 12:58

Не могу добавить комментарий к Оливье Тарану, и даже если это старый вопрос, я думаю, неплохо исправить неправильные утверждения (особенно если утверждение относительно недавно).

В его strace, getrlimit говорит, что максимальное жесткое ограничение составляет 4096, и он просит chpst установить мягкое ограничение на 10000. chpst делает это, но, как описано в mangage of limits.conf , мягкие ограничения не могут превышать жесткие ограничения, которые применяются ядром и пользователем root. Единственное, что можно сказать об этом, это то, что, возможно, chpst должен вывести предупреждение, вот и все. Конечно, не «Я бы избегал».

Обратите внимание, что это означает, что исходная проблема может быть связана не с chpst, а с конфигурацией системы. chpst - это всего лишь инструмент для установки произвольных ограничений для одного процесса, это не инструмент для настройки ядер.

0
ответ дан 3 December 2019 в 12:58

Теги

Похожие вопросы