Você não está autenticado.

Anúncio

Arch Linux Brasil está precisando de sua colaboração para realizar o pagamento do domínio e do host, para colaborar, realizar doações via paypal.

Para mais informações: contato at archlinux-br.org.

#1 12/11/2013 18:27:33

kernill
Membro
Registrado: 13/01/2013
Mensagens: 85

[Dica] Resolvendo travamentos periodicos

Senhores, ultimamente meu computador estava travando periodicamente de responder quando somente o mouse movia e logo depois era descarregado toda a fila de mensagens do X, ou seja, tudo que eu clicava era respondido tudo de uma vez logo depois.

Navegando (antigamente era surfando ... argh!) no ArchWiki achei estas linhas interesssantes para se colocar no /etc/sysctl.d/99-sysctl.conf que resolveram meus problemas. Então se for de ajuda fica a dica. Isso tem a ver com a memória virtual.
Se não tiverem o arquivo basta criar um e incluir as linhas.

vm.dirty_background_bytes = 4194304
vm.dirty_bytes = 4194304

Eu desconfiava que esta bendita estava dando problemas, quando eu tentei mover o swap para um microSD e a coisa toda piorou.

Fonte:  https://wiki.archlinux.org/index.php/sysctl

Fábio

Offline

#2 22/11/2013 14:12:53

Mrk3004
Membro
De: São Paulo
Registrado: 25/04/2012
Mensagens: 48
Website

Re: [Dica] Resolvendo travamentos periodicos

Isso na verdade é um problema no seu disco... O cache melhora o desempenho de leitura/gravação de dados aproveitando a memória disponível (ao invés de gravas os dados, o kernel grava na memória ram, e em um momento de menos congestionamento, ele grava no HD...), ou seja, se dados em cache forem solicitados, não será necessário acessar o HD, tudo será lido a partir da RAM.

Mas se por algum momento os dados em cache na RAM forem diferentes do que estão no HD, será necessário executar uma limpeza e regravação dos dados 'sujos', quem faz isso é o kernel, automaticamente através do pdflush.

O dirt_background_bytes é uma variável que define o quanto de memória RAM (em bytes) pode conter esses dados 'sujos' antes que o pdflush seja executado, enquanto a variável dirty_bytes define o quanto cada processo pode preencher com cache 'sujo' antes de ser forçado a escrever tudo no disco em vez de continuar gravando no cache. Quando isso acontece, as gravações de todos os processos são bloqueadas, e não apenas do que encheu o cache de gravação... isso pode causar esses travamentos periódicos, onde na verdade pode ser apenas um único processo bloqueando todo o I/O do sistema...

https://www.kernel.org/doc/Documentation/sysctl/vm.txt


É um processo lento modificar princípios, e você nunca saberá que eles mudaram até que algo que parecia ser certo não pareça mais.

Offline

#3 26/12/2013 21:11:38

kernill
Membro
Registrado: 13/01/2013
Mensagens: 85

Re: [Dica] Resolvendo travamentos periodicos

Tenho uma leve desconfiança disso. Entretanto melhorou. Curiosamente esse é um parametro com trade offs: Se aumentar o valor destes parametros o flush demorará para ocorrer, porém quando ocorrer mais bytes serão descarregados bloqueando por mais tempo a IO, mas não foi isso que aconteceu aqui. Vai entender.

Aliás gostaria de trocar um artigo interessante sobre discos e VM na IBM em português que acabei de achar:

https://www.ibm.com/developerworks/comm … 81?lang=en

Fábio

Mrk3004 escreveu:

Isso na verdade é um problema no seu disco... O cache melhora o desempenho de leitura/gravação de dados aproveitando a memória disponível (ao invés de gravas os dados, o kernel grava na memória ram, e em um momento de menos congestionamento, ele grava no HD...), ou seja, se dados em cache forem solicitados, não será necessário acessar o HD, tudo será lido a partir da RAM.

Mas se por algum momento os dados em cache na RAM forem diferentes do que estão no HD, será necessário executar uma limpeza e regravação dos dados 'sujos', quem faz isso é o kernel, automaticamente através do pdflush.

O dirt_background_bytes é uma variável que define o quanto de memória RAM (em bytes) pode conter esses dados 'sujos' antes que o pdflush seja executado, enquanto a variável dirty_bytes define o quanto cada processo pode preencher com cache 'sujo' antes de ser forçado a escrever tudo no disco em vez de continuar gravando no cache. Quando isso acontece, as gravações de todos os processos são bloqueadas, e não apenas do que encheu o cache de gravação... isso pode causar esses travamentos periódicos, onde na verdade pode ser apenas um único processo bloqueando todo o I/O do sistema...

https://www.kernel.org/doc/Documentation/sysctl/vm.txt

Offline

Rodapé do site