执行 JBoss 3.2.7 时 IOWait 较高

执行 JBoss 3.2.7 时 IOWait 较高

服务器详细信息:
核心:Linux wiq31 2.4.21-9.ELsmp #1 SMP 2004 年 1 月 8 日星期四 17:08:56 EST i686 i686 i386 GNU/Linux
中央处理器:4 个 Intel(R) Xeon(TM) CPU 3.06GHz
记忆:1028520 千字节
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 一段时间将这些对象从磁盘中拖出。

相关内容