JVM源码分析之jstat工具原理完全解读
概述jstat是hotspot自带的工具,和java一样也位于`JAVA_HOME/bin`下面,我们通过该工具可以实时了解当前进程的gc,compiler,class,memory等相关的情况,具体
XPocket插件jstack_x助力线程问题排查
在程序开发过程中,开发人员通常会遇到许多线上问题,这些问题可能是代码Bug导致的,也可能是性能问题引起的。这些线上问题都会通过CPU飙升、GC频繁、抛出OOM异常等情况表现出来,这些问题的根因很可能是
fastJson与一起堆内存溢出'血案'
现象- QA同学反映登录不上服务器 排查问题1--日志级别- 查看log,发现玩家登录的时候抛出了一个java.lang.OutOfMemoryError - 大概代码是向Redis序列化一个Pla
火焰图:全局视野的Linux性能剖析
什么是火焰图火焰图(Flame Graph)是由Linux性能优化大师Brendan Gregg发明的,和所有其他的trace和profiling方法不同的是,Flame Graph以一个全局的视野来
如何使用Eclipse内存分析工具定位内存泄漏
本文以我司生产环境Java应用内存泄露为案例进行分析,讲解如何使用Eclipse的MAT分析定位问题 背景11月10号晚上8点收到报警邮件,一看是OOM打开公司监控系统查看应用各项指标发现JVM中老年
代码优化日记 ——火焰图找问题代码
一、问题背景- 排序服务,用于推荐item分数预测,详细项目背景及排序请求执行逻辑可参考之前的一篇文章 :《[性能优化:线程资源回收](https://heapdump.cn/user/708
JVM CPU Profiler技术原理及源码深度解析
引言研发人员在遇到线上报警或需要优化系统性能时,常常需要分析程序运行行为和性能瓶颈。Profiling技术是一种在应用运行时收集程序相关信息的动态分析手段,常用的JVM Profiler可以从多个方面
看了 Spring 官网脚手架真香,也撸一个 SpringBoot DDD 微服务的脚手架!
作者:小傅哥博客:[https://bugstack.cn](https://bugstack.cn) 沉淀、分享、成长,让自己和他人都能有所收获!😄 一、前言`为什么我们要去造轮子?`造轮子的核心
Java 虚拟机进程状态管理工具 jps 失效?吓尿了!
寒冬了,服务器资源也要节约这用。以前,我们一个人可以申请多个机器进行一些分布式的系统部署和测试,包括一些微服务方面的项目我们尽量的模拟多台机器的环境。但是现在,公司为了进一步节约成本开支,把一些机器进
关于JConsole里的“执行GC”按钮与System.gc()的关系
前言JConsole里的可以执行的gc这里的GC是立即执行,还是与代码里写System.gc()一样,是由jvm决定什么时候来执行的?执行的是minor gc,还是full gc,还是根据特定区域执行
这个Bug的排查之路,真的太有趣了。 #论程序员,你曾遇到关于性能的那些事#
在《深入理解Java虚拟机》一书中有这样一段代码:```public class VolatileTest { public static volatile int race = 0; p
JFR定位线上问题实例 - JFR导致的雪崩问题定位与解决
最近发现一个应用,使用默认的 JFR 配置,发生了类似于雪崩的现象,这里记录下,引以为戒。 Key takeaways1. JFR 的线程堆栈 dump 采集默认周期是everyChunk,也就是每次
实战生产问题:真的别再使用TimerTask了!
问题背景说说大概的场景吧。由于系统里面增加了权限的限制,不同用户拥有不同的数据权限。当前的方案是查询用户uid和对应的数据列表存放在本地内存里,并且需要定时捞取对应的关系数据存储在本地缓存LocalC
XPocket插件中心|JStack_X、Top_X插件上新,欢迎下载使用
为了给你带来更好的产品体验,请认真填写这份问卷:[XPocket插件中心调研问卷](XPocket插件中心调研问卷)你最想要我们在XPocket插件中心上新哪些插件?请在评论区留言、或填写问卷、或可以
记一次通过Arthas定位解决spring-boot中内嵌tomcat的Bug问题
背景公司有个渠道系统,专门对接三方渠道使用,没有什么业务逻辑,主要是转换报文和参数校验之类的工作,起着一个承上启下的作用。最近在优化接口的响应时间,优化了代码之后,但是时间还是达不到要求;有一个诡异的
线上排障技巧 | 动态修改LOGGER级别
前言大多数情况下,我们会在打印日志时定义日志的LOGGER级别,用来控制输出的信息范围。一方面,过多的输出会影响查看日志的效率,另一方面,过少的日志让问题定位变得困难。但当线上出现问题时,线上容器通常
一次系统调用时间过长追踪完整教程案例
Ftrace简介Ftrace是Linux进行代码级实践分析最有效的工具之一,比如我们进行一个系统调用,出来的时间过长,我们想知道时间花哪里去了,利用Ftrace就可以追踪到一级级的时间分布。 Ftra
使用XPocket插件JConsole排查线上OOM异常案例
XPocket插件JConsole主要用于内存问题的排查,能够对堆中的Eden、Survivor、Old区以及堆外的Metaspace、Code Cache等区域进行观察。我们在使用JConsole时
借助Xpocket中的perf插件 了解cpu热点函数的抓取原理
本文使用了xpocket工具包的插件链接xpocket地址: [https://plugin.xpocket.perfma.com](https://plugin.xpocket.perfma.com
记一次因 Redis 使用不当导致应用卡死 bug 的排查及解决!
首先说下问题现象:内网sandbox环境API持续1周出现应用卡死,所有api无响应现象刚开始当测试抱怨环境响应慢的时候 ,我们重启一下应用,应用恢复正常,于是没做处理。但是后来问题出现频率越来越频繁
通过一个线上调优例子了解JMC 与 Event 结构与详细配置
查看 JFR 事件的工具 - JMC (Java Mission Control)首先打开 jmc,我们通过 “文件” - “打开文件” 来打开一个 jfr 文件。 由于 JFR 文件里面的数据要全部
Java Flight Recorder - 事件机制详解
编者按:Java Flight Recorder(简称为JFR)曾经是 Oracle JDK 商业版的附属组件,在 JDK 11 中正式开源,后又被移植到 JDK8 中。JFR对本身应用的侵入性很小,
一张图看懂linux内核中percpu变量的实现
我们在使用各种编程语言进行多线程编程时,经常会用到thread local变量。所谓thread local变量,就是对于同一个变量,每个线程都有自己的一份,对该变量的访问是线程隔离的,它们之间不会相
记一次使用VJMap排查频繁YGC的经历
VJMap概述分代版的jmap(新生代,存活区,老生代),是排查内存缓慢泄露,老生代增长过快原因的利器。因为jmap -histo PID 打印的是整个Heap的对象统计信息,而为了定位上面的问题,我
XPocket插件使用案例合集——性能问题排查分析,一个XPocket足以!
你是否遇到过这些问题? - 系统存在性能问题 - 问题排查时一头雾水,不知道用什么工具 - 查找工具,下载和安装都很浪费时间 - 排查问题十分繁琐,想尽量简化排查方案以供后续使用XPocket是Per
【5】性能测试平台从设计到实现-如何选择适合自己的压力模型
性能测试平台从设计到实现的第六篇,如何选择适合自己的压力模型,本文从实际业务场景出发,介绍两大类场景并发数和QPS下的压力模型构造方法,及在引擎提供的基础能力上,如果简化这部分的工作。
【4】性能测试平台从设计到实现-玩转压测脚本之场景化压测
性能测试平台从设计到实现的第五篇,玩转压测脚本之场景化压测,本文是第四篇如何玩转脚本的姊妹篇,以春运活动为例,讲解了场景化压测脚本的编写方法
【2】性能测试平台从设计到实现-中控系统之资源管理
性能测试平台从设计到实现的第三篇,中控系统之资源管理,本文主要介绍了资源管理中的四要素,即用例、数据、压力模型和执行节点。
【全网首发】案例分享-https证书链不完整导致请求失败
通过一个案例分享一款https证书链补全工具,顺带了解一些附带知识
【7】性能测试平台从设计到实现-报告指标深度解读及通过标准评估
性能测试平台从设计到实现的第八篇,报告指标的详解解读及个人实践经验总结。本文讲述了在生成压测报告后,对报告中各指标的含义进行解读。并对应给出本次压测是否符合预期的评估标准。
【6】性能测试平台从设计到实现-报告初步解读和平台的增强优化
性能测试平台从设计到实现的第七篇,报告初步解读和平台的增强优化。本文讲述了在压测中和压测结束后,针对报告的解读方法,需关注的指标以及平台所做的增强型优化功能
spring-data-redis 上百万的 QPS 压力太大连接失败,我人都傻了
大家好,我们最近业务量暴涨,导致我最近一直人都傻了。前几天晚上,发现由于业务压力激增,某个核心微服务新扩容起来的几个实例,在不同程度上,出现了 Redis 连接失败的异常:```org.springf
【3】性能测试平台从设计到实现-如何玩转压测脚本
性能测试平台从设计到实现的第四篇,如何玩转压测脚本,本文主要介绍了Gatling引擎的scala脚本的常用写法,直接拿走不用谢~
【全网首发】设计了一个自动归档工具
分享一个我年初设计的自动归档功能,如何将一些思考融入到简单的CRUD中
【全网首发】分享一次机房出口带宽跑满的案例
工作这么多年,带宽跑满这事也只是听说过,倒没亲身经历过,通过一个案例了解基本概念和一些常规手段
【1】性能测试平台从设计到实现-中控系统
性能测试平台从设计到实现的第二篇,中控系统,本文主要介绍了中控系统的任务管理的新建任务功能,将任务所需的各类资源按照步骤进行拆分,映射到资源管理模块下的各个子模块中,可复用,可新建【支持保存】。任务从创建到实时执行查看到执行完成回看的全过程。
【0】性能测试平台从设计到实现-开篇
性能测试平台从设计到实现-开篇;从背景介绍、目标价值和特征分析三个方面,对性能测试平台的建设进行阐述
在 VS Code 中使用 GraalVM 和 VisualVM 进行性能和内存分析
Jetbrain最近的一项调查显示,大约五分之一的Java开发人员使用了visual vm,这使得它成为生态系统中使用最广泛的性能分析工具。在最近发布的GraalVM 21.2中,我们改进了VS Co
JVM系列之:关于HSDB的一点心得
之前未接触过 HSDB 工具,在深入学习反射时,研究其源码时需要了解生成的字节码文件,恰巧看到别人使用了 HSDB 工具,因此花时间学习了一番。HSDB(Hotspot Debugger),是一款内置于 SA 中的 GUI 调试工具,可用于调试 JVM 运行时数据,从而进行故障排除。&nb
Linux 网络分析必备技能:tcpdump 实战详解
相对于其它 Linux 工具而言,tcpdump 是复杂的,但是也是非常有用的!

有开始,就会有进​步!

在追求性能的道路上,记录每一刻的成长!源码解读,编程技巧,外文翻译,技术实践,线上案例等等,记录自己,启发他人!

专家作者推荐

巡山小汪

关注微信公众号《解Bug之路》,有问题请在公众号中咨询:) 无论多么艰苦的时刻,都不要忘记,辉煌的未来,在你的眼中闪耀!

飞哥开发内功

《深入理解Linux网络》作者,腾讯搜狗十年工程师,公众号「开发内功修炼」作者!

踩刀诗人

聊聊技术,唠唠段子,偶尔做菜写诗,欢迎关注我的公众号 踩刀诗人

Brand

搜索关注微信公众号【架构与思维】:撰稿者为bat、字节的几位高阶研发/架构,专注技术分享。

专题推荐

Netty 是一个异步事件驱动的网络通信层框架,用于快速开发高可用高性能的服务端网络框架与客户端程序,它极大地简化了 TCP 和 UDP 套接字服务器等网络编程。
作者:闪电侠,《跟闪电侠学 Netty》已出版了。书的前半部分是掘金小册中的内容:通过一个完整的 IM 项目入门 Netty;后半部分用了较大的篇幅来介绍 Netty 的底层原理,也会穿插讲一些源码阅读的思路,希望能够帮助到你。
13篇文章21840阅读量
Out of memory (OOM) 是一种操作系统或者程序已经无法再申请到内存的状态。经常是因为所有可用的内存,包括磁盘交换空间都已经被分配了。OOM的官方解释是:Understand the OutOfMemoryError Exception,根据HeapDump性能社区专属讲师公与的总结,常见的OOM有以下10种(其中OOM Killer是操作系统层面的概念)。
11篇文章12748阅读量