ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

服务宕机问题排查记录

2022-02-16 16:00:47  阅读:145  来源: 互联网

标签:记录 占用 宕机 程序 排查 内存 使用 加载


问题:从oracle查询1800w数据,根据尾号截取,加载到内存,取表数据四个字段,其中包含手机号、两个10位中文字段加一个日期,

用jedisCluster进行管道操作psetStr
当程序加载到第五批次左右,程序宕机,通过重启,重新加载数据,配合
ps -ef|grep 查询进程号,jstat -gcutil 进程id 2000,top查看当前内存占用(-c查看执行脚本)、free -m 查看机器可用内存,几个命令,分析出当前机器空闲内存不足
修改:调整程序启动的最大堆内存参数、修改程序,采用后两位尾数查询方式,减少分页量的大小,从10个批次扩充到100个批次,配合多线程处理
后续问题:由于成功加载了redis数据,导致redis数据内部占用内存较大,使其他程序运行时宕机,解决:将redis下的dump文件

top 指令:如果swap的uesd变化频繁,说明内存可能不足了,free少,不代表真的不够用了,mem的used表示,之前使用的内存,使用之后不会立即返回free
堆、栈分配的内存,如果没有使用是不会占用实存(RES)的,只会记录到虚存(VIRTT)。
如果程序占用实存比较多,说明程序申请内存多,实际使用的空间也多。
如果程序占用虚存比较多,说明程序申请来很多空间,但是没有使用。
比如可能会有【程序虚存300G+, 实存只有不到15G】

gcstat -gcutil 进程号
S0:幸存1区当前使用比例
S1:幸存2区当前使用比例
E:伊甸园区使用比例
O:老年代使用比例
M:元数据区使用比例
CCS:压缩使用比例
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间

标签:记录,占用,宕机,程序,排查,内存,使用,加载
来源: https://www.cnblogs.com/brxHqs/p/15901040.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有