Como diagnosticar o comportamento errático do disco?

1

Eu tenho um site com os usuários lighttpd e scripts CGI.

Após a atualização para o Fedora 11 (ext4), o acesso ao disco tornou-se errático. O tempo de python -c 'import cgi' varia entre 0,1 e quase 10 segundos:

Como posso diagnosticar o problema? (Ferramentas, métodos, melhores práticas ...)

Atualização de 30 de julho de 2009:
Descobri que vários processos CGI estavam monopolizando o disco. Depois de matá-los, o gráfico fica estável entre 0,02 e 0,03. Ainda não recebi uma resposta sobre como diagnosticar esses problemas.

    
por lazy1 29.07.2009 / 01:01

3 respostas

0

A única maneira de diagnosticar um problema como este é com muitos e muitos dados. Familiarize-se com vmstat e iostat . Uma ferramenta que aprendi recentemente em este tópico é dstat , que combina efetivamente os dois.

Para problemas como o que você está descrevendo, esse comando provavelmente seria útil:

$ dstat -M app -cdnygl

Ele informará sobre CPU, E / S (disco e rede), interrupções, troca e carga média. Como um pequeno bônus, incluirá o nome de qualquer processo que fosse "mais caro" no momento em que o instantâneo foi tirado. Infelizmente, esse comando em particular produz uma saída muito grande para colar aqui, então aqui está uma versão um pouco mais conservadora:

$ dstat -M app -cdn
--most-expensive-- ----total-cpu-usage---- -dsk/total- -net/total-
     process      |usr sys idl wai hiq siq| read  writ| recv  send
bacula-fd        0|  1   0  98   0   0   0| 426k  108k|   0     0 
bash             1|  2   2  96   0   0   0|   0    20k|1460B 1804B
apache2          8|  4   2  94   0   0   0|   0     0 |  76k   15k
                  |  1   3  96   0   0   0|   0     0 |1132B 1034B
apache2          1|  2   2  96   0   0   0|   0  8192B|  11k 3895B
                  |  2   1  96   0   0   0|   0    32k|3322B 1338B
kipmi0           1|  2   2  96   0   0   0|   0     0 |1309B 1146B
    
por 30.07.2009 / 17:27
1

Se a instalação for nova, então ferramentas como makewhatis, que são usadas por outras pessoas, podem fazer com que o disco seja muito usado. Aguarde alguns dias para que as coisas fiquem estabilizadas (updatedb, prelink, makewhatis, etc.) e, em seguida, os timings serão consistentes.

Também dependeria de algo mais que você esteja fazendo no servidor e do que o script cgi está realmente fazendo, de onde está recebendo dados, tamanho da entrada, etc.

Além disso, se o disco for muito antigo, use ferramentas de diagnóstico (como seato seatools ) para procurar por problemas no controlador / setor defeituoso. As ferramentas também permitirão que você opte por reparar o setor se a unidade for realmente da Seagate.

    
por 29.07.2009 / 10:41
0

Você realmente precisa / deseja o ext4 em um servidor de produção? Ainda é um pouco poderoso para o verde para o meu gosto por um servidor.

    
por 29.07.2009 / 01:43