Назад | Перейти на главную страницу

Linux: подсчет открытых файлов для процесса

Как я могу проверить, сколько открытых файлов сейчас используется?

Проверка PM2 - это просто пример:

Я нашел PID:

ps aux | grep pm2 | awk '{ print $2 }'

Проверил, что есть лимит в 65536 открытых файлов:

# cat /proc/16305/limits | grep 'Max open files'

Максимальное количество открытых файлов 65536 65536 файлов

Этот лимит устанавливается через systemd:

# cat /etc/systemd/system/pm2.service.d/nofile_limit.conf
[Service]
LimitNOFILE=65536

Я знаю, что могу проверить, сколько файлов открыто в зависимости от пользователя:

lsof -u UserName | wc -l
252

PM2 работает на другом пользователе, чем PM2, и когда я проверил предел для этого пользователя, он смехотворно мал, так что здесь что-то не так ...

Как я могу проверить, сколько открытых файлов используется в настоящее время, если лимит установлен и управляется systemd?

Когда я писал этот пост, у меня возникла идея, может быть, это может быть решением моей собственной проблемы:

lsof | grep ' userName ' | awk '{print $NF}' | sort | wc -l
2348

Что вы думаете?

Если вы хотите проверить один процесс, который, как вы знаете, pid, попробуйте это

ls /proc/$pid/fd/ | wc -l