当前位置: 首页 > news >正文

电子商务公司经营范围有哪些seo教程seo教程

电子商务公司经营范围有哪些,seo教程seo教程,携程网网站规划建设特点,国外可以做网站盈利模式有哪些今天断断续续的收到管理平台的异常报警,cpu占用过高和jvm old占用过高,这个时候赶紧去排查原因,下面记录了我的排查过程,可能里面还有不正确的地方,欢迎各位大佬指正,也欢迎大家关于类似的案例一起交流&…
今天断断续续的收到管理平台的异常报警,cpu占用过高和jvm old占用过高,这个时候赶紧去排查原因,下面记录了我的排查过程,可能里面还有不正确的地方,欢迎各位大佬指正,也欢迎大家关于类似的案例一起交流,下面就看我关于这次排查的过程把

报警

  1. cpu使用率过高报警,接近100%
  2. 后续又来了jvm old过高报警

排查过程

  1. 首先打开监控平台看报警节点的cpu使用情况

0ebc8ddaa5779b10bac00d26dbcdc760.png
  1. 登录服务器找到占用 cpu过高线程堆栈信息

①通过 top 命令找到占用cpu最高的 pid[进程id]

2460678d4d34b7af60777a98d2a5bf91.png

定位到pid是 1469

②通过 top -Hp pid 查看进程中占用cpu过高的 tid[线程id]

③通过 printf '%x/n' tid 把线程id转化为十六进制

④通过 jstack pid | grep tid -A 30 定位线程堆栈信息

占用cpu过高的线程有两个,其中一个是打印异常日志的(会new 对象),还有gc线程

打印异常堆栈

54a4666a61739932460cdd45e9958ee4.png

这个占用cpu根据堆栈信息就可以定位,看下代码,可以发现new 对象,且打印全栈信息

1ca05608422ece6c122ffe6b3dfba2e8.png

其中ExceptionUtils.getFullStackTrace(e) 属于commons.lang包

6d0b940f412b225bec63847fdad7536d.png

可以发现上面两个方法会创建很多对象且打印堆栈信息占用内存

gc线程

1d22c926e7de11819733d86cd5bdd729.png

可以发现占用cpu过高的线程进行大量的gc

  1. 通过 jstat -gcutil pid 时间间隔 查看 jc 信息

afe773d3c98725b71f63c7366fc770d5.png

可以发现伊甸园区和老年代都已经满了,且进行了大量的FGC

指标介绍

S0:年轻代第一个幸存区(survivor)使用容量占用百分比
S1:年轻代第二个幸存区(survivor)使用容量占用百分比
E:年轻代伊甸园区(eden)使用容量占用百分比
O:老年代使用容量占用百分比
P:perm代使用容量占用百分比
YGC:从应用程序启动到当前采样时年轻代gc的次数
YGCT:从应用程序启动到当前采样时年轻代gc的时间
FGC:从应用程序启动到当前采样时老年代gc的次数
FGCT:从应用程序启动到当前采样时老年代gc的时间
GCT:从应用程序启动到当前采样时gc总耗时
  1. 导出dump文件,使用jdk自带的jvisualvm.exe分析

使用 jmap -dump:format=b,file=name.dump pid 导出dump文件,一般dump文件会比较大【我的这个2.94G】,然后下载【可以用 sz name.dump】到本地用jvisualvm【jdk自带的,在bin目录下】分析

首先看下dump文件的概要

74c33c5461e42f6cd48f7f973d10f58b.png

看看这些大对象都是什么

2876eecf358372e2a0f5b2eb7c7bf012.png

发现前面几个大对象都和 ElastaicSearchStatusException对象有关,然后这个管理平台用到es的地方只有一处,就是做数据漏斗,记录广告检索在哪些步骤过滤掉,方便产品和运营查看广告被过滤的原因,然后翻开代码

4f9a27e9eec4257234b17d26865ef993.png

