ubuntu - получить размер каталога пустых файлов

Я тестирую плоский дизайн, который будет использоваться вместо sql db, он использует структуру вложенных каталогов с файлами. Сначала я думал хранить данные внутри файла, но это не более 40 знаков на файл, так зачем открывать файл, когда все можно прочитать по его имени .. но теперь я не могу узнать, какова будет реальная разница в пространстве для хранения по сравнению с таблицей sql. Я попробовал du и find, и он всегда показывает только размеры каталогов и 0B для файлов ..

Есть ли способ узнать фактический размер файлов? Или, по крайней мере, рассчитал их вручную, или предположил?

Не уверен, какую файловую систему использует мое облако, я полагаю, ext4 .. ОС - ubuntu 14.04

РЕДАКТИРОВАТЬ:

Единственное, что я понял из ответов которое будет использовать дисковое пространство, - это сам каталог. Это минимум 4 Кбайт. В каждом каталоге должно быть около 300 пустых файлов. Если один индексный дескриптор потребляет минимум 256 ББ, это должно раздуть каталог до 76,8 КБ, но размер каталога по-прежнему составляет всего 4 КБ.

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

SELECT pg_size_pretty(pg_total_relation_size('table_name'));

в таблице с 300 записями (вместо одной строки для имени было 5 полей - 6 с pk: 1x ForeignKey, 1xCharfield max 20 len, 2x FloatField, 1x IntegerField), в ответе был указан размер 16 КБ. Это postgresql 9.3 и django 1.8.6. Может ли действительно быть разница в 60 КБ между хранением этих данных в таблице SQL и в имени пустого файла? Или каталог вообще не будет раздуваться inodes, и я сэкономлю 12Kb?

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

0
задан 27 October 2017 в 11:05
2 ответа

Если файл используется только для его имени, оставив его пустым, единственное, что имеет реальный размер, - это сам каталог.

Ключевым моментом, который нужно понять, является то, что каталог является чем-то особенным вид файла - файл, который можно выполнить ( cd / dirname ), прочитать ( ls / dirname ) и записать / изменить ( touch / dirname / filename и rm /dirname/filename .

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

Для получения дополнительной информации вы можете прочитать здесь и здесь

0
ответ дан 5 December 2019 в 07:17

вы можете cd в каталог и запустить ls -lha , тот, который называется . это ваш локальный каталог. Имейте в виду, что этот подход, который вы применяете, потребует много inodes

EDIT 1:

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

Macbook-Pro: / tmp / test $ ls -lha всего 0 drwxr-xr-x 6 DiegoVelez wheel 204B 26 окт 20:07. drwxrwxrwt 43 root wheel 1.4K 27 окт, 09:33 .. -rw-r - r-- 1 DiegoVelez wheel 0B 26 октября 20:06 файл -rw-r - r-- 1 DiegoVelez wheel 0B 26 октября 20:06 file2 -rw-r - r-- 1 DiegoVelez wheel 0B 26 октября 20:06 file3 -rw-r - r-- 1 DiegoVelez wheel 0B 26 октября 20:07 file4

0
ответ дан 5 December 2019 в 07:17

Теги

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