本文原地址来自于我的个人博客:www.endless365.com,希望得到各位的关注。
本文详细地址出自于:http://www.endless365.com/article/get?type=tec&id=151
双十一的活动就是好,好久以前就想买一个云服务器,但是感觉有点小贵,所以就一直没买,双十一搞活动只要7折,所以就立马买了一个低配的,512内存,虽然少,但是估计个人用差不多了,当把我的这个个人博客架起的时候,想做一个自动化部署工具,一旦部署就出现了内存溢出的情况,郁闷之极,发现进程里面阿里云盾占用了大量的内存,总共才512的内存,他竟然吃了我200M的内存,都差不多一半了,郁闷。然后就做了一些处理。
当个人博客架起来后,由于更新比较的多,所以想弄一个自动化部署的工具,所以在服务器上面架设了一个jenkins来处理这一系列的问题。
稍微说明一下思路。当我将代码push到我的git里面后,jenkins自动触发webhooks,然后自动迁出代码,编译,测试,并发布到我的服务器,其中任何一部出现错误,将会邮件通知我,这也就解决了自己每次更新后还需要手动的去做更新,比较麻烦。但是一切做完以后,跑的时候却内存溢出了。没办法,只有512的内存,所以很珍惜每一点内存。
top一下看了内存的使用情况,这里由于我已经关闭了aliyundun的进程,重新启动,所以这里内存占用不是很多,如图:
赶紧使用ps -ef看一起这个进程的目录是在哪里的,如图:
然后进到该目录下面去看,如图:
对比了一下原始的centos该目录下面的东西,估计这个就是阿里云盾使用的东西。
然后使用命令chkconfig --list,看一下哪些进程会随系统启动而启动,如下:
发现有个进程aegis是随系统启动而启动的(这个是我关闭以后的截图,所以看到aegis所有都是off状态,原始2345为on状态)
赶紧关闭:chkconfig --level 2345 aegis off
最后重新调整了一下tomcat的jvm设置,编辑catalina.sh,增加如下jvm设置
JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m"