[CentOS-pt-br] [OT] - Estrutura de armazenamento de uma grande quantidade de arquivos

Cleber Souza cleber.lists em gmail.com
Sábado Novembro 28 00:33:32 UTC 2009


No caso do desempenho do NFS existe a possibilidade de se utlizar
várias interfaces de rede no servidor em trunking (802.3ad) com o
apoio do switch. Isso te dará um throughput de acesso muito maior.

Para a manutenção dos arquivos a dsitribuição em diversos diretório
acelara o desempenho, mas deixa o gerenciamento complexo. Assim, o
gerenciamento deveria ser automatizado.

Na minha opinião, manter os dados em um banco de dados é a melhor
solução, com a manutenção da base em um storage e com banco de dados
em load-balance/failover. Aqui a combinação melhor vai depender de
quanto você tem pra gastar e dos seus requisitos de desempenho. Podem
variar de opções simples com mysql-cluster e storage NFS utilizando
trunking até NAS fibre-channel com conexões de fibra com os servidores
e Oracle como solução de banco de dados.

Enfim, a quantidade de fatores é enorme. Talvez seja melhor você fazer
alguns benchmarks comparando várias situação para depois avaliação a
infra-estrutura que você precisará e que melhor se adequa ao seu
cenário.


2009/11/27 Giovanni Tirloni <tirloni em gmail.com>:
> 2009/11/27 "Fábio Jr." <fjuniorlista em gmail.com>:
>> Fabio Rampazzo Mathias escreveu:
>>> Fabio,
>>>
>>> Vamos com calma....você não tem 4 milhões de figuras....você tem
>>> aprox. 1,34 milhão de figuras (4/3).... o resto é resize da mesma, que
>>> você pode armazenar no mesmo registro do MySQL. Só programar para
>>> trazer a figura conveniente. Depois, você está compartilhando um
>>> diretório via NFS. Eu diria que, o gargalo está no NFS, pois ele não é
>>> performático como o filesystem.
>> Tenho 4 milhões de aquivos no total. Uma imagem tem 3 tamanho diferentes
>> e são 3 arquivos diferentes. Ok, acho q foi isso q vc entendeu mesmo, só
>> pra confirmar. Concordo com você ao dizer que nfs é gargalo, mas ele é
>> um dos gargalos, já que a medida que eu aumento o numero de arquivos no
>> mesmo diretório, o próprio filesystem começa a perder performance na
>> hora de me retornar o arquivo. Pelo menos foi isso que eu percebi aqui.
>>>
>>> Outro ponto importante é a aplicação. Há a viabilidade de requisitar
>>> as 7 ou 10 figuras de uma vez só?
>>>
>> Através de uma conexão ao banco sim, mas não através de uma consulta só.
>> Eu posso abrir uma conexão, e fazer as minhas 7 ou 10 consultas nessa
>> mesma conexão.
>>> Acho que mesmo que a pergunta anterior não seja respondida de forma
>>> afirmativa, um banco de dados traria ganhos em termos de performance.
>>>
>>> Você sabe qual é a média de acessos e o pico de acessos (em
>>> quantidade) ??? Quanto ao cluster, qual máquina que você possui para o
>>> servidor NFS ?
>> O pico é de 120 requisições por segundo, e a média do dia é 40 req/seg.
>> Isso pq de madrugada a quantidade de requisições é muito baixa. A média
>> de requisições em horário comercial é de 60 req/sec.
>>
>> O servidor nfs é um Dual Xeon 5405 com 2 GB de memória com discos SAS de
>> 15k RPM com espelhamento.
>
> Todas as soluções apresentadas são ótimas do ponto de vista de cada
> um. Entretanto o seu maior problema, pelo que entendi, é o tempo que o
> fs demora para buscar o arquivo nesse diretório. Como já sugeriram,
> fazendo a simples mudança de criar mais diretórios irá resolver seu
> problema.
>
> abcdef.jpg -> a/b/c/abcdef.jpg
>
> Essa mudança na aplicação deve ser infinitamente mais fácil que
> colocar tudo em um banco de dados e mudar a lógica toda.
>
> Tenho lá minha dúvidas se adicionar camada de abstração em cima de
> camada de abstração vai melhorar a performance. Como sempre, o melhor
> é montar um ambiente separado e testar para a sua situação.
>
> A Internet está cheia de dicas de como otimizar o NFS.
>
> --
> Giovanni.
> _______________________________________________
> CentOS-pt-br mailing list
> CentOS-pt-br em centos.org
> http://lists.centos.org/mailman/listinfo/centos-pt-br
>



-- 
Cleber Paiva de Souza


Mais detalhes sobre a lista de discussão CentOS-pt-br