[완료] java(tomcat)이 시스템에 미치는 영향(?)

artop0420의 이미지

Centos 5.7 i386이구요...

[root@localhost bin]# sh version.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:       /usr/local/java
Server version: Apache Tomcat/5.5.27
Server built:   Aug 28 2008 10:08:26
Server number:  5.5.27.0
OS Name:        Linux
OS Version:     2.6.18-274.7.1.el5
Architecture:   i386
JVM Version:    1.6.0_17-b04
JVM Vendor:     Sun Microsystems Inc.

현재 이렇게 사용하고 있는데요.
이 시스템이 잦은 커널패닉 현상을 일으켜 전체적인 시스템을 점검하다가 tomcat을 죽이고 살리는 과정에서 커널패닉 증상이
자주 발생하는 것을 확인하였습니다..
tomcat이야.... 단독으로 도는게 아니라 java와 연계되어 돈다고 이야기를 들었는데
혹시 java를 실행할때 커널패닉과 같은 부분이 발생할 수도 있을까요?
ydhoney의 이미지

까마귀 날자 배떨어지는것일 수도 있고, H/W 불량이라 일정정도 이상 부하가 올라가면 난리치는것일 수 있습니다. ^^

artop0420의 이미지

두눈을 부라리고 로그를 보고 있는데.
분명 syslog 데몬도 잘 살아 있는데, 희한하게 종료 시점에 아무로그가 없어서 꽤 고생고생했는데요.
커널패닉이 발생하기 수 분 전에 /var/log/messages에

Nov 14 00:50:57 localhost kernel: INFO: task httpd:3640 blocked for more than 120 seconds.
Nov 14 00:50:57 localhost kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Nov 14 00:50:57 localhost kernel: httpd         D 0000064D  3264  3640   2582          3641  3636 (NOTLB)
Nov 14 00:50:57 localhost kernel:        f00fad90 00000082 ddb7033b 0000064d 00000000 00000000 00000000 00000006
Nov 14 00:50:57 localhost kernel:        f09a4000 ddbd7a5b 0000064d 00067720 00000000 f09a410c c2812700 f00d1c80
Nov 14 00:50:57 localhost kernel:        00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Nov 14 00:50:57 localhost kernel: Call Trace:
Nov 14 00:50:57 localhost kernel:  [<c043705f>] prepare_to_wait+0x24/0x46
Nov 14 00:50:57 localhost kernel:  [<c048e704>] __wait_on_freeing_inode+0x72/0x8c
Nov 14 00:50:57 localhost kernel:  [<c0436f40>] wake_bit_function+0x0/0x3c
Nov 14 00:50:57 localhost kernel:  [<c048e741>] find_inode_fast+0x23/0x42
Nov 14 00:50:57 localhost kernel:  [<c048e7d4>] ifind_fast+0x1e/0x6a
Nov 14 00:50:57 localhost kernel:  [<c048f69b>] iget_locked+0x4a/0x111
Nov 14 00:50:57 localhost kernel:  [<c04a74e2>] proc_get_inode+0x6b/0x14c
Nov 14 00:50:57 localhost kernel:  [<c04aad0a>] proc_lookup+0x92/0xa4
Nov 14 00:50:57 localhost kernel:  [<c0483d7a>] do_lookup+0xc2/0x174
Nov 14 00:50:57 localhost kernel:  [<c048561b>] __link_path_walk+0x318/0xdc3
Nov 14 00:50:57 localhost kernel:  [<c045a191>] find_get_page+0x18/0x3f
Nov 14 00:50:57 localhost kernel:  [<c04074f4>] do_IRQ+0xb7/0xc3
Nov 14 00:50:57 localhost kernel:  [<c0486100>] link_path_walk+0x3a/0x99
Nov 14 00:50:58 localhost kernel:  [<c04864dd>] do_path_lookup+0x231/0x297
Nov 14 00:50:58 localhost kernel:  [<c0486da0>] __path_lookup_intent_open+0x42/0x72
Nov 14 00:50:58 localhost kernel:  [<c0486e1f>] path_lookup_open+0xf/0x13
Nov 14 00:50:58 localhost kernel:  [<c0486f15>] open_namei+0x6d/0x631
Nov 14 00:50:58 localhost kernel:  [<c062440a>] do_page_fault+0x2a8/0x531
Nov 14 00:50:58 localhost kernel:  [<c0476354>] do_filp_open+0x1c/0x31
Nov 14 00:50:58 localhost kernel:  [<c04763a7>] do_sys_open+0x3e/0xae
Nov 14 00:50:58 localhost kernel:  [<c0476444>] sys_open+0x16/0x18
Nov 14 00:50:58 localhost kernel:  [<c0404f4b>] syscall_call+0x7/0xb
Nov 14 00:50:58 localhost kernel:  =======================
Nov 14 00:50:58 localhost kernel: INFO: task httpd:3641 blocked for more than 120 seconds.
Nov 14 00:50:58 localhost kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Nov 14 00:50:58 localhost kernel: httpd         D 0000064D  3356  3641   2582          3642  3640 (NOTLB)
Nov 14 00:50:58 localhost kernel:        f07f7dec 00000086 ddc2ea91 0000064d 00000000 00000000 00000000 00000005
Nov 14 00:50:58 localhost kernel:        f07f6aa0 ddc83459 0000064d 000549c8 00000000 f07f6bac c2812700 f00d1ac0
Nov 14 00:50:58 localhost kernel:        00000000 00000000 00000000 000002c4 c069d228 000200d2 c069d228 00000000
Nov 14 00:50:58 localhost kernel: Call Trace:
Nov 14 00:50:58 localhost kernel:  [<c045e766>] get_page_from_freelist+0x96/0x378
Nov 14 00:50:58 localhost kernel:  [<c06224d7>] __mutex_lock_slowpath+0x4d/0x7c
Nov 14 00:50:58 localhost kernel:  [<c0622515>] .text.lock.mutex+0xf/0x14
Nov 14 00:50:59 localhost kernel:  [<c0483d32>] do_lookup+0x7a/0x174
Nov 14 00:50:59 localhost kernel:  [<c048561b>] __link_path_walk+0x318/0xdc3
Nov 14 00:50:59 localhost kernel:  [<c045a191>] find_get_page+0x18/0x3f
Nov 14 00:50:59 localhost kernel:  [<c045ccd9>] filemap_nopage+0x19f/0x34a
Nov 14 00:50:59 localhost kernel:  [<c0486100>] link_path_walk+0x3a/0x99
Nov 14 00:50:59 localhost kernel:  [<c04864dd>] do_path_lookup+0x231/0x297
Nov 14 00:50:59 localhost kernel:  [<c0486da0>] __path_lookup_intent_open+0x42/0x72
Nov 14 00:50:59 localhost kernel:  [<c0486e1f>] path_lookup_open+0xf/0x13
Nov 14 00:50:59 localhost kernel:  [<c0486f15>] open_namei+0x6d/0x631
Nov 14 00:50:59 localhost kernel:  [<c062440a>] do_page_fault+0x2a8/0x531
Nov 14 00:50:59 localhost kernel:  [<c0476354>] do_filp_open+0x1c/0x31
Nov 14 00:50:59 localhost kernel:  [<c04763a7>] do_sys_open+0x3e/0xae
Nov 14 00:50:59 localhost kernel:  [<c0476444>] sys_open+0x16/0x18
Nov 14 00:50:59 localhost kernel:  [<c0404f4b>] syscall_call+0x7/0xb
Nov 14 00:50:59 localhost kernel:  =======================

