本文共 1182 字,大约阅读时间需要 3 分钟。
11.21 早上 pd 给讲法务评审的时候,操作日常环境,莫名就 down 机了,而且 pd 反馈经常会这样。(ps : pd 反馈系统请求时间过长,性能很差,后续也会排查解决)
于是排查了一下系统 down 机的原因查看内存 setenv.sh 设置
if [ $memTotal -le 2048 ]; thenSERVICE_OPTS="${SERVICE_OPTS} -Xms1536m -Xmx1536m"SERVICE_OPTS="${SERVICE_OPTS} -Xmn768m"elseSERVICE_OPTS="${SERVICE_OPTS} -Xms4g -Xmx4g"SERVICE_OPTS="${SERVICE_OPTS} -Xmn2g"fi查看日常机器内存
$cat /proc/meminfo | grep MemTotalMemTotal: 4194304 kB看出问题了吧,我们设置的最大内存是4G,而我们的linux 机器是不会把4G 内存全部分配给应用的。应用在运行过程中,一直会消耗内存,当快达到4G 的时候,应用认为还有可用内存,并不一定会及时 GC。导致内存不足,内存被撑满了,我们的应用也就 down 机了
这里我选择方法一
Plain Text
# if os memory <= 4Gif [ $memTotal -le 4195 ]; then SERVICE_OPTS="${SERVICE_OPTS} -Xms3536m -Xmx3536m" SERVICE_OPTS="${SERVICE_OPTS} -Xmn1536m"else SERVICE_OPTS="${SERVICE_OPTS} -Xms4g -Xmx4g" SERVICE_OPTS="${SERVICE_OPTS} -Xmn2g"fi
这里根据我们的环境设置,因为日常其实是4G,线上机器是8G,所以修改只会修改日常环境。
拉取新的镜像
feature/20181121_3189553_fix_down_1
FROM reg.docker.alibaba-inc.com/aone-base/logan_down:20181121210347
3、提交代码,日常部署
查看日常、预发机器的内存分配情况
日常已修改成功预发
对预发和线上并无影响
todo
后续观察日常机器是否还会经常 down机线上和日常环境机器都是8G内存,而我们对系统的设置是4G内存,内存并无合理利用。后续可以考虑调整。转载地址:http://quial.baihongyu.com/