服务器详细信息:
核心: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 一段时间将这些对象从磁盘中拖出。