Размер составляет 78 байт, потому что каталог почти пуст. Под «каталогом» я подразумеваю непосредственное содержание потомка этой папки, т. Е. Если у вас есть
.../controllers/ Class1/Whatever /Resources... Class2/Whatever /Resources...
тогда «контроллеры» имеют только три записи (.., Class1 и Class2. Я не знаю точно, действительно ли или как .. действительно хранится).
Даже если на диске каталог будет занимать один целый блок, следовательно, 4 КБ ( но см. Ниже ... ), логический размер каталога остается 78 байт, и во многих отношениях он рассматривается как файл ( технические документы XFS относятся к это как файл каталога ). Если вы создадите новый объект сразу controllers
, я ожидаю, что этот размер будет увеличиваться.
Кроме того, очень маленькие каталоги могут быть сохранены внутри inode, таким образом занимая ноль фактических блоков:
Очень маленькие файлы
Большинство символических ссылок и файлов каталогов представляют собой небольшие файлы. XFS позволяет хранить эти файлы в inode для повышения производительности. XFS также использует отложенные записи для ожидания, чтобы собрать весь маленький файл в буферном кеше перед записью на диск ...
Напомним, насколько я понимаю, вы можете иметь
- небольшие файлы каталогов, хранящиеся в inodes (« каталоги короткой формы »), занимающие нулевые блоки и организованные в виде массива.
- разумные файлы каталогов, хранящиеся в физических файлах, занимающих блок (« директории блоков »)
- большие файлы каталогов, хранящиеся в физических файлах, занимающие целое число, кратное блоку, и организованные как B-деревья для дополнительной скорости .
тестирование
В моей системе Linux пространство, доступное внутри индекса XFS для файла каталога, по-видимому, составляет около 156-157 байт. При превышении используется блок 4K, но освобождение пробела также освобождает блок, сохраняя информацию обратно в inode.
mkdir temp drwxr-xr-x 2 root root 6 2013-04-22 08:59 temp touch temp/x; ls -la temp drwxr-xr-x 2 root root 14 2013-04-22 09:00 temp mv temp/x temp/{ 100 x's } drwxr-xr-x 2 root root 113 2013-04-22 09:01 temp { 130 x's } drwxr-xr-x 2 root root 143 2013-04-22 09:02 temp { 140 x's } drwxr-xr-x 2 root root 153 2013-04-22 09:02 temp { 146 x's } drwxr-xr-x 2 root root 4096 2013-04-22 09:03 temp { 142 x's } drwxr-xr-x 2 root root 155 2013-04-22 09:03 temp