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?
fonte
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?
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 /tmp
para ser um disco RAM. Na /etc/fstab
linha acima, coloque em /tmp
vez de /ramdisk
, em seguida, reinicie.
Na primeira vez em que você reinicia após mudar /tmp
para um disco RAM, os arquivos que estavam /tmp
nele 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 /tmp
no disco RAM) fazendo
mount --bind / /mnt
rm -r /mnt/tmp/* /mnt/tmp/.*
umount /mnt
O mount --bind
comando faz /mnt
uma visualização duplicada do seu sistema de arquivos raiz; mas enquanto o disco RAM agora obscurece /tmp
na visualização raiz, nada está obscurecendo /mnt/tmp
.
ADICIONADO : Você pode alternar /tmp
para um disco RAM sem reiniciar, é apenas um pouco mais complicado. Adicione a linha /etc/fstab
como 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.old
após sua próxima reinicialização.
O motivo pelo qual você não pode simplesmente mover arquivos de /tmp.old
para /tmp
é que alguns programas críticos têm arquivos abertos /tmp
, por exemplo, nos /tmp/.X11-unix/X0
quais 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/X0
mas clientes X entrando /tmp/.X11-unix/X0
em contato em vão. Em um servidor, você pode se mudar com cautela.
/tmp
paratmpfs
. Não é necessário e editei minha resposta para explicar como fazê-lo, mas é mais complicado. Não hámkfs
envolvimento porque não há armazenamento subjacente a ser preparado, o kernel lida com tudo./tmp
o disco aumenta a frequência das sincronizações), mas essa é uma impressão subjetiva não confiável. Eu nunca tentei fazer benchmark.