O melhor sistema de arquivos do Linux para trabalhar com 10000 de arquivos sem sobrecarregar o sistema I / O

3

Sabe-se que certos AMD64 Linuxes estão sujeitos a não responder sob E / S de disco pesado (veja fóruns do Gentoo: O sistema AMD64 lento / sem resposta durante o acesso ao disco (Parte 2) ), infelizmente tem esse.

Eu quero colocar /var/tmp/portage e /usr/portage trees em uma partição separada, mas qual FS escolher para ela?

Requisitos:

* for journaling, performance is preffered over safe data read/write operations
* optimized to read/write 10000 of small files 

Candidatos:

* ext2 without any journaling
* BtrFS

Nos testes de Phoronix, BtrFS demonstrou um bom acesso aleatório desempenho (gordura melhor que XFS, portanto, pode ser menos agressivo ao CPU). No entanto, a operação de desempacotamento parece ser mais rápida com o XFS, mas foi testado que a descompactação da árvore de kernel para o XFS faz com que meu sistema reaja mais devagar por 51% de desconsideração de quaisquer processos e agendamentos agendados.

Por que nenhum ReiserFS? O Google fez isso (q: reiserfs ext2 cpu): %código% É mesmo agora?

    
por kagali-san 12.02.2011 / 17:57

3 respostas

2

Ext4, Btrfs, Reiser4, Reiser3 (com opção de notail). O XFS é uma droga de operações intensivas de metadados (como muitos arquivos).

    
por 12.02.2011 / 18:59
1

Você realmente não precisa fazer o journalling para esses diretórios (já que eles podem ser facilmente restaurados), então não importa qual sistema de arquivos você escolha, você pode desativar o journalling.

De volta quando eu usei o Gentoo, eu usei o ReiserFS 3 para / usr / portage. O motivo é simples: foi bem rápido, e economizou muito espaço comparado a outros sistemas de arquivos quando você está lidando com um grande número de arquivos muito pequenos. (usando a opção "notail" remove este benefício, é claro) Eu notei que ao longo do tempo o desempenho nesse sistema de arquivos diminuiria. Isto é devido ao fato de que existem gravações / exclusões muito frequentes em / usr / portage e não importa qual sistema de arquivos você usa, depois de um tempo a fragmentação irá torná-lo mais lento. Então, às vezes eu peguei um targz de / usr / portage, reformatei a partição e descompactei o targz nele novamente ... isto te dá um novo / usr / portage sem fragmentação.

Eu não sei se eu ainda usaria ReiserFS agora .. Eu provavelmente iria para ext4 (com o diário desabilitado) ou ext2.

Sobre / var / tmp / portage ... se você tiver ram suficiente, você pode querer mapear isso no tmpfs. Dessa forma, ele irá usar o máximo de RAM possível, mas vai trocar quando os dados não couberem na memória RAM.

    
por 13.02.2011 / 01:27
0

O Ext2 é bastante lento em comparação com o outro sistema operacional. Ele também pode ter problemas com um grande número de arquivos. Eu recomendo strongmente não usá-lo - ext4 com journalling é uma chaleira diferente de peixe completamente.

Pessoalmente, eu me inclinava para o Reiserfs para um sistema de arquivos com muitos arquivos pequenos - ele é especificamente otimizado para esse tipo de operação. Mas eu principalmente trabalho com servidores web - onde o acesso é predominantemente de leitura / apenas (eu uso ext4 para db). A taxa na qual ele usa CPU não é tão grande - na verdade, um CPU mais alto seria um bom indicador de que menos E / S de arquivo real é necessário para concluir uma operação!

Pesquisando o artigo original - o comentário que você citou se refere especificamente ao comportamento de arquivos grandes - não sou especialista em Gentoo, mas acredito que isso seja irrelevante para o portage.

    
por 13.02.2011 / 14:21