Получить максимальный уровень симлинков

Для выделенного балансировщика нагрузки я бы отслеживал общее количество файлов, открытых в системе, вместо того, чтобы тратить ресурсы ввода-вывода и ЦП на их подсчет по процессам. Оставшиеся открытые файлы нежелательными -процессами должны быть бессмысленным значением для предполагаемого результата.

Чтобы узнать глобальные открытые файлы системой Linux, нет необходимости их подсчитывать; ядро Linux отслеживает, сколько файлов у него открыто.

Чтобы это узнать, либо беги:

cat /proc/sys/fs/file-nr | awk ' { print $1 } '

или

sysctl fs.file-nr | awk ' { print $1 } '

Это намного эффективнее, чем подсчет всех файлов, открытых с выходом lsof, который будет перемещаться по всем каталогам /proc/$PID/fdи негативно повлияет на ресурсы ввода-вывода / ЦП вашей системы.

3
04.11.2017, 21:03
1 ответ
touch file
test_max=45
for ((j=2,i=3;i<test_max;i++,j++)) ; do ln -s $j $i; done
for ((i=1;i<test_max;i++)) ; do if ! [ -f "$i" ]; then echo "$i"; break; fi ; done
41
1
27.01.2020, 21:30

Теги

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