Existe uma maneira de arquivar a causa (ou arquivo de destino) das operações de gravação em disco no linux (RHEL6.1)?

2

Eu tenho uma máquina virtual com um aplicativo baseado em php (no apache) nela, ao observar a atividade do disco, há uma gravação constante de 170kbps quando o apache está em execução.

Quando aplicamos load, o desempenho do servidor é vinculado à cpu, mas isso parece estar diretamente relacionado aos saltos IO de gravação de disco de 20-30x. O gráfico de uso da CPU espelha o gráfico de acesso ao disco de gravação.

Alguma idéia?

    
por JTew 25.05.2012 / 02:52

2 respostas

2

Duas recomendações:

O

iotop é um programa útil que mostra o uso de E / S em tempo real em um formato como o comando top . Isso deve ajudá-lo a identificar o script / binário que está fazendo todo o I / O. Eu acho que isso já pode ser instalado em novos kernels, mas yum pode fornecê-lo no RHEL se você não o vir.

lsof também é útil na solução de problemas de E / S; lista todos os arquivos abertos.

UPDATE

Se houver atividade de disco "constante", iotop deve informar quais processos são os culpados. Com relação ao histórico de transações de E / S: não acredito que o histórico de E / S esteja registrado em qualquer lugar na maioria das distribuições Linux, mas você pode adicionar um cron job.

Como root, abra o crontab com crontab -e e adicione estas duas linhas:

* * * * * /bin/date >> /var/log/iotop; /usr/local/bin/iotop -bot --iter=3 -q >> /var/log/iotop
* * * * * /bin/date >> /var/log/lsof; /usr/bin/lsof -b -w >> /var/log/lsof

Isso despeja iotop e lsof de saída em um log a cada minuto. Adicione um script logrotate para cada um para evitar que os arquivos ocupem todo o seu espaço, por exemplo:

someuser@myhost:~> cat /etc/logrotate.d/lsof
/var/log/lsof {
  rotate 3
  weekly
  compress
  missingok
  notifempty
}
    
por 28.05.2012 / 15:05
0

Parece que uma tarefa em segundo plano não relacionada estava excluindo o conteúdo do diretório / tmp onde o PHP estava sendo pré-compilado. Como resultado, o processo de pré-compilação do php começou novamente, resultando em atividade constante no disco.

    
por 28.05.2012 / 22:41