O sistema de arquivos mais rápido do Linux para / tmp?

1

Qual é o sistema de arquivos mais rápido (e / ou opções de sistema de arquivos) para uma unidade onde eu não me importo se os dados sobreviverão a uma falha ou falta de energia, como / tmp?

Os dados são algumas centenas de gigabytes, portanto, não cabem na RAM. Há uma mistura de arquivos pequenos e muito grandes (pense em arquivos HTML e vídeos).

É melhor apenas criar uma partição swap massiva e usar tmpfs? (Isso vai funcionar mesmo?) Ou devo usar ext2 / 3/4 ou XFS ou Btrfs? Quais são as opções de otimização que devo usar para desativar todos os recursos de segurança e obter o máximo de desempenho do sistema de arquivos?

O disco é um disco rígido. Um SSD não é viável: este é um servidor de compilação, portanto, os dados estão sempre sendo excluídos e recriados, portanto, o número de bytes gravados por dia é algumas vezes maior que o tamanho do disco. Isso significa que é improvável que um SSD consumidor dure, e os SSDs de classe de datacenter projetados para a alta carga de gravação são muito caros.

    
por user9876 22.07.2015 / 13:51

2 respostas

2

Parece que suas compilações são bem grandes, por isso eu ficaria longe da enorme swap + tmpfs - isso poderia indiscriminadamente forçar seu sistema a trocar enquanto construía o que arruinaria seu desempenho de compilação.

Para meus sistemas de compilação eu só tinha as opções ext2 e ext3, o ext2 era mais rápido (compreensivelmente - sem registro no diário).

Veja também as opções tune2fs e mount além das opções mkfs (conforme aplicável). Você provavelmente poderia colocar coisas como user_xattr , acl . Você pode ser capaz de eliminar o timestamping ( noatime , nodiratime ), mas com cuidado - algumas compilações podem depender disso.

Não se esqueça da fragmentação, ela realmente se arrasta em partições altamente agitadas, especialmente se elas ultrapassarem 80-90% do nível de preenchimento. Eu estava reformatando as partições de compilação cerca de uma vez por mês - para minhas compilações, isso significava apenas uma melhoria de 10-15%.

IMHO A melhor maneira de abordar isso é realmente testar suas opções, medir e comparar usando uma das construções típicas your como referência.

Nota: a velocidade do HDD pode não ser o fator limitante significativo na velocidade geral de construção (eu tinha builds com menos de 10% de melhoria em tmpfs / ramfs em HDDs). A estrutura de construção / dependências / paralelismo (que pode mudar no tempo à medida que o código evolui), fator -j, carga de CPU / RAM, rede, outros serviços de infraestrutura que sua construção pode usar também podem ter importância significativa.

    
por 22.07.2015 / 15:46
0

Odeio ser aquele cara, mas ... depende. Tudo depende da sua carga de trabalho. Apenas o teste mostrará a melhor escolha. Se este for um servidor de compilação, você provavelmente será limitado pela CPU de qualquer maneira, então eu escolheria a solução mais simples.

O uso de tmpfs / swap irá sobrecarregar a CPU quando os dados forem empurrados e retirados da memória. Eu não seguiria esse caminho, pois se for um servidor de compilação, você provavelmente desejará que esses ciclos sejam construídos de qualquer maneira.

Em termos de tipo de sistema de arquivos, eu escolheria qualquer sistema de arquivos e o montaria com "noatime". Isso dará o melhor desempenho com o mínimo de trabalho para iniciar alguns testes.

    
por 22.07.2015 / 15:42