博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
日常环境莫名宕机的处理
阅读量:7038 次
发布时间:2019-06-28

本文共 1182 字,大约阅读时间需要 3 分钟。

背景

11.21 早上 pd 给讲法务评审的时候,操作日常环境,莫名就 down 机了,而且 pd 反馈经常会这样。(ps : pd 反馈系统请求时间过长,性能很差,后续也会排查解决)

于是排查了一下系统 down 机的原因

原因

查看内存 setenv.sh 设置

if [ $memTotal -le 2048 ]; then
SERVICE_OPTS="${SERVICE_OPTS} -Xms1536m -Xmx1536m"
SERVICE_OPTS="${SERVICE_OPTS} -Xmn768m"
else
SERVICE_OPTS="${SERVICE_OPTS} -Xms4g -Xmx4g"
SERVICE_OPTS="${SERVICE_OPTS} -Xmn2g"
fi

查看日常机器内存

$cat /proc/meminfo | grep MemTotal
MemTotal: 4194304 kB
image.png

看出问题了吧,我们设置的最大内存是4G,而我们的linux 机器是不会把4G 内存全部分配给应用的。应用在运行过程中,一直会消耗内存,当快达到4G 的时候,应用认为还有可用内存,并不一定会及时 GC。导致内存不足,内存被撑满了,我们的应用也就 down 机了

处理方法

两种方法:

1. 设置jvm 参数为自适应

2. 申请8G 机器

这里我选择方法一

1.拉取新的分支,修改 setenv.sh

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,所以修改只会修改日常环境。

拉取新的镜像

image.png

2、填写刚修改并提交的分支

feature/20181121_3189553_fix_down_1

image.png

3、构建成功后,修改四个环境的镜像地址,达到镜像统一

image.png

FROM reg.docker.alibaba-inc.com/aone-base/logan_down:20181121210347

3、提交代码,日常部署

查看日常、预发机器的内存分配情况

日常已修改成功
image.png

预发

image.png

对预发和线上并无影响

todo

后续观察日常机器是否还会经常 down机
线上和日常环境机器都是8G内存,而我们对系统的设置是4G内存,内存并无合理利用。后续可以考虑调整。

转载地址:http://quial.baihongyu.com/

你可能感兴趣的文章
短信验证码接收app必须注意的那些事
查看>>
HTTP通俗介绍
查看>>
HttpClient以及Json传递的一些坑
查看>>
loadrunner11压力测试自学成才!嘎嘎
查看>>
Ext.Net系列:二Event之DirectEvent 示例1-调用事件顺序
查看>>
基于搜狗搜索的微信公众号爬虫实现(C#版本)
查看>>
朋友们谁知道哪里培训PHP比较靠谱的?
查看>>
cnetos6上实现nfs共享
查看>>
若是在做销售源码生意的,还是用 VS2008 省事一些,今天有一个客户没 VS2010 只好再把程序倒退回来...
查看>>
.NET大型C/S系统可动态设置登录窗口的实现参考
查看>>
磁盘的读写原理
查看>>
转-快速编辑Shell命令行
查看>>
【中医养生门户网】注意!春分在于“生、升”,保肝促阳为重
查看>>
SQL 语句技巧--聚合函数的灵活使用
查看>>
Java调用SQL Server的存储过程详解
查看>>
springmvc - SqlSession
查看>>
Json 简介
查看>>
zip()方法对数组进行重新组合
查看>>
60-高级路由:IPv6 静态路由
查看>>
40. Combination Sum II
查看>>