我的 tomcat 突然自动关机。我检查了日志文件,发现它被杀死并显示消息:
kernel: Killed process 17420, UID 0, (java) total-vm:8695172kB, anon-rss:4389088kB, file-rss:20kB
我运行tomcat的设置是-Xms2048m -Xmx4096m -XX:NewSize=256m -XX:MaxNewSize=512m -XX:PermSize=256m -XX:MaxPermSize=1024m
运行命令“free -m”时我的系统是:
total used free shared buffers cached
Mem: 7859 7713 146 0 97 1600
-/+ buffers/cache: 6015 1844 Swap: 0 0 0
我用“top -p”监控程序,结果如下
Cpu(s): 0.1%us, 0.0%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 8048440k total, 7900616k used, 147824k free, 100208k buffers Swap: 0k total, 0k used, 0k free, 1640888k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4473 root 20 0 8670m 2.5g 6568 S 0.0 32.6 71:07.84 java
我的问题是:
1.为什么VIRT = 8670m(在“top -p”结果中)大于Mem:总计8048440k,但我的应用程序仍在运行?
为什么我的tomcat被内核杀死了?我没有看到任何奇怪的内存(它与运行时相似)
为避免此错误发生,我该怎么办?为什么?