É “sync” antes de drop_caches necessário?

5

Eu li muitos documentos dizendo que é uma boa ideia fazer um sync antes de fazer echo [1,2,3] > /proc/sys/vm/drop_caches . Não consigo entender por que isso é necessário, já que o drop_cache é uma operação não destrutiva e os dados sujos não serão excluídos pelo drop_cache. Eu também vi um comportamento em que echo 1 > /proc/sys/vm/drop_caches primeiro envia dados sujos de volta para o disco e, em seguida, libera o cache. Isso é visto através de /proc/meminfo "Dirty" & "Writeback".

    
por Subodh Pachghare 06.07.2013 / 07:47

1 resposta

4

De qualquer forma, recebi a resposta no stackoverflow, que corroborei ao fazer um pequeno experimento.

"sync" só faz cache sujo para limpar o cache. cache ainda é preservado. O drop_caches não toca em caches sujos e apenas descarta caches limpos. Portanto, para tornar toda a memória livre, é necessário fazer a sincronização antes de drop_caches, caso os daemons de flush não tenham escrito as alterações no disco.

Meu blog sobre esse pequeno experimento -

Quais são exatamente O_DIRECT, O_SYNC Flags, Buffers & Em cache na E / S de armazenamento do Linux?

Link Stackoverflow -

"sync" antes de drop_caches, é necessário?

    
por 08.07.2013 / 08:01