Ramdisk ubuntu 10.04

12

Estou usando o Ubuntu 10.04 (64bit) na minha área de trabalho.
A máquina possui 5 GB de RAM.

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

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

Benjamin
fonte

Respostas:

18

A tecnologia está embutida no kernel, você não precisa de ferramentas extras. Na verdade, você já possui alguns discos de RAM (que não devem ser usados, eles são reservados para o sistema), que você pode ver fazendo

grep -w tmpfs /proc/mounts

Para configurar um disco RAM de 2 GB montado /ramdisk, adicione a seguinte linha a /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 é o máximo, o disco usa apenas tanta memória quanto os arquivos nele contidos.


Você pode mudar /tmppara ser um disco RAM. Na /etc/fstablinha acima, coloque em /tmpvez de /ramdisk, em seguida, reinicie.

Na primeira vez em que você reinicia após mudar /tmppara um disco RAM, os arquivos que estavam /tmpnele serão ocultados. Isso é inofensivo, exceto que eles estão desperdiçando um pouco de espaço em disco. Você pode limpá-los ( depois de reiniciar /tmpno disco RAM) fazendo

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

O mount --bindcomando faz /mntuma visualização duplicada do seu sistema de arquivos raiz; mas enquanto o disco RAM agora obscurece /tmpna visualização raiz, nada está obscurecendo /mnt/tmp.

ADICIONADO : Você pode alternar /tmppara um disco RAM sem reiniciar, é apenas um pouco mais complicado. Adicione a linha /etc/fstabcomo acima, e execute os seguintes comandos:

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

Em seguida, exclua /tmp.oldapós sua próxima reinicialização.

O motivo pelo qual você não pode simplesmente mover arquivos de /tmp.oldpara /tmpé que alguns programas críticos têm arquivos abertos /tmp, por exemplo, nos /tmp/.X11-unix/X0quais 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 escutando, /tmp.old/.X11-unix/X0mas clientes X entrando /tmp/.X11-unix/X0em contato em vão. Em um servidor, você pode se mudar com cautela.

Gilles 'SO- parar de ser mau'
fonte
@ giles: Existe uma maneira de fazer isso sem alterar o fstab e reiniciar? Estou assumindo que existe um método mkfs correspondente, seguido por uma montagem, mas "man mkfs" não foi muito útil.
Hotei
1
@hotei: A reinicialização é apenas para mudar /tmppara tmpfs. Não é necessário e editei minha resposta para explicar como fazê-lo, mas é mais complicado. Não há mkfsenvolvimento porque não há armazenamento subjacente a ser preparado, o kernel lida com tudo.
Gilles 'SO- stop be evil'
@ giles: Obrigado pela atualização. Estava faltando a parte em que "a mágica acontece" durante a leitura da montagem da linha fstab. Acredito entender por que funciona agora.
Hotei
Posso perguntar se isso resulta em uma aceleração perceptível?
Robert Massaioli
@ Robert: Eu acho que causou uma velocidade notável no SSD muito lento do meu netbook (principalmente porque as sincronizações podem durar vários segundos e /tmpo disco aumenta a frequência das sincronizações), mas essa é uma impressão subjetiva não confiável. Eu nunca tentei fazer benchmark.
Gilles 'SO- stop be evil'