O kernel do linux verificará ervery dirty_writeback_centisecs
se você tiver páginas sujas mais antigas que dirty_expire_centisecs
. Com as configurações padrão, ele verifica a cada 5 segundos as páginas sujas com mais de 30 segundos.
O kernel também tem um limite de memória suja. Quando esse limite é atingido, ele bloqueia todos os processos de gravação para evitar ter páginas muito sujas na RAM.
O que você deve ajustar é
-
vm.dirty_background_ratio
: a quantidade de memória do sistema que pode ser preenchida com páginas sujas antes que o kernel comece a fluir para o disco em segundo plano. -
vm.dirty_ratio
: a memória máxima do sistema que pode ser preenchida com páginas sujas. Em seguida, o kernel bloqueia todas as solicitações de E / S até que tudo seja liberado para o disco.
Para não conseguir este comportamento, você precisa dizer ao kernel que ele deve conter pelo menos 30s * 6MB / s = 180MB. Você também precisa levar em conta a velocidade de gravação lenta do Raspberry Pi, porque durante o tempo necessário para liberar para o disco, mais páginas sujas serão gravadas na memória RAM.
Isso pode representar muita memória RAM para o Raspberry Pi, então você pode precisar baixar dirty_expire_centisecs
. Esteja ciente de que o uso de valores pequenos pode prejudicar a capacidade de resposta do sistema, porque você quase obterá E / S síncrona.
Aqui está uma explicação mais completa de como isso funciona: link