Я ищу инструмент, который может контролировать, близок ли процесс к максимально открытому файлу.
1
2 ответа
2
lsof -p process-id
Со страницы руководства
Lsof перечисляет в своем стандартном выходном файле информацию о файлах, открытых процессами
[...]
-p s This option excludes or selects the listing of files for the processes whose optional process IDentification (PID) numbers are in the comma-separated set s - e.g., ``123'' or ``123,^456''. (There should be no spaces in the set.) PID numbers that begin with `^' (negation) represent exclu- sions. Multiple process ID numbers are joined in a single ORed set before participating in AND option selection. However, PID exclusions are applied without ORing or ANDing and take effect before other selection criteria are applied.
[...]
+|-r [t[m]] This option puts lsof in repeat mode. There lsof lists open files as selected by other options, delays t seconds (default fifteen), then repeats the listing, delaying and listing repetitively until stopped by a condition defined by the pre- fix to the option. If the prefix is a `-', repeat mode is endless. Lsof must be terminated with an interrupt or quit signal. If the prefix is `+', repeat mode will end the first cycle no open files are listed
0
запуск этого с правами root даст вам количество открытых файлов, открытых процессом с наибольшим количеством открытых файлов. Поскольку он на самом деле не следует по ссылкам в дереве процессов, он движется намного быстрее, чем lsof, и охватывает все выполняющиеся процессы на коробке. Однако его необходимо запускать с правами root.
find /proc/*/fd -type l -print | awk -F/ '{print $3}' | sort | uniq -c | sort -n | tail -1