3

du показывал некоторые диски с гораздо меньшим пространством, чем я ожидал, а ls -alh также показывал, что сумма сверху в три раза больше, чем сумма отдельных файлов. После этого ответа я проверил с помощью ls -s , и, конечно же, большинство файлов используют в три раза больше дискового пространства, чем их размер. Что вызывает это, и я могу сделать что-нибудь, чтобы уменьшить использование диска?

редактировать

Я вижу вывод, как это из ls -alhs:

 50K -rw-------   1 xxx xxx 9.0K Jan 29 20:34 20120103.gz
242K -rw-------   1 xxx xxx  67K Jan 29 20:53 20121130.gz

так что проблема не в том, что мои размеры файлов намного меньше 4 КБ.

1 ответ1

0

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

Файловая система распределяет данные по группам, иногда называемым кластерами (некоторыми файловыми системами). Размер кластера является переменным, но во многих случаях он имеет размер не менее 512 байт. 512 байт представляют размер физического сектора всех, кроме новейших жестких дисков, которые имеют 4096 байт.

Каждый файл использует как минимум 1 кластер, и в большинстве случаев последний кластер используется не полностью. Оставшееся место в каждом файле остается не выделяемым. При использовании FAT, FAT32, NTFS невозможно получить более 64 КБ для каждого кластера, но это не относится к Linux.

ls -alhs

насколько большой файл вверху списка . а ..?

Поэтому, если у вас много файлов, которые тратят впустую крошечное количество места, все это приводит к большому количеству потраченного впустую пространства.

Вы должны изучить точные детали вашей файловой системы, чтобы узнать эти данные. Изменение файловых систем может оказать значительное влияние на накладные расходы. Я попробовал BTRFS, и это потратило кучу места. Я сделал новую установку и запустил обновления, которые были в 2 раза выше или выше, чем в других файловых системах.

Ext4 также плохо работает с большим количеством маленьких файлов, идеальный пример этого - 1 копия исходного кода ядра содержит 10 000 тысяч маленьких файлов.

Вполне возможно, что ваша файловая система отвечает за потраченное впустую пространство и единственный способ изменить это изменение файловой системы.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .