JBoss 3.2.7을 실행하는 높은 IOWait

JBoss 3.2.7을 실행하는 높은 IOWait

서버 세부정보:
핵심:Linux wiq31 2.4.21-9.ELsmp #1 SMP Thu 1월 8일 17:08:56 EST 2004 i686 i686 i386 GNU/Linux
CPU:인텔(R) 제온(TM) CPU 3.06GHz 4개
메모리:1028520KB
JBoss 버전:3.2.7

JBoss를 시작하려고 할 때마다 모든 CPU에서 iowait 값이 증가하기 시작하고 유휴 값이 떨어지기 시작합니다.

JBoss 애플리케이션을 실행하기 전에무료명령은 다음 출력을 반환합니다.

             *total       used       free     shared    buffers     cached  
Mem:       1028520     966400      62120          0     187756     538928  
-/+ buffers/cache:     239716     788804  
Swap:      2044072     790672    1253400*  

JBoss 애플리케이션을 시작한 후무료명령은 다음 출력을 반환합니다.

             *total       used       free     shared    buffers     cached  
Mem:       1028520    1007648      20872          0     187116     524084  
-/+ buffers/cache:     296448     732072  
Swap:      2044072     819096    1224976*  

JBoss 애플리케이션을 시작한 후 요청에 응답하지 않고 Java 프로세스 /proc/PID/status 파일의 값은 다음과 같습니다.

State:  S (sleeping)
SleepAVG:       27%
Tgid:   24022
Pid:    24022
PPid:   21011
TracerPid:      0
Uid:    500     500     500     500
Gid:    500     500     500     500
FDSize: 256
Groups: 500
VmSize:   775200 kB
VmLck:         0 kB
VmRSS:    156752 kB
VmData:   696752 kB
VmStk:        36 kB
VmExe:        21 kB
VmLib:    710375 kB
StaBrk: 0804f000 kB
Brk:    095bb000 kB
StaStk: bffff8c0 kB
ExecLim:        ffffffff
Threads:        62
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000000
SigCgt: 1000000180015ccf
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000

이 동작은 메모리 스와핑으로 인해 발생합니까, 아니면 서버에서 사용 가능한 짧은 메모리가 내 응용 프로그램을 실행하기에 충분합니까?

답변1

Jboss는 실행 중인 항목이 없더라도 자체적으로 상당한 양의 메모리를 차지합니다.

시스템이 과도하게 스왑되고 있는지 확인하려면 언제든지 다음을 실행할 수 있습니다.

vmstat 1

그리고 출력을 지켜보세요. "swap" 아래에 "si"와 "so"가 표시됩니다. 이는 페이지가 스왑 인/아웃되는 것입니다.

추측컨데 더 많은 RAM을 제안하겠지만 실제로 조사를 먼저 진행해야 합니다. 예를 들어, 배포되는 큰 개체가 많은 경우 이러한 개체를 디스크에서 끌어 놓을 때까지 jboss를 잠시 기다려야 할 수도 있습니다.

관련 정보