Questão Ramdisk ubuntu 10.04


Estou usando o Ubuntu 10.04 (64 bits) para o meu desktop.
A máquina tem 5 GB de RAM.

Eu quero usar o disco RAM (1G ou 2G), mas eu não sei como posso fazer isso.

Existe algum produto de código aberto do disco RAM?


12


origem




Respostas:


A tecnologia é embutida no kernel, você não precisa de nenhuma ferramenta extra. Na verdade, você já tem alguns discos RAM (que você não deveria usar, eles são reservados para o sistema), o que você pode ver fazendo

grep -w tmpfs /proc/mounts

Para configurar um disco RAM de 2 GB montado /ramdisk, adicione a seguinte linha para /etc/fstab:

ramdisk  /ramdisk  tmpfs  mode=1777,size=2g

Em seguida, monte o disco com o comando mount /ramdisk (isso será feito automaticamente quando você reiniciar).

O tamanho indicado é um máximo, o disco usa apenas a quantidade de memória dos arquivos que estão nele.


Você pode mudar /tmp para ser um disco RAM. No /etc/fstab linha acima, colocar /tmp ao invés de /ramdiske reinicie.

A primeira vez que você reinicia após mudar /tmp para ser um disco RAM, os arquivos que estavam em /tmp ficará oculto. Isso é inofensivo, exceto que eles estão desperdiçando um pouco de espaço em disco. Você pode limpá-los (depois de você reiniciou com /tmp no disco RAM) fazendo

mount --bind / /mnt
rm -r /mnt/tmp/* /mnt/tmp/.*
umount /mnt

o mount --bind comando faz /mnt uma visão duplicada do seu sistema de arquivos raiz; mas enquanto o disco RAM agora obscurece /tmp na visão da raiz, nada está obscurecendo /mnt/tmp.

ADICIONADO: Você pode mudar /tmp para um disco RAM sem reiniciar, é um pouco mais complicado. Adicione a linha para /etc/fstab como acima, execute os seguintes comandos:

mkdir /tmp.old
mount --bind /tmp /tmp.old
mount /tmp
cd /tmp
ln -s /tmp.old/* /tmp/.* .

Então apague /tmp.old após sua próxima reinicialização.

A razão pela qual você não pode simplesmente mover arquivos de /tmp.old para /tmp é que alguns programas críticos têm arquivos abertos em /tmp, por exemplo /tmp/.X11-unix/X0 que o servidor X escuta e todo programa GUI é aberto quando é iniciado. Mover um arquivo para um sistema de arquivos diferente significa copiá-lo e excluir o antigo, para que você acabe com o servidor X ainda em escuta /tmp.old/.X11-unix/X0 mas os clientes X contatam /tmp/.X11-unix/X0 em vão. Em um servidor, você pode se safar se for cuidadoso.


18



@giles: Existe uma maneira de fazer isso sem alterar o fstab e reinicializar? Estou assumindo que há um método mkfs correspondente, seguido por uma montagem, mas "man mkfs" não foi muito útil. - hotei
@hotei: A reinicialização é apenas para mudar /tmp ao longo de tmpfs. Não é necessário, e eu editei minha resposta para explicar como fazer isso, mas é mais complicado. Não há mkfs envolvido porque não há armazenamento subjacente para preparar, o kernel lida com tudo. - Gilles
@ giles: Obrigado pela atualização. Eu estava faltando a parte onde "mágica acontece" durante a leitura do mount da linha fstab. Eu acredito que eu entendo porque isso funciona agora. - hotei
Posso perguntar se isso resulta em uma aceleração perceptível? - Robert Massaioli
@Robert: Eu acho que isso causou uma aceleração perceptível no SSD muito lento do meu netbook (principalmente porque as sincronizações podem durar vários segundos e /tmp no disco aumenta a freqüência de sincronizações), mas essa é uma impressão subjetiva não confiável. Eu nunca tentei benchmark. - Gilles