Команда lsof выполняется слишком долго для определенного идентификатора процесса

Команда lsof выполняется слишком долго для определенного идентификатора процесса

У меня Centos 6.7, работающий с приложением Java через программу-обертку. Поэтому сначала я запустил это.

lsof -p 15200 | wc -l and I got the results immediately as 200

затем я запустил это, lsof -p 15232 | wc -lя продолжаю слишком долго и не получаю никаких результатов. Какой еще метод я могу использовать, чтобы получить общее количество открытых файлов? Мне нужно знать, потому что моя система продолжает зависать после определенного времени. Мне, возможно, нужно будет увеличить размер открытого файла.

решение1

Вы можете получить количество файлов, открытых процессом, идентифицированным по PID, например, 15232, выполнив:

ls -l /proc/15232/fd | wc -l

изСписки Debian:

Я пытаюсь понять значение фразы:

/proc/$PID/fd/*

файлы.

Это ссылки, указывающие на открытые файлы процесса, pid которого равен $PID. Fd означает «файловые дескрипторы», что является целым числом, идентифицирующим любой программный ввод или вывод в UNIX-подобных системах.

На самом деле именно здесь lsofкоманда извлекает информацию, чтобы предоставить вам файлы процесса.

Это функция ядра Linux, не зависящая от дистрибутива.

Связанный контент