- 主机操作系统:OpenVZ 主机
- 客户操作系统:Debian 6.0 最低配置
- Java:Java6 太阳
- Servlet 容器:温斯顿
- Debian 版的 Jenkins:http://pkg.jenkins-ci.org/debian/
- 詹金斯版本:1.449
- uname -a:Linux 主机名 2.6.18-238.9.1.el5.028stab089.1 #1 SMP 星期四 4 月 14 日 14:06:01 MSD 2011 i686 GNU/Linux
- JAVA_ARGS="-Xmx128m -Xms64m -Xrs -XX:HeapDumpPath=/tmp/java-jenkins-dumps -XX:PermSize=128m"
- 免费-m:
total used free shared buffers cached Mem: 2048 532 1515 0 0 0 -/+ buffers/cache: 532 1515 Swap: 0 0 0
崩溃后:
- jenkins 最新行输出:信息:Jenkins 已完全启动并运行
- 系统日志输出:1 月 31 日 17:50:02 cherry jenkins:jenkins:致命:客户端 (pid 16189) 被信号 15 杀死,正在退出
- user_beancounters 有 0 个失败数
问题是:还有什么需要调试?是否值得尝试更改 servlet 容器(更改为 tomcat)?
答案1
我刚刚修复了我们一台服务器上的类似问题。出于某种原因,我们运行 Jenkins 的虚拟机使用了较小的内存配置,并且交换分区当前未使用。我猜想 Java 在某些时候会尝试分配大量内存,并被 OOM 任务终止。
确保交换分区已通过 fstab 条目激活后,问题就消失了。
TLDR:您需要更多的虚拟或物理内存。