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

Как вы думаете?

1
задан 21 February 2017 в 15:20
1 ответ

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

ls /proc/$pid/fd/ | wc -l
1
ответ дан 15 December 2019 в 09:12

Теги

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