Tomcat falhando depois de algumas horas

2

Estou executando um sistema operacional CentOS 6.5 de 64 bits com o Tomcat e um aplicativo da web. Eu uso o Apache (httpd) como um proxy reverso (ProxyPass) para o aplicativo. Até recentemente, ele (Tomcat) estava funcionando bem sem falhar. Recentemente, eu adicionei um site Joomla e PHP (obviamente) para o servidor http. Foi logo depois disso que comecei a receber falhas no Tomcat.

Quando ele falha, o Tomcat não deixa evidência no Catalina.out . Eu finalmente encontrei a saída em /var/log/messages . Eu estava esperando que alguém pudesse dar uma olhada superficial e me apontar na direção certa:

============

Jul 23 01:19:31 myservername kernel: httpd invoked oom-killer: gfp_mask=0x201da, order=0, oom_adj=0, oom_score_adj=0 
Jul 23 01:19:31 myservername kernel: httpd cpuset=/ mems_allowed=0 
Jul 23 01:19:31 myservername kernel: Pid: 6104, comm: httpd Not tainted
2.6.32-431.1.2.0.1.el6.x86_64 #1

Jul 23 01:19:31 myservername kernel: Call Trace:
Jul 23 01:19:31 myservername kernel: [<ffffffff810d05c1>] ? cpuset_print_task_mems_allowed+0x91/0xb0
Jul 23 01:19:31 myservername kernel: [<ffffffff81122970>] ? dump_header+0x90/0x1b0
Jul 23 01:19:31 myservername kernel: [<ffffffff8122799c>] ? security_real_capable_noaudit+0x3c/0x70
Jul 23 01:19:31 myservername kernel: [<ffffffff81122df2>] ? oom_kill_process+0x82/0x2a0
Jul 23 01:19:31 myservername kernel: [<ffffffff81122d31>] ? select_bad_process+0xe1/0x120
Jul 23 01:19:31 myservername kernel: [<ffffffff81123230>] ? out_of_memory+0x220/0x3c0
Jul 23 01:19:31 myservername kernel: [<ffffffff8112fb4c>] ? __alloc_pages_nodemask+0x8ac/0x8d0
Jul 23 01:19:31 myservername kernel: [<ffffffff81167aaa>] ? alloc_pages_current+0xaa/0x110
Jul 23 01:19:31 myservername kernel: [<ffffffff8111fd67>] ? __page_cache_alloc+0x87/0x90
Jul 23 01:19:31 myservername kernel: [<ffffffff8111f74e>] ? find_get_page+0x1e/0xa0
Jul 23 01:19:31 myservername kernel: [<ffffffff81120d07>] ? filemap_fault+0x1a7/0x500
Jul 23 01:19:31 myservername kernel: [<ffffffff8114a094>] ? __do_fault+0x54/0x530
Jul 23 01:19:31 myservername kernel: [<ffffffff8114a667>] ? handle_pte_fault+0xf7/0xb00
Jul 23 01:19:31 myservername kernel: [<ffffffff811214a0>] ? generic_file_aio_read+0x380/0x700
Jul 23 01:19:31 myservername kernel: [<ffffffff8114b29a>] ? handle_mm_fault+0x22a/0x300
Jul 23 01:19:31 myservername kernel: [<ffffffff8104a8d8>] ? __do_page_fault+0x138/0x480
Jul 23 01:19:31 myservername kernel: [<ffffffff8100988e>] ? __switch_to+0x26e/0x320
Jul 23 01:19:31 myservername kernel: [<ffffffff81527920>] ? thread_return+0x4e/0x76e
Jul 23 01:19:31 myservername kernel: [<ffffffff8152d46e>] ? do_page_fault+0x3e/0xa0
Jul 23 01:19:31 myservername kernel: [<ffffffff8152a825>] ? page_fault+0x25/0x30
Jul 23 01:19:31 myservername kernel: Mem-Info:
Jul 23 01:19:31 myservername kernel: Node 0 DMA per-cpu:
Jul 23 01:19:31 myservername kernel: CPU    0: hi:    0, btch:   1 usd:   0
Jul 23 01:19:31 myservername kernel: Node 0 DMA32 per-cpu:
Jul 23 01:19:31 myservername kernel: CPU    0: hi:  186, btch:  31 usd:  30
Jul 23 01:19:31 myservername kernel: active_anon:112069 inactive_anon:56 isolated_anon:0
Jul 23 01:19:31 myservername kernel: active_file:17 inactive_file:465 isolated_file:0
Jul 23 01:19:31 myservername kernel: unevictable:0 dirty:1 writeback:0 unstable:0
Jul 23 01:19:31 myservername kernel: free:1181 slab_reclaimable:1556 slab_unreclaimable:5516
Jul 23 01:19:31 myservername kernel: mapped:78 shmem:58 pagetables:2575 bounce:0
Jul 23 01:19:31 myservername kernel: Node 0 DMA free:2040kB min:84kB low:104kB high:124kB active_anon:13500kB inactive_anon:0kB active_file:12kB inactive_file:12kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15352kB mlocked:0kB dirty:0kB writeback:0kB mapped:24kB shmem:0kB slab_reclaimable:40kB slab_unreclaimable:76kB kernel_stack:16kB pagetables:48kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:6 all_unreclaimable? no
Jul 23 01:19:31 myservername kernel: lowmem_reserve[]: 0 489 489 489
Jul 23 01:19:31 myservername kernel: Node 0 DMA32 free:2684kB min:2784kB low:3480kB high:4176kB active_anon:434776kB inactive_anon:224kB active_file:56kB inactive_file:1848kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:500948kB mlocked:0kB dirty:4kB writeback:0kB mapped:288kB shmem:232kB slab_reclaimable:6184kB slab_unreclaimable:21988kB kernel_stack:944kB pagetables:10252kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:130 all_unreclaimable? yes
Jul 23 01:19:31 myservername kernel: lowmem_reserve[]: 0 0 0 0
Jul 23 01:19:31 myservername kernel: Node 0 DMA: 0*4kB 1*8kB 1*16kB 1*32kB 1*64kB 1*128kB 1*256kB 1*512kB 1*1024kB 0*2048kB 0*4096kB = 2040kB
Jul 23 01:19:31 myservername kernel: Node 0 DMA32: 193*4kB 1*8kB 1*16kB 1*32kB 1*64kB 0*128kB 1*256kB 1*512kB 1*1024kB 0*2048kB 0*4096kB = 2684kB
Jul 23 01:19:31 myservername kernel: 547 total pagecache pages
Jul 23 01:19:31 myservername kernel: 0 pages in swap cache
Jul 23 01:19:31 myservername kernel: Swap cache stats: add 0, delete 0, find 0/0
Jul 23 01:19:31 myservername kernel: Free swap  = 0kB
Jul 23 01:19:31 myservername kernel: Total swap = 0kB
Jul 23 01:19:31 myservername kernel: 131068 pages RAM
Jul 23 01:19:31 myservername kernel: 5503 pages reserved
Jul 23 01:19:31 myservername kernel: 13454 pages shared
Jul 23 01:19:31 myservername kernel: 119917 pages non-shared
Jul 23 01:19:31 myservername kernel: [ pid ]   uid  tgid total_vm      rss cpu oom_adj oom_score_adj name
Jul 23 01:19:31 myservername kernel: [  325]     0   325     2727      168   0     -17         -1000 udevd
Jul 23 01:19:31 myservername kernel: [  602]     0   602     2726      167   0     -17         -1000 udevd
Jul 23 01:19:31 myservername kernel: [  878]     0   878    23300       78   0     -17         -1000 auditd
Jul 23 01:19:31 myservername kernel: [  894]     0   894    62368      729   0       0             0 rsyslogd
Jul 23 01:19:31 myservername kernel: [ 1027]     0  1027    29325      153   0       0             0 crond
Jul 23 01:19:31 myservername kernel: [ 1050]     0  1050     1016       21   0       0             0 mingetty
Jul 23 01:19:31 myservername kernel: [ 1052]     0  1052     1016       22   0       0             0 mingetty
Jul 23 01:19:31 myservername kernel: [ 1054]     0  1054     1016       22   0       0             0 mingetty
Jul 23 01:19:31 myservername kernel: [ 1056]     0  1056     1016       22   0       0             0 mingetty
Jul 23 01:19:31 myservername kernel: [ 1058]     0  1058     1016       21   0       0             0 mingetty
Jul 23 01:19:31 myservername kernel: [ 1189]    38  1189     7679      158   0       0             0 ntpd
Jul 23 01:19:31 myservername kernel: [19331]    99 19331    11317      405   0       0             0 openvpn
Jul 23 01:19:31 myservername kernel: [19336]     0 19336     2726      167   0     -17         -1000 udevd
Jul 23 01:19:31 myservername kernel: [27296]     0 27296    16652      178   0     -17         -1000 sshd
Jul 23 01:19:31 myservername kernel: [29754]     0 29754     1016       22   0       0             0 mingetty
Jul 23 01:19:31 myservername kernel: [14500]     0 14500    20321      226   0       0             0 master
Jul 23 01:19:31 myservername kernel: [14503]    89 14503    20384      233   0       0             0 qmgr
Jul 23 01:19:31 myservername kernel: [ 3155]     0  3155    27042       66   0       0             0 mysqld_safe
Jul 23 01:19:31 myservername kernel: [ 3257]    27  3257   160134     4405   0       0             0 mysqld
Jul 23 01:19:31 myservername kernel: [ 6102]     0  6102    76169     1432   0       0             0 httpd
Jul 23 01:19:31 myservername kernel: [ 6104]    48  6104   104399     5480   0       0             0 httpd
Jul 23 01:19:31 myservername kernel: [ 6105]    48  6105   104565     5583   0       0             0 httpd
Jul 23 01:19:31 myservername kernel: [ 6106]    48  6106   104301     5322   0       0             0 httpd
Jul 23 01:19:31 myservername kernel: [ 6107]    48  6107   104630     5682   0       0             0 httpd
Jul 23 01:19:31 myservername kernel: [ 6108]    48  6108   104491     5570   0       0             0 httpd
Jul 23 01:19:31 myservername kernel: [ 6109]    48  6109   104563     5570   0       0             0 httpd
Jul 23 01:19:31 myservername kernel: [ 6110]    48  6110   104546     5639   0       0             0 httpd
Jul 23 01:19:31 myservername kernel: [ 6111]    48  6111   104362     5469   0       0             0 httpd
Jul 23 01:19:31 myservername kernel: [ 6171]    48  6171   101911     3019   0       0             0 httpd
Jul 23 01:19:31 myservername kernel: [ 6186]    48  6186   101530     2632   0       0             0 httpd
Jul 23 01:19:31 myservername kernel: [ 6522]    48  6522   104451     5479   0       0             0 httpd
Jul 23 01:19:31 myservername kernel: [ 6835]   501  6835   317935    55623   0       0             0 java
Jul 23 01:19:31 myservername kernel: [ 7422]    48  7422   104365     5444   0       0             0 httpd
Jul 23 01:19:31 myservername kernel: [ 7656]    89  7656    20341      220   0       0             0 pickup
Jul 23 01:19:31 myservername kernel: Out of memory: Kill process 6835 (java) score 444 or sacrifice child
Jul 23 01:19:31 myservername kernel: Killed process 6835, UID 501, (java) total-vm:1271740kB, anon-rss:222432kB, file-rss:60kB

