Jenkins web页面莫名其妙无法访问
最近几天经常遇到jenkins web无法访问的情况,systemctl restart jenkins.service后就正常了。
现象如下:
1. systemctl status jenkins.service,发现后台service运行正常
2. ps -ef | grep jenkins没有结果;netstat -tnlp | grep 8083也无结果。很好奇,systemctl status和ps查询结果为啥对应不上。。
3. 查询jenkins.log,根据systemctl status jenkins.service可知启动文件位置,再找到jenkins.log位置
发现莫名其妙启动jenkins,而且出现端口占用的异常,实在没想明白。
4. top操作,发现jenkins内存占用一直11.7%以上,16G内存,也就是长期占用接近2G,是否可能是linux的OOM-killer造成的?
5. 查询linux主动kill的进程日志,发现28323就是之前jenkins的pid
为确认kill进程的原因,查询内核日志,dmesg -T -d | grep java
的确是因为OOM,jenkins服务占用内存一度达到10G。。原因还未搞清楚【Out Of Memory Errors】
【补充】最近jenkins服务又频繁down掉,查看OOM-killer日志确认:
(1) cat /var/run/jenkins.pid获取jenkins进程id
(2) dmesg -T -d | grep <jenkins进程id>
jenkins服务占用内存一度达到10G。。。
(3) 查看jenkins log,看看jenkins服务down掉时有哪几个job在运行,发现有两个。重启jenkins再手动触发这两个job,top命令观察jenkins以及启动job占用内存变化(当时也使用远程jvisualvm观察jenkins vm堆变化)。最终复现问题(jenkins服务down掉),发现是两个job的前端构建,node中vue-cli-service build消耗内存太大,每个几乎占用8G。。。交由前端处理
6. 设置jvm启动/运行时参数,限制堆内存, -Xms1024m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m
6. 监控下gc,jstat -gcutil 13771,服务启动后一天内FullGC4次,时间0.448s,还可以。Jenkins web无法访问的问题算是解决了。