
服务器线上问题分析
独行侠梦
公众号关注 : 【侠梦的开发笔记】后回复【问题的答案】进入:java中Integer包装类的基本数据类型是?
如果你也经历过遇到项目难题,无从下手,
他人有可能可以给你提供一些思路和看法,一百个人就有一百种思路,
同样,如果你也乐于帮助别人,那解决别人遇到的问题,也同样对你是一种锻炼。
展开
-
搞java开发,看懂JVM的GC日志真的很重要
前言今天整理的这篇文章,整理自以前记录的日常笔记。刚开始接触JVM时,对待GC的日志,是保持"逃避"态度的,线上部署的程序没有达到期望的运行效率,或是预期目标时,往往会把问题的矛头指向内存上。是不是内存不够?GC日志怎么这么多?占用磁盘高达几个G?不想看到打印怎么多,甚至暴力的将程序日志屏蔽掉。我也曾经这样干过,写过的程序,同样导致过内存溢出,甚至是主机宕机。是的,java中的垃...原创 2020-03-26 23:32:38 · 2578 阅读 · 0 评论 -
java内存溢出问题分析过程二(附MAT超全操作文档)
前言java程序的性能问题定位,一直都是开发者需要面对的一个“拦路虎”,在前面的两篇文章中,已经介绍了Heap dump的概念和生成方式,以及Shallow heap和Retained heap以及GC ROOT的概念,本篇文章,我们继续来介绍一些新的概念和基于一个dump案例,详尽的介绍,在程序OOM后,改如何去定位具体原因。再次提及dominator tree(支配树)如果你玩过竞技类...原创 2020-03-10 11:39:24 · 975 阅读 · 2 评论 -
一文让你理解什么是shallow heap及retained heap
前言快速定位性能故障并非一朝一夕之功,需要我们对很多概念有很深刻的理解,在前文中,我们介绍了heap dump的相关概念和其获取方式,今天我们一起来了解一下什么是:Shallow 和 retained sizes。GC ROOT是什么?在java语言中,都是通过可达性分析来判定对象是否存活的。此算法的基本思路是:通过一系列的称为“GC Roots”的对象作为起点,从这些节点向下搜索,搜索所...原创 2020-03-08 18:45:02 · 12567 阅读 · 0 评论 -
windows服务器java项目cpu占用较高原因分析
前言在windows平台上要找出到底是哪个线程占用的cpu还不那么容易,linux用top就简单多了最后的解决方法:1.找到java进程对应的pid。找pid的方法是:打开任务管理器,然后点击 “查看” 菜单,然后点击 “选择列”,把pid勾上,然后就可以在任务管理器里面看到所有进程的pid值了。(也可以用第三步中提到的工具直接查看)2.然后把java进程导出快照。直接运行命令。jstack转载 2017-07-09 20:52:52 · 2756 阅读 · 0 评论 -
一次容器化springboot程序OOM问题探险
背景运维人员反馈一个容器化的java程序每跑一段时间就会出现OOM问题,重启后,间隔大概两天后复现。问题调查一查日志由于是容器化部署的程序,登上主机后使用docker logs ContainerId查看输出日志,并没有发现任何异常输出。 使用docker stats查看容器使用的资源情况,分配了2G大小,也没有发现异常。二缺失的工具打算进入容器内部一探究竟,先使用dock...原创 2019-09-21 00:55:27 · 1030 阅读 · 0 评论