============

Já criei as configurações de heap do padrão, mas isso não ajudou:

-Xms256m -Xmx512m

Eu assumo que a direção correta é começar a criar perfis / monitorar a JVM com uma das ferramentas que vem com o JDK / JRE e ver onde está o vazamento. É estranho que eu nunca tenha tido esse problema antes de mexer no novo site do Joomla. Não estou familiarizado com a criação de perfil / monitoramento, portanto, gostaria de receber sugestões sobre qual ferramenta usar para minha situação específica, considerando o fragmento do arquivo de log incluído.

    
por Kevin 23.07.2014 / 15:12

2 respostas

5

Parece que não há mais memória disponível para uso em seu sistema. Por favor, verifique se você tem memória swap no seu sistema com o comando abaixo

free -m
A saída de

deve ser a seguinte se você tiver a troca ativada.

             total       used       free     shared    buffers     cached
Mem:          1876       1798         77          0        119       1440
-/+ buffers/cache:        237       1638
Swap:         4607          0       4607

Se você não consegue ver o swap no seu arquivo, você precisa criar o swapfile. Aqui está um guia para criar e ativar o swapfile.

link

Você também pode configurar o javamelody com seu aplicativo tomcat para identificar problemas com seu aplicativo tomcat

--- ATUALIZAÇÃO

Eu escrevi um post sobre swap memory, se você tiver alguma dúvida, por favor comente no post abaixo

link

    
por 23.07.2014 / 16:30
2

Aqui está a causa:

Jul 23 01:19:31 myservername kernel: [<ffffffff81122df2>] ? oom_kill_process+0x82/0x2a0

Não há carneiro suficiente. oom_kill_process é a função do kernel que mata alguns processos se não houver ram suficiente. Algo parece estar vazando, ou você tem muito pouca memória. Seu swap está realmente habilitado e funcionando? ( cat /proc/swaps ).

Extensão: alguns estão dizendo, que a ativação da troca torna o sistema mais lento. Isso é falso , não acredite nisso, veja meu comentário.

    
por 23.07.2014 / 15:41

Tags