이런 로그가 기록 되어 있네요. 실제로 커널패닉이 발생한 시간은 로그에 찍힌 시간보다 약 1시간 뒤에 발생했습니다.
물론, 이 당시에는 전 잠을 자고 있었지요..ㅎㅎ

커널패닉이 떨어질 당시의 top, free 상태를 볼 수 없으니....
답글 달아주신대로, 일정수치(메모리사용량(예를들어, Swap까지 모두 써버리는...-0-), CPU사용량) 이 증가하면서
커널패닉이 발생했다고 봐도 무방할까요?

--- 나는요? ---

리눅스와 솔라리스 그리고 윈도우의 껍데기만 맛보고 있습니다.

ydhoney의 이미지

LSI계열 I/O 컨트롤러를 사용하고 계실 확률이 높은데 Firmware를 최신버전으로 update하시는걸 추천하고, 일단 H/W 벤더측과 면담해보시는게 좋겠습니다.

만일 그 이후에도 해결 불가능시 H/W교체 진행하시는게 좋겠습니다. 최근 LSI사에서 이 이슈를 거의 대부분 해결했다는 리포팅이 있었습니다만, 일부 아직 감감 무소식인 쪽도 있는것 같습니다.

일단 대략 이슈를 정리하자면, I/O를 일정정도 이상 사용하는 경우 I/O Queuing 문제로 인해서 위의 문제를 발생시킵니다.

예전 nfs나 cifs 사용시의 i/o 처리 시 위와 동일한 이슈로 kernel update 이후 정리되었던 적이 있는데, kernel 버전을 보니 이 쪽은 아니고 아마 LSI계열 컨트롤러 펌 이슈로 발생하는 문제일 것으로 추정됩니다.

artop0420의 이미지

넵. 컨트롤러는 LSI칩셋을 사용하고 있습니다.ㅎㅎㅎ
서버 자체가 워런티가 아웃된 장비라 기술지원받으려면 일정한 비용을 요구를 하네요..ㅎㅎ
system bios쪽만 업데이트를 진행했는데, 컨트롤러쪽도 진행을 해봐야 겠습니다..

--- 나는요? ---

리눅스와 솔라리스 그리고 윈도우의 껍데기만 맛보고 있습니다.

academic의 이미지

tomcat 쪽은 아는 바가 없습니다만, 커널 패닉이면 tomcat하고는 상관없을 것 같습니다.

혹시 tomcat쪽이 의심된다면 CentOS의 기본 tomcat 패키지를 설치하셔서 테스트해보시는 건 어떨까 싶습니다.

기본 패키지 버전도 지금 쓰시는 거랑 별 차이 없는 것 같네요.

----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.

artop0420의 이미지

아직 내공이 부족한지
yum 으로 설치할 때 jakarta-tomcat-apache 설치하다가 자꾸 에러떨어지더라구요..ㅋㅋ

OS재설치할까 하다가 포기했습니다.ㅎㅎㅎ

--- 나는요? ---

리눅스와 솔라리스 그리고 윈도우의 껍데기만 맛보고 있습니다.

academic의 이미지

CentOS의 기본 패키지 중에 jakarta-tomcat-apache 라는 패키지가 있던가요?

----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.