2019独角兽企业重金招聘Python工程师标准>>>

一、案件背景

近日,一个线上应用开始频繁报警:异常日志、接口rt超时、load高、tcp重传率高等等。现场监控如下:

从基础监控来看,cpu使用率不算特别异常,而load高说明等待cpu资源的线程队列长,配合rt上涨来看,推测是线程出现了堆积,而线程堆积一般有两种情况:

  • 线程内部处理耗时变长:比如缓存未命中、被下游请求block、慢sql、循环逻辑耗时等。
  • JVM因GC、锁擦除等jvm操作原因触发stop the world,导致线程等待。

下面进一步定位问题。

二、问题定位

线程耗时变长?

因为应用重度依赖缓存,一起排查问题的同学发现tair成功率也有下降,于是找tair同学开始排查。

tair的同学表示集群正常,观察同机房其他应用读写tair也正常,推测问题还是出在应用自身。(其实应用自身负载高时,会引起tair超时和序列化失败,表象来看都像tair有问题,心疼下tair的同学。。。)

另外从db监控来看也没有慢sql出现,近期也没有逻辑改动较大的发布,暂时从其他方向看看。

STW

接下来比较醒目的就是GC监控了,监控如下:

可以看到问题期间GC次数和耗时明显上升,这里需要注意,因为GC监控里CMS(或G1)和Full GC都会归到Full GC里,所以登到机器上看看gc.log。

这里看到Metadata GC Threshold引起Full GC的字样较多,回收情况也很差(382626K->381836K)再通过jstat看下使用情况:

转载于:https://my.oschina.net/u/3611008/blog/1837080

Metaspace泄漏排查相关推荐

  1. golang runtime.systemstack 泄漏排查

    golang runtime.systemstack 泄漏排查 Fetching profile over HTTP from http://:9001/debug/pprof/heap Saved ...

  2. 一次恐怖的 Java 内存泄漏排查实战

    转载自  一次恐怖的 Java 内存泄漏排查实战 最近在看<深入理解Java虚拟机:JVM高级特性与最佳实践>(第二版)这本书,理论+实践结合,深入浅出,强烈推荐给大家. 这两天对JVM内 ...

  3. 填坑总结:python内存泄漏排查小技巧

    摘要:最近服务遇到了内存泄漏问题,运维同学紧急呼叫解决,于是在解决问题之余也系统记录了下内存泄漏问题的常见解决思路. 本文分享自华为云社区<python内存泄漏排查小技巧>,作者:luti ...

  4. iview select 内存泄漏_Vue遇到的内存泄漏排查处理

    Vue遇到的内存泄漏排查处理 1.定位问题跟踪具体那一部分造成的泄漏. (1)js写法(闭包.全局变量等).dom事件监听.循环定时器等这些造成的泄漏在度娘上应该都很好找到处理: (2)组件的泄漏(D ...

  5. 异常连接导致的内存泄漏排查

    目录 异常连接导致的内存泄漏排查 背景 详细流程 使用windbg分析dump文件 使用wireshark抓包分析 完成端口和重叠IO 重叠I/O 完成端口 Reactor模型与Proactor模型 ...

  6. C++内存泄漏排查以及几个工具

    近期排查老项目App的偶发闪退问题过程中,发现程序竟然有内存泄漏的情况,表现为连续运行多天后程序占用的虚拟内存和物理内存都会持续升高,经过排查修改,找出了多处内存泄漏,现对排查过程做个小结. 内存泄漏 ...

  7. FFmepg D3D11va解码渲染 内存泄漏排查

    FFmepg D3D11va解码渲染 内存泄漏排查 背景介绍 排查思路 D3D渲染对象 FFmpeg内存探测 背景介绍 Rtsp播放器,采用FFmepg D3D11va硬解码 + D3D11渲染. 正 ...

  8. 记一次SOFA内存泄漏排查过程

    记一次内存泄漏排查过程 起因 某天中午大家还在安静的午休,睡得正香的时候突然被一阵手机滴-滴滴直响短信惊醒.一看是应用的服务器告警并且对应服务的所有机器都在告警"健康检查失败,自动拉下线&q ...

  9. iOS 内存泄漏排查方法及原因分析

    级别: ★★☆☆☆ 标签:「iOS」「内存泄漏排查」「Leaks工具」 作者: MrLiuQ 审校: QiShare团队 本文将从以下两个层面解决iOS内存泄漏问题: 内存泄漏排查方法(工具) 内存泄 ...

最新文章

  1. nuxt 过滤 query 参数
  2. 【iOS】iOS之Button segue弹出popOver消除(dismiss)问题
  3. TCP/IP详解--第二章
  4. 计算机网络怎么删除,怎么删除网络协议
  5. ansible图形化界面开源_MySQL常见的图形化工具
  6. 分享几个拉钩网的前端页面
  7. 如何用 Swift 语言构建一个自定控件
  8. 初级Java开发与架构之间的差距不仅仅是开发时间
  9. Mybatis+mysql动态分页查询数据案例——房屋信息的接口(IHouseDao)
  10. 5-32 说反话-加强版
  11. ssm 退出登录 java_Spring+SpringMVC+Mybatis实现简单的用户的登录和退出
  12. 数字化、数字化营销及其重要性的思考
  13. 微型计算机主板usb电源损坏,自已动手彻底解决主板USB供电不足的问题
  14. 安卓4.0后新控件TextureView解决SurfaceView在修改默认屏幕方向后(硬件导致)视频方向无法翻转的问题
  15. 大数据四大阵营之OLTP阵营(上)
  16. Appium相对坐标定位元素
  17. 邮件营销EDM模板制作规范
  18. 相机ISO是什么 ISO是什么意思?
  19. phpstrom函数注释模板_PHPSTORM模板变量注释
  20. 3D激光雷达SLAM算法学习03——前端里程计方案

热门文章

  1. caffeine 线程私有的ReadBuffer实现
  2. 设计模式--策略模式--Java实现
  3. 使用Laravel Eloquent ORM 时如何查询表中指定的字段 1
  4. Docker常见问题总结
  5. Spring Boot 实现微信小程序订阅模板消息
  6. 计算机网络引言,[计算机网络]Ch.1引言
  7. seata分布式事务一致性锁机制如何实现的
  8. Mybatis中的动态SQL记录
  9. Vue项目中使用基于pdf.js的vue-pdf插件在pc浏览器下阅览PDF文件
  10. Cocos Creator两个类相互引用(调用)