Estamos com um limite de inode em nosso servidor de arquivos e estou fazendo um experimento para reduzir o número de inodes. Como posso descobrir quantos inodes um diretório usa? Eu li que o kernel do linux não cria um inode para links flexíveis com menos de 60 bytes , mas armazena esse link simbólico no próprio inode do diretório. Portanto, estou tentando reduzir o comprimento dos links simbólicos para menos de 60 bytes e ver se isso reduz a contagem de inodes.
EDIT: (não é possível colocar novas linhas nos comentários ...) @caliban O que estou sugerindo é criar 1 link simbólico para o diretório pai e depois fazer com que todos os outros links simbólicos apontem para esse diretório pai, por exemplo, links originais:
a -> /LONG_PATH/a
b -> /LONG_PATH/b
c -> /LONG_PATH/c
com link simbólico do diretório
__parent_dir -> /LONG_PATH
a -> parent_dir/a
b -> parent_dir/b
c -> parent_dir/c
Respostas:
Um inode para cada arquivo e diretório, essa é a regra. E sobre a parte em que links simbólicos com menos de 60 bytes são armazenados no próprio inode do diretório ... também acredito que isso esteja errado.
Essencialmente, quando um link simbólico tem menos de 60 bytes, ele é realmente armazenado em seu próprio inode (que é separado do inode do diretório) e um bloco de dados não é criado. Assim, acelera a leitura de links simbólicos com menos de 60 bytes, pois um bloco de dados não precisa ser lido, resultando em operações mais rápidas.
fonte