Porcentagem máxima recomendada para preencher uma grande unidade de dados ext4

4

A porcentagem de blocos reservados padrão para sistemas de arquivos ext é de 5%. Em uma unidade de dados de 4 TB, isso é 200GB, o que parece excessivo para mim.

Obviamente, isso pode ser ajustado com tune2fs:

 tune2fs -m <reserved percentage> <device>

no entanto, a página man do tune2fs afirma que uma das razões para esses blocos reservados é evitar a fragmentação.

Então, dado o seguinte (eu tentei ser específico para evitar opiniões muito diferentes):

  • ~ 4 TB HD
  • Usado para armazenar arquivos grandes (todos os > 500mb)
  • Uma vez completo, muito poucas gravações (talvez uma vez por mês, são substituídos de 1 a 5 arquivos)
  • Somente dados (nenhum sistema operacional ou aplicativos em execução na unidade)
  • Leituras moderadas (aproximadamente 20 tb por semana e todo o volume lido a cada 3 meses)
  • O desgaste do HDD é preocupante e matar um HDD com o objetivo de economizar 20 GB não é o resultado desejado (isso é mesmo uma preocupação?)

Qual é a porcentagem máxima que o drive pode ser preenchido sem causar (perceptível de uma perspectiva de desempenho e / ou desgaste do hdd) a fragmentação?

Existe alguma outra preocupação em preencher um grande disco rígido de dados com uma alta porcentagem e / ou definir a contagem de blocos reservados para dizer 0,1%?

    
por maloo 30.11.2016 / 10:59

1 resposta

1

O maior problema com a fragmentação é fragmentação do espaço livre , o que significa que quando o sistema de arquivos fica cheio e não há mais grandes partes livres do espaço livre, o desempenho do seu sistema de arquivos cai. Cada novo arquivo pode alocar apenas pequenos trechos de espaço de cada vez, por isso é muito fragmentado. Mesmo quando outros arquivos são excluídos, os arquivos gravados anteriormente são espalhados por todo o disco, fazendo com que novos arquivos sejam fragmentados novamente.

No caso de uso que você descreve acima (~ 500MB de arquivos, relativamente poucos sobrescritos ou novos arquivos sendo gravados, arquivos antigos de ~ 500MB sendo excluídos periodicamente, estou assumindo algum tipo de sistema de armazenamento de vídeo) você terá relativamente pouca fragmentação - supondo que o tamanho do seu arquivo permaneça relativamente constante. Isso é especialmente verdadeiro se suas gravações forem de thread único, já que vários segmentos de gravação não estarão competindo pela pequena quantidade de espaço livre e intercalando suas alocações de bloco. Para cada arquivo antigo excluído do disco, você terá algumas centenas de MB de espaço contíguo (supondo que o arquivo não tenha sido fragmentado para começar) e ele seria preenchido novamente.

Se você tiver vários gravadores simultâneos, usar fallocate() para reservar grandes blocos de espaço para cada arquivo (e truncate() no final para liberar espaço restante) evitará a fragmentação também. Mesmo sem isso, o ext4 tentará reservar (na memória) cerca de 8MB de espaço para um arquivo enquanto ele está sendo gravado, para evitar a pior fragmentação.

Eu recomendo que você mantenha pelo menos um múltiplo decente do seu tamanho de arquivo livre (por exemplo, 16GB ou mais) para que você nunca consiga consumir todos os dribs e drabs de blocos livres e introduzindo permanente fragmentação do espaço livre.

    
por 18.04.2018 / 01:04