Minimize ou desative o cache de write-back e seu tempo limite.
/proc/sys/vm/dirty_background_ratio
dirty_ratio
dirty_expire_centisecs
dirty_writeback_centisecs
Observo que syslog
file ( /var/log/messages
) não parece capturar o log mais recente possível antes do desligamento abrupto do sistema. (Meu sistema Linux está em execução e, de repente, há uma perda de energia.) Como garantir que syslog
capture o máximo de logs possíveis antes do desligamento abrupto?
Minimize ou desative o cache de write-back e seu tempo limite.
/proc/sys/vm/dirty_background_ratio
dirty_ratio
dirty_expire_centisecs
dirty_writeback_centisecs
Bem, existem duas maneiras de um sistema ficar inativo.
Desligamento normal: Neste caso, cada processo em execução no sistema tem a chance de gravar alguns registros, liberar os buffers no disco antes de descer. Nesse caso, em /var/log/messages
você pode ver
kernel: Kernel logging (proc) stopped.
rsyslogd: exiting on signal 15.
Desligamento abrupto: Aqui os aplicativos não terão a chance de gravar logs, filesystem
não terá a chance de liberar os dados no disco. Mas se esse é o cenário que você está enfrentando, talvez você queira verificar o hardware do sistema como HDD , SSD and power supply [ for any unwanted fluctuations ]
para depurar o problema com eficácia.
Mas como recurso para persistir frequentemente os dados do cache para o disco. Periodicamente, você pode tentar executar o comando sync
, que libera os buffers do sistema de arquivos. Para mais checkout man sync
Observe que, se você estiver usando o formato legado rsyslog no seu /etc/rsyslog.conf
com uma linha como
*.=info;... -/var/log/messages
você pode remover o prefixo -
antes do nome do arquivo, e isso fará com que o syslog sincronize o arquivo após cada gravação. Consulte arquivos comuns .