O Linux tem maneiras de armazenar em cache IO com memória

3

Meu servidor tem uma grande quantidade de memória. No entanto, a quantidade de IO (cada uma das quais é pequena) é muito alta.

Existe uma maneira de fazer um drive virtual fora da porção da memória?

Eu percebo que também posso usar o SSD, mas eles são caros.

Eu preciso de velocidade e tamanho. Então, a memória só não funciona. Os dados não acessados com frequência devem estar em hdisk.

    
por user4951 24.01.2013 / 11:02

3 respostas

6

Use tmpfs . Geralmente é montado em /dev/shm com o tamanho padrão 1/2 do total de RAM. A vantagem é que a memória está disponível para uso geral pelo sistema, até que você coloque algo lá (é reservado na hora). Você pode querer ajustar um pouco a configuração padrão - eu pessoalmente tenho algo parecido com o seguinte em / etc / fstab:

tmpfs  /dev/shm  tmpfs  defaults,size=16m   0   0
tmpfs  /free     tmpfs  defaults,size=66%   0   0

Isso faz duas coisas:

  1. monta tmpfs bastante pequenos (16MB) em /dev/shm/ para aplicativos que possam querer usá-lo. O tamanho é limitado para evitar desperdício acidental de memória devido a erros.

  2. monta tmpfs com tamanho de 2/3 da RAM disponível em /free .

Observe que o tamanho do bloco do sistema de arquivos é igual ao tamanho da página da memória - se você estiver usando arquitetura com tamanho de página de memória maior (por exemplo, PowerPCs ou Itanium), mesmo o arquivo vazio ocupará a página inteira. Essa sobrecarga pode ser razoavelmente reduzida criando um arquivo grande, formatando-o com um sistema de arquivos "regular" com blocos menores (por exemplo, o XFS pode usar blocos tão pequenos quanto 512B) e montando-o em loop.

Quanto ao SSD - são ordens de magnitude mais lentas que a RAM, ficarão armazenadas em cache de qualquer forma e terão um número limitado de ciclos de apagamento, portanto, a questão é se você deseja usá-las quando tiver RAM suficiente. E, a propósito, existem ainda unidades de memória RAM de hardware .

    
por 24.01.2013 / 13:41
0

Sim. Isso é chamado de cache de disco. Isso acontece automaticamente.

Se você está vendo muita E / S, então você tem programas fugitivos, você afinou algo ou seu sistema não tem recursos suficientes.

Você pode colocar arquivos em uma unidade RAM, mas isso é quase sempre pior do que deixar o kernel gerenciar um cache de dados usados recentemente. Cada byte alocado para uma unidade RAM é muito menor para aplicativos e cache de disco.

    
por 25.01.2013 / 00:08
0

Confira o RapidCache!

Faz parte do RapidDisk. Ele faz o cache de IO dos arquivos vs Blocks (como o cache linux faz), tornando-o ideal para VM's!

link

    
por 16.08.2015 / 01:37

Tags