Evitar o consumo de bateria a partir de checagem constante de IO por navegadores

2

Por algum motivo, navegadores comuns (o Chromium é particularmente ruim, mas o Firefox não é muito melhor) geram carga IO constante, particularmente gravações, no meu sistema Debian. Esse é o caso mesmo quando o navegador não tem nenhum trabalho a ser feito (por exemplo, estou lendo apenas uma página da Web estática ou ela está minimizada em segundo plano). Para o cromo, o subprocesso "cromo [BrowserBlocking]" gera quase 300kb de gravação em disco por alguns segundos, sem fazer nada. Eu corro um sistema de arquivos com diário, então o efeito dessas gravações é amplificado.

Isso é extremamente irritante, especialmente no meu laptop; meu Samsung 960 Pro suporta estados APST (sleep), mas nunca pode realmente atingir o sono profundo, porque fica constantemente acordado pelo processo do navegador. A CPU é igualmente impedida de usar seus estados ociosos efetivamente. Minha vida útil da bateria com o navegador em execução é visivelmente pior do que sem. Além disso, embora não seja um problema com os modernos SSDs, eu também preferiria evitar a degradação constante e inútil do substrato flash causada por essas operações desnecessárias.

O navegador não lida com dados que tenham algum valor, portanto a integridade dos dados não é uma preocupação aqui. Idealmente, eu gostaria de dizer ao kernel para ignorar quaisquer pedidos de E / S síncrono do chromium e armazenar em cache todos os pedidos de gravação na memória até que o sistema de arquivos seja desmontado ou o sistema comece a ter pressão de memória.

Exemplo de "pidstat -d 1 -C cromo" enquanto ocioso:

05:05:09 PM 1000 30539 0,00 300,00 0,00 0 cromo 05:05:13 PM UID PID kB_rd / s kB_wr / s kB_ccwr / s Comando iodelay 05:05:14 PM 1000 30539 0,00 28,00 0,00 0 cromo

05:05:14 PM kID_PID kB_rd / s kB_wr / s kB_ccwr / s Comando iodelay 05:05:15 PM 1000 30539 0,00 4,00 0,00 0 cromo

05:05:22 PM 1000 30539 0,00 212,00 0,00 0 cromo

Como esse é um problema compartilhado por vários navegadores, eu quero evitar ter que começar a invadir o código de qualquer navegador específico. Como posso conseguir isso?

    
por Alex 19.06.2018 / 02:08

1 resposta

0

data integrity is no concern here

Ótimo! Experimente eatmydata que "desativa [s] fsync e amigos". Isso pode ajudar a minimizar gravações em disco.

Para o Firefox, confira também toolkit.storage.synchronous para reduzir o tráfego em disco do SQLite .

    
por 19.06.2018 / 04:24