Servindo html do ramdisk do linux

6

Eu vi um tutorial um tanto datado que sugere servir arquivos html com um ramdisk assim:

mkfs -q /dev/ram1 102400

Eu também encontro outra fonte que usa algo assim:

mount -t tmpfs -o size=1024 none /mnt/rds

Estes dois métodos são igualmente válidos? Eu estou usando o Centos 6.3 com nginx. Então, na prática, quero servir os arquivos em /usr/share/nginx/html da RAM.

E no caso de eu montar o disco, tenho que montar novamente sempre que houver uma alteração genuína na pasta original?

    
por StCee 22.02.2013 / 15:58

4 respostas

4

Da sua pergunta (último parágrafo), eu suponho que você acha que o ramdrive terá o mesmo conteúdo que o sistema de arquivos original abaixo. Esse não é o caso. Você terá um diretório vazio e precisará preenchê-lo primeiro. Eu não acho que isso é o que você quer.

O Linux tem um sistema de cache muito bom. Cada página de memória que não é usada para a memória do aplicativo será usada como cache. Isso significa: mesmo sem um tmpfs (o método que eu recomendaria), seu arquivo permanecerá na memória até que haja uma necessidade real de liberá-lo de lá.

Dado que realmente acontece e sua memória fica muito cheia:

  • se você usar tmpfs, seu tmpfs contens se moverá para sua memória swap, o que significa que também é salvo em disco e não será mais rápido do que usar um sistema de arquivos real.
  • se você não usar tmpfs, sua versão em cache será liberada da memória, o que consome quase nenhum tempo. quando for acessado na próxima vez, ele será lido do disco e retornará ao cache.

Portanto, não vejo qualquer vantagem em usar o tmpfs desde que você não gere esses arquivos dinamicamente e em intervalos muito curtos. O Linux normalmente é muito mais eficiente se você decidir sobre o uso e troca de memória.

    
por 23.02.2013 / 15:53
33

Por que se incomodar? O Linux vai armazená-los em cache de qualquer maneira, na primeira vez que forem lidos do disco. E se forem lidos com frequência suficiente eles sempre serão armazenados em cache .

    
por 22.02.2013 / 16:00
3

O método tmpfs tem menos sobrecarga. No exemplo / dev / ram1, você tem um sistema de arquivos inteiro com inodes, diretórios, etc. armazenado em um dispositivo de bloco. Com tmpfs é essencialmente apenas o cache de disco.

Sim, se você criar um ramdisk e copiar arquivos para ele, será necessário copiar esses arquivos novamente sempre que houver uma alteração.

    
por 22.02.2013 / 18:13
0

Sem dizer que usar um disco RAM é uma boa idéia: lembro de ter lido um artigo (infelizmente sem URL disponível) sobre benchmarking dos dois tipos de discos RAM que surpreendentemente mostravam diferenças relevantes (esqueci qual era melhor).

    
por 22.02.2013 / 16:54