Я посмотрел журналы из dropbox
в моей системе, и я вижу сопоставимые различия.
Когда я смотрю подробно на отдельные журналы, я обнаруживаю, что в dropbox
показано 400 файлов, открытых с помощью lsof -p
, и 23500, открытых с помощью ls ... | grep '^dropbox'
Глядя на длинный список, я обнаружил, что dropbox
имеет 60 потоков, и большинство из базовых 400 файлов представлены в каждом потоке, что объясняет разницу.
Что я не знаю, так это то, находятся ли дескрипторы файлов в потоках в разделяемой памяти или индивидуально для потоков. Дескрипторы файлов в общей памяти не должны учитываться более одного раза в лимите открытых файлов.
Моя команда для подсчета потоков была:
lsof -n | grep "^dropbox " | awk '{print $3}' | uniq | wc -l
Если ваше приложение ведет себя аналогично, то нижняя цифра является реалистичной.
Обратите внимание, что все цифры являются приблизительными: я проигнорировал, когда строки заголовков включены в счетчики и включение основного PID в счетчик потоков. Поскольку отчеты ls
относятся к разным временам, они никогда не могут быть полностью согласованы.