Adia * todas as gravações em disco, mantenha-as na memória

4

Como parar temporariamente a sincronização de dados sujos com o disco, mantendo-os na memória.

Esclarecimento: quero sincronizá-lo mais tarde.

    
por user2373145 11.04.2016 / 12:37

2 respostas

11

Se você quiser evitar gravações em disco o máximo possível , poderá fazê-lo com Modo de notebook . Um dos recursos do modo laptop é permitir que um disco desacelere e impedir que o kernel grave nele até que a memória fique cheia ou até que ocorra um tempo limite (ou até que o disco precise girar para ler os dados dele) . Veja também o Arch Wiki . Você presumivelmente desejará habilitar apenas spindown de disco e não outros recursos, e definir LM_SECONDS_BEFORE_SYNC para um grande valor no configuração .

Há também noflushd , que faz esse trabalho específico (e é muito mais fácil de configurar do que o Modo Laptop, pois não faz isso algo mais). Eu usei isso felizmente no passado, mas ele não foi mantido por um tempo, então não sei se ainda funciona em sistemas modernos.

Note que evitar gravações em disco não é uma defesa contra a escrita, é uma medida de economia de energia (e redução de ruído). É difícil controlar exatamente o que pode fazer com que o disco gire, por exemplo, alguns dados que precisam ser lidos porque foram apagados do cache e, nesse ponto, o disco será gravado.

Se o motivo pelo qual você deseja impedir gravações em disco é que você não deseja que o conteúdo do disco seja modificado sob nenhuma circunstância , você precisa de ferramentas diferentes. Você pode fazer isso no nível do sistema de arquivos com uma montagem de união . Monte o disco somente leitura, crie um diretório em um sistema de arquivos tmpfs e crie uma montagem de união dos dois, em que o diretório tmpfs é o ramo de leitura-gravação. Consulte Montar um sistema de arquivos somente leitura e redirecionar escreve para a RAM? para vários exemplos de software de montagem de união no Linux. É assim que as instalações ao vivo do Linux com uma opção de persistência funcionam: a instalação ao vivo é somente leitura, mas a partição de dados persistente é montada em união sobre ela.

Você também pode obter um efeito semelhante no nível de dispositivo de bloco, embora não consiga pensar em um motivo convincente para preferir essa solução. Consulte GNU / Linux: dispositivo de bloqueio de sobreposição / dispositivo de bloqueio empilhável Como alternativa, se os dados do disco estiverem em um volume LVM ou em um sistema de arquivos ZFS, você poderá criar um instantâneo para manter uma cópia dos dados em um determinado momento, continuando a gravar em um dispositivo separado logicamente.

    
por 12.04.2016 / 01:59
2

parece um trabalho para eatmydata ( link )

no debian, tente algo como

apt-get install eatmydata;

printf "\nLD_PRELOAD=libeatmydata.so" >> /etc/ld.so.preload

reiniciar

    
por 11.04.2016 / 12:59