Estatísticas de E / S de disco cíclico / rítmico: (atividade aumentando monotonicamente)

1

Eu tenho um problema exclusivo com um dos meus servidores. A estatística de E / S de disco está aumentando constantemente nas últimas duas semanas. Veja este gráfico da Munin:

NopaineldoLinode,vejoumaimagemmaisrefinadadaE/Sdodisco.Aquiestáográficocíclico/rítmico(intervalodeumdia).Masobserveque,apesardeparecercíclico,aolongodeumperíododesemanas,amédiadeE/Sdodiscoestáaumentandoconsistentemente(consulteográficoacima):

Agora, eu fiz iotop e vi que kjournald é o único processo que está sendo gravado para E / S de disco (com exceção do rsyslogd - mas a frequência de E / S de disco de kjournald é muito, muito maior). Nos gráficos acima, o componente de leitura de E / S é praticamente zero.

Por que kjournald é escrito mesmo quando não há outro processo escrito? Por que o tamanho das gravações está aumentando a cada dia?

Outra pista: a memória livre também está diminuindo de maneira monótona, enquanto os "buffers" estão aumentando. Veja este gráfico:

PS:oservidorésomenteoApache.Oslogsdeacessoestãodesativados,masoslogsdeerrosestãoativados.Atendendocercade80solicitações/segundo.Nósusamos Redis como fila. Meu disco está usando ext3 .

    
por Paras Chopra 14.11.2010 / 10:03

2 respostas

1

Disparo selvagem no escuro, pois não tenho ideia do que seu servidor está fazendo:

O seu servidor é um servidor web? Talvez ele tenha uma página frequentemente visitada que registra acessos ao arquivo de texto regular (ou, talvez, o backend do SQLite?) E um script PHP analisa esse arquivo durante cada carregamento de página & registros para visitar este arquivo? Então, esse arquivo cresce e aumenta, assim como a quantidade de gravações.

Embora isso pareça improvável, uma vez que você não está observando nenhum processo httpd. De qualquer forma, talvez algo parecido esteja acontecendo? Algum arquivo analisado regularmente está crescendo e crescendo?

EDIT: Você já tentou uma ferramenta extremamente útil blktrace ? Com isso, você pode rastrear o I / O e ver quais processos estão acessando o disco e por quê. Tente btrace /dev/sda ou qualquer que seja o seu disco. O comando btrace é empacotado com blktrace package pelo menos no Debian / Ubuntu, se ainda não estiver instalado para você.

    
por 14.11.2010 / 10:10
1
Em primeiro lugar, sempre tenho um problema ao analisar os dados que foram monitorados muito raramente, pois muitas vezes há informações muito úteis escondidas entre os períodos de amostragem. No entanto, isso pode não ser necessariamente um problema aqui.

Em qualquer caso, um contador raramente conta toda a história. Como o seu gráfico diário mostra um ligeiro aumento durante o dia, pelo menos as coisas estão mudando rapidamente o suficiente para ver a mudança. O que você não pode dizer a partir de seus enredos, porque eles não são suficientemente granulados, as coisas estão mudando suavemente ou talvez em uma função de passo? É um valor fixo por 50 segundos e depois salta? Você simplesmente não pode dizer e se houver saltos, você precisa ser capaz de correlacioná-lo com outras medições do sistema.

Eu recomendaria instalar o collectl e deixá-lo rodar por algumas horas. Em seguida, usando o colplot, que faz parte do collectl-utils, você pode obter gráficos detalhados (em intervalos de 10 segundos) de cpu, disco, rede, memória, nfs, tcp, soquetes e provavelmente uma ou duas coisas que eu esqueci. Você também pode investigar o que está acontecendo com suas lajes e processos.

Agora você pode ver esses enredos e ver com muito mais detalhes do que você verá com os enredos que está recebendo do rrdtool. É claro que, se algo parece interessante em um enredo, você também pode reproduzir o texto coletado como estampado com o tempo e aprofundar isso também.

-mark

    
por 14.11.2010 / 13:23