其中 RestClientFactory.getRestClient().search(searchRequest)的 search方法一步一步跟进,发现抛ElasticSearchStatusException的地方

d52f5c2fdd1ec8c98ab77ef148b8a055.png

其中parseResponseException方法会抛出ElasticSearchStatusException异常,至于这两个地方具体是哪个步骤抛的,可以继续研究es代码判断或者 远程debug判定,我这里先不管了,反正我们能知道es出问题了

其实正是因为这里抛异常才会导致创建大量对象,因为异常在上面提到的打印异常日志的地方也会创建对象,老年代占用过高,导致大量fgc

但es这里为何会有异常?

我登录到es的管理平台查看es的索引,发现有的索引没有创建,索引的创建是有任务去创建并实时写入数据的,发现那个任务已经停了。

处理过程

  1. 找到相关的任务重新启动,并找任务停止的原因,修复,并把丢失的索引创建并修复数据
  2. 在异常日志打印那最好加入流控【用Guava.RateLimiter控制】

小结

cpu占用过高排查思路

  1. top 查看占用cpu的进程 pid
  2. top -Hp pid 查看进程中占用cpu过高的线程id tid
  3. printf '%x/n' tid 转化为十六进制
  4. jstack pid |grep tid的十六进制 -A 30 查看堆栈信息定位

jvm old区占用过高排查思路

  1. top查看占用cpu高的进程
  2. jstat -gcutil pid 时间间隔 查看gc状况
  3. jmap -dump:format=b,file=name.dump pid 导出dump文件
  4. 用visualVM分析dump文件

之前写过的两篇关于jvm的文章

GC算法和垃圾收集器

内存分配与回收策略

http://www.lbrq.cn/news/2624059.html

相关文章:

  • 昂昂溪网站建设百度付费推广
  • 怎么做有趣的微视频网站个人购买链接
  • 有做酒席酒水网站吗重庆森林经典台词罐头
  • 网站建设都是模板seo自动刷外链工具
  • 有没有兼职做设计的网站吗广州seo外包多少钱
  • 开设计工作室赚钱吗图片优化
  • 网站建设与设计自动搜索关键词软件
  • 网站验证码怎么做win10优化大师有用吗
  • 南宁网站建设7make凡科建站登录
  • 定南建设银行网站点国外搜索引擎排行榜
  • 织梦网站后台管理宁波网站建设网站排名优化
  • 网站推广的优点新网站seo外包
  • 湖北最近发生的新闻搜索引擎优化效果
  • 企业做营销型网站西安网络seo公司
  • 网站降权怎么处理互联网营销推广服务商
  • 开网站 主机 服务器发布会直播平台
  • 北京网站建设推广服软文营销的五大注意事项
  • 网站链接的基本形式网络推广人员
  • 山东网站app制作曹操论坛seo
  • 荆门哪里有专门做企业网站的关键词查询
  • 网站制作报价网站源码
  • 天猫网站做的比京东好搜狗快速收录方法
  • 电商网站建设 网站定制开发代理公司注册
  • 网上注册公司需要多少钱搜索引擎优化方法有哪些
  • 自己如何做团购网站百度24小时人工客服电话
  • 临海大经建设集团网站搜易网提供的技术服务
  • 现在 做网站 技术路线网站制作的流程
  • 帮做网站今日头条新闻10条
  • 网站建设案例 优帮云免费建设网站平台
  • 做网站需要哪些流程最大的中文搜索引擎
  • OpenAI 开源模型 GPT-OSS深度拆解:从1170亿参数到单卡部署,重构AI开源生态
  • 超全的软件测试项目平台,10多个项目部署在线上环境,浏览器直接访问
  • [无需 Mac] 使用 GitHub Actions 构建 iOS 应用
  • 【RabbitMQ面试精讲 Day 13】HAProxy与负载均衡配置
  • DHCP 服务器与DNS服务器
  • JavaScript DOM 元素节点操作详解