Что такое ALGORITHM UNIX DU COMMERS использует для расчета дискового пространства?

StackOverflow https://stackoverflow.com/questions/4313065

  •  29-09-2019
  •  | 
  •  

Вопрос

Я пытался использовать du Рассчитать использование диска сегодня в одном каталоге. Размер каталога составляет 6 ГБ, и для расчета требуется следующее количество времени:

prompt> time du -sh .
6.0G   .

real    1m32.405s
user    0m2.053s
sys     0m16.552s

Что использует команда Algorithm Unix du для расчета пространства диска? Почему это так медленно? Есть ли какие -либо альтернативы для более эффективного расчета дискового пространства? Платформа вызова Sun. Отказ Каталог, для которого был рассчитан размер, установлен NFS.

Это было полезно?

Решение

Я думаю, что это просто рекурсивно идет в каталог, при этом добавляя размеры найденных файлов. Довольно просто, правда, но, конечно, требуется время. Это может быть быстрее, если файловая система делает эти операции быстрее.

Другие советы

DU должен перечислить все каталоги и статику

При получении размеров файлов это суммирует их, и после того, как закончите, она печатает сумму

Например, в этом один каталог с 2 миллионами файлов на файловой системе SSHFS:

prompt$ time du -sh .
367G    .

real    12m53.093s
user    0m3.848s
sys     0m14.265s

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

prompt$ time du -sh .
367G    .

real    4m56.875s
user    0m4.136s
sys     0m15.257s

Его скорость зависит от количества файлов/каталогов. Если у вас есть каталог с 6 1 ГБ файлам, для расчета потребуется гораздо меньше времени. Он вычисляет размер файлов в данном каталоге и рекурсивно для каждого детского каталога.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top