Как я могу определить, сколько Inode использует каталог?

2325
Ross Rogers

Мы сталкиваемся с ограничением числа инодов на нашем файловом сервере, и я провожу эксперимент по сокращению числа инодов. Как я могу узнать, сколько inode использует каталог? Я читал, что ядро ​​Linux не создает индекс для софт-ссылок длиной до 60 байт, а хранит эту символическую ссылку в самом каталоге. Таким образом, я пытаюсь сократить длину символьных ссылок до 60 байт, а затем посмотреть, уменьшает ли это число инодов.

EDIT: (не может положить в новой строки комментариев ...) @caliban Что я предлагаю создает 1 символическую ссылку на родительский каталог, а затем, имеющие все другие символические ссылки указывают через этого родителя реж например, оригинальные ссылки:

a -> /LONG_PATH/a b -> /LONG_PATH/b c -> /LONG_PATH/c 

с символической ссылкой каталога

__parent_dir -> /LONG_PATH a -> parent_dir/a b -> parent_dir/b c -> parent_dir/c 
0
Если у вас не много символических ссылок в файловой системе, их изменение не будет иметь большого значения в долгосрочной перспективе. Я бы прикусил пулю и перенес некоторые или все данные в другую файловую систему, как только вы сможете забронировать время на обслуживание. David Spillett 15 лет назад 0
у нас должен быть инструмент, который генерирует множество символических ссылок каждый раз, когда выполняется аппаратное моделирование. Если мы сможем уменьшить использование inode этого одного инструмента, это может повысить производительность кеша inode и уменьшить количество inode. Ross Rogers 15 лет назад 0

1 ответ на вопрос

1
caliban

Индекс для каждого файла и каталога, это правило. А что касается части, где символические ссылки меньше 60 байт хранятся в самом каталоге inode ... Я тоже считаю, что это неправильно.

По сути, когда символьная ссылка имеет длину менее 60 байт, она фактически сохраняется в своем собственном иноде (то есть отдельно от инода каталога), и блок данных не создается. Таким образом, он ускоряет чтение символических ссылок менее чем на 60 байтов, поскольку блок данных не нужно читать, что приводит к более быстрым операциям.

позор ... спасибо за объяснение Ross Rogers 15 лет назад 0
Не стыдно - это влечет за собой повышение производительности, если вы можете сохранить ваши символические ссылки менее 60 байт, так как это сокращает один (возможно медленный) шаг чтения блока данных. Сделай это, принеси им все до <60 байтов! :) caliban 15 лет назад 1
Поскольку все символические ссылки на самом деле находятся в одном и том же каталоге, я собирался создать 1 символическую ссылку, которая указывает на этот каталог, а затем сделать все остальные символические ссылки относительными к этому одному каталогу. Как вы думаете, это также улучшит ситуацию? например, оригинальные ссылки (более 100 ссылок) a -> / LONG_PATH / ab -> / LONG_PATH / bc -> / LONG_PATH / c [...] измененные ссылки: _parent -> / LONG_PATH a -> _parent / ab -> _parent / bc -> _parent / c [...] Ross Rogers 15 лет назад 0
yarrr ... нет новых строк в комментариях, видимо .. Ross Rogers 15 лет назад 0
В соответствии с вашим предложением выше, нет - на самом деле я думаю, что производительность будет ухудшаться, если вы сделаете символическую ссылку на каталог, в котором хранятся другие символические ссылки (из того, что я могу понять из вашего комментария выше). Лучше всего изменить LONG_PATH на максимально короткий. caliban 15 лет назад 1
Это связано с тем, что символическая ссылка на этот каталог LONG_PATH будет читаться, ДОЛЖНО быть с inode каталога, для каждого доступа к каждой отдельной символической ссылке. caliban 15 лет назад 1
но каталог LONG_PATH будет кэшироваться в кэше каталога inode / в основной памяти, которая не требует доступа к диску. Смотрите мое объяснение моей идеи в моем оригинальном «вопросе». Спасибо, что поговорили со мной об этом. Ross Rogers 15 лет назад 0
О, не беспокойся! В любом случае, я люблю общаться (SU иногда получает методические вопросы и ответы). Да, он кэшируется в памяти, но это все еще ОДИН дополнительный шаг к Symlink> Directory> Symlink. И система всегда должна анализировать эту символьную ссылку каталога в случае ее изменения. Без этой символической ссылки на этот каталог, он просто идет Каталог> Симлинк. Вы можете запустить некоторые инструменты анализа производительности, но я чувствую, что это будет медленнее. caliban 15 лет назад 1

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