Como podemos personalizar sistemas de arquivos linux como ext2 / 3?

4

Na verdade, o IOzone é uma ferramenta de benchmark do sistema de arquivos. O benchmark gera e mede uma variedade de operações de arquivos, como leitura / escrita sequencial, leitura / escrita aleatória. Por isso, quero personalizar meu próprio sistema de arquivos Linux ext3 para leitura aleatória (intensivo de banco de dados ou OLTP) ou leitura seqüencial (aplicativo de áudio / vídeo) para que haja melhor desempenho para um aplicativo específico. E como podemos alterar os parâmetros dos sistemas de arquivos, como o tamanho do bloco, o cache de disco, o tamanho do buffer, etc. para obter um melhor desempenho.

    
por Sushant Jain 09.04.2011 / 06:03

1 resposta

4

Para alterar essas coisas, você precisará executá-las na criação do sistema de arquivos com mke2fs (que mkfs.ext4 , por exemplo, usa) ou algumas das opções de ajuste estarão disponíveis após a criação com tune2fs . Este tópico do Fórum nos fóruns do Gentoo foi sobre o ajuste do ext3 . Aqui está o que eu acho que são as partes importantes de que (é tudo copiado com alguma formatação) * (Por favor, esteja ciente de que data=journal desativa algumas melhorias de desempenho no ext4) *

Usando a indexação de diretório

Esse recurso melhora o acesso ao arquivo em diretórios ou diretórios grandes contendo muitos arquivos usando árvores binárias com hash para armazenar as informações do diretório. É perfeitamente seguro de usar e proporciona uma melhoria bastante substancial na maioria dos casos; por isso é uma boa ideia ativá-lo:

tune2fs -O dir_index /dev/hdXY

Isso só terá efeito com os diretórios criados nesse sistema de arquivos após a execução do tune2fs. Para aplicar isso aos diretórios existentes atualmente, devemos executar o utilitário e2fsck para otimizar e reindexar os diretórios no sistema de arquivos:

e2fsck -D /dev/hdXY 

Ativar o diário completo

Por padrão, as partições ext3 são montadas com o modo de dados 'ordenado'. Nesse modo, todos os dados são gravados no sistema de arquivos principal e seus metadados são confirmados no diário, cujos blocos são logicamente agrupados em transações para diminuir a E / S do disco. Isso costuma ser um bom padrão para a maioria das pessoas. No entanto, descobri um método que aumenta a confiabilidade e o desempenho (em algumas situações): registrando tudo em diário, incluindo os dados do arquivo em si (conhecido como modo de dados 'diário'). Normalmente, seria de se pensar que o registro em diário de todos os dados diminuiria o desempenho, porque os dados são gravados no disco duas vezes: uma vez no diário e depois confirmados no sistema de arquivos principal, mas esse não parece ser o caso. Eu o habilitei em todas as nove partições e só vi uma pequena perda de desempenho na exclusão de arquivos grandes. De fato, fazer isso pode realmente melhorar o desempenho em um sistema de arquivos onde muita leitura e escrita devem ser feitas simultaneamente. Consulte este artigo escrito por Daniel Robbins no site da IBM para obter mais informações

Na verdade, colocar / usr / portage em sua própria partição ext3 com o modo de dados de diário parece ter diminuído o tempo necessário para executar emerge --sync significativamente. Eu também vi pequenas melhorias no tempo de compilação.

Existem duas maneiras diferentes de ativar o modo de dados de diário. O primeiro é adicionando data = journal como uma opção de montagem em / etc / fstab. Se você fizer dessa maneira e quiser que seu sistema de arquivos raiz também o use, você também deve passar o parâmetro rootflags = data = journal como um parâmetro do kernel na configuração do bootloader. No segundo método, você usará tune2fs para modificar as opções de montagem padrão no superbloco do sistema de arquivos:

tune2fs -O has_journal -o journal_data /dev/hdXY

Por favor, note que o segundo método pode não funcionar para kernels mais antigos. Especialmente o Linux 2.4.20 e abaixo provavelmente desconsiderará as opções de montagem padrão no superbloco. Se você estiver se sentindo aventureiro, também pode querer ajustar o tamanho do diário. (Deixei o tamanho do diário como padrão.) Um diário maior pode oferecer melhor desempenho (ao custo de mais espaço em disco e tempos de recuperação mais longos). Por favor, certifique-se de ler a seção relevante do manual do tune2fs antes de fazer isso:

tune2fs -J size=$SIZE /dev/hdXY

Verificando as opções do sistema de arquivos usando o tune2fs

Bem, agora que ajustamos nosso sistema de arquivos, queremos garantir que esses ajustes sejam aplicados, certo? Surpreendentemente, podemos fazer essas opções usando o utilitário tune2fs com bastante facilidade. Para listar todo o conteúdo do superbloco do sistema de arquivos, podemos passar a opção "-l" (letra minúscula "L") para tune2fs:

tune2fs -l /dev/hdXY

Diferentemente das outras chamadas do tune2fs, isso pode ser executado em um sistema de arquivos montado sem causar danos, já que ele não acessa nem tenta alterar o sistema de arquivos em um nível tão baixo.

Isso lhe dará muitas informações sobre o sistema de arquivos, incluindo as informações de bloco / inode, bem como os recursos do sistema de arquivos e as opções de montagem padrão, que estamos procurando. Se tudo correr bem, a parte relevante da saída deve incluir os sinalizadores "dir_index" e "has_journal" na lista de recursos do sistema de arquivos, e deve mostrar uma opção de montagem padrão de "journal_data".

    
por 09.04.2011 / 06:31