Есть ли способ вывести список открытых файлов и упорядочить их в порядке возрастания времени? - PullRequest
1 голос
/ 16 октября 2019

У меня возникает проблема Too Many Open Files, даже когда я закрываю все файлы и соединения, которые я открываю, и когда я установил для мягкого и жесткого предела максимальное доступное значение, например 65535. Поэтому для отладки я пытаюсь изменить порядок вывода lsof по времени.

Ответы [ 2 ]

0 голосов
/ 16 октября 2019

Если strace / ltrace является избыточным, рассмотрите возможность проверки папки / proc / PID / fd. Каждое время изменения записи покажет временную метку, в которую был создан FD, фактически время открытия / подключения / принятия:

# X_PID is the PID of the process to monitor/check
ls -lt --time-style=full-iso /proc/$X_PID/fd

Пример вывода

total 0
lrwx------ 1 owner owner 64 2019-10-16 16:25:14.359506339 +0300 0 -> /dev/pts/0
lrwx------ 1 owner owner 64 2019-10-16 16:25:14.359506339 +0300 1 -> /dev/pts/0
l-wx------ 1 owner owner 64 2019-10-16 16:25:32.183370423 +0300 11 -> /tmp/a
l-wx------ 1 owner owner 64 2019-10-16 16:26:47.862798157 +0300 15 -> /tmp/b
l-wx------ 1 owner owner 64 2019-10-16 16:26:47.862798157 +0300 16 -> /tmp/a
l-wx------ 1 owner owner 64 2019-10-16 16:27:20.918550476 +0300 17 -> /tmp/a
lrwx------ 1 owner owner 64 2019-10-16 16:25:14.359506339 +0300 2 -> /dev/pts/0
lrwx------ 1 owner owner 64 2019-10-16 16:25:14.359506339 +0300 255 -> /dev/pts/0
0 голосов
/ 16 октября 2019

Если вы можете управлять командой запуска, подумайте об использовании strace / ltrace. Он может показать вам каждый файл, открытый / закрытый.

# When using ltrace, specify stdlib functions to monitor
ltrace -e open+close YOUR_COMMAND_HERE
OR
# Modern linux system will use openat system call to open a file
strace -e openat,close YOUR_COMMAND_HERE

Вы также можете прикрепить strace (и ltrace) к запущенному процессу (см. Справочную страницу)

Если вы знаете, что вы открыли(сетевые) соединения (а не файлы), рассмотрите возможность расширения / замены фильтра, чтобы сосредоточиться на принятии (входящем соединении), соединении (исходящем соединении) при необходимости.

...