O servidor congela e subitamente carrega muito alto

1

Estou no CentOS 5.7 e recebo muitos servidores e os logs mostram a seguinte saída:

Dec 26 18:33:51 server kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Dec 26 18:34:00 server init: Switching to runlevel: 6
Dec 26 18:34:00 server kernel: pdflush       D 0000098C  2492   206     19           207   204 (L-TLB)
Dec 26 18:34:00 server kernel:        f7c02e04 00000046 6e39208c 0000098c f138e27c 0000003b cee0e5c0 0000000a 
Dec 26 18:34:00 server kernel:        c35ff550 6e3a00e8 0000098c 0000e05c 00000001 c35ff65c c3419944 f7aca740 
Dec 26 18:34:00 server kernel:        00000001 00000000 c041f0c8 00000000 0140f282 c042d86b f7f1e81c ffffffff 
Dec 26 18:34:00 server kernel: Call Trace:
Dec 26 18:34:00 server kernel:  [<c041f0c8>] __wake_up+0x2a/0x3d
Dec 26 18:34:00 server kernel:  [<c042d86b>] getnstimeofday+0x30/0xb6
Dec 26 18:34:00 server kernel:  [<c06242f8>] io_schedule+0x36/0x59
Dec 26 18:34:00 server kernel:  [<c04586d2>] sync_page+0x0/0x3b
Dec 26 18:34:00 server kernel:  [<c045870a>] sync_page+0x38/0x3b
Dec 26 18:34:00 server kernel:  [<c062440a>] __wait_on_bit_lock+0x2a/0x52
Dec 26 18:34:00 server kernel:  [<c045864d>] __lock_page+0x52/0x59
Dec 26 18:34:00 server kernel:  [<c0437420>] wake_bit_function+0x0/0x3c
Dec 26 18:34:00 server kernel:  [<c049811e>] mpage_writepages+0x135/0x308
Dec 26 18:34:00 server kernel:  [<f8895bb6>] ext3_ordered_writepage+0x0/0x166 [ext3]
Dec 26 18:34:00 server kernel:  [<c045d7b0>] do_writepages+0x2b/0x32
Dec 26 18:34:00 server kernel:  [<c04968a7>] __writeback_single_inode+0x166/0x2a5
Dec 26 18:34:00 server kernel:  [<c0496cca>] sync_sb_inodes+0x17e/0x221
Dec 26 18:34:00 server kernel:  [<c0496f19>] writeback_inodes+0x6a/0xb0
Dec 26 18:34:00 server kernel:  [<c045dbac>] background_writeout+0x71/0xc3
Dec 26 18:34:00 server kernel:  [<c045e10f>] pdflush+0x0/0x1a1
Dec 26 18:34:00 server kernel:  [<c045e21a>] pdflush+0x10b/0x1a1
Dec 26 18:34:00 server kernel:  [<c045db3b>] background_writeout+0x0/0xc3
Dec 26 18:34:00 server kernel:  [<c043732e>] kthread+0xc0/0xee
Dec 26 18:34:00 server kernel:  [<c043726e>] kthread+0x0/0xee
Dec 26 18:34:00 server kernel:  [<c0405c87>] kernel_thread_helper+0x7/0x10
Dec 26 18:34:00 server kernel:  =======================

O que pode causar essas mensagens? e como posso corrigir esses problemas?

    
por Imran Imtiaz 26.12.2012 / 19:49

2 respostas

2

Pode ser devido a milhares de motivos. Este parâmetro hung_task foi introduzido desde o RHEL 5.5.

Você não deve desativá-lo, você perderia importantes opções de rastreio e depuração de pilha. Aqui, isso mostra que houve algum problema com o write-back da página no sistema de arquivos ext3 e a página que estava sendo escrita estava bloqueada. A tarefa responsável por escrever a página foi pdflush e entrou no estado D, o que significa esperar que o IO seja concluído. Até que o IO esteja completo, ele não pode ser interrompido, como no estado D. Quando o pdflush está entrando no estado D, o congelamento do servidor é bastante natural, pois é o encadeamento do kernel responsável por gravar páginas sujas no disco.

Então, possíveis pistas. Você está escrevendo muitos dados sujos, verifique sua condição de memória. Encontre /proc/meminfo para saber disso.

Se você não está escrevendo muitos dados sujos, pode haver outros problemas. O rastreamento de pilha não indica muito além disso. Você tem outros traços.

Se você tiver suporte ao servidor, poderá fazer isso echo 1 > /proc/sys/kernel/hung_task_panic . Isso criará um vmcore na próxima vez que o tempo limite da tarefa suspensa for atingido. Você precisa definir o kdump para isso. Siga os artigos da Red Hat ou qualquer blog linux respeitável para fazer isso. De vmcore, a razão exata pode ser encontrada. Fora isso, é só ver o traço e adivinhar as coisas.

    
por 26.12.2012 / 20:07
0

Dê uma olhada no smart HDD. Parece que há um problema com o sistema de arquivos ou o hardware do HDD

    
por 26.12.2012 / 19:53