12_jvm性能优化专题1——top命令和jstack联合定位
一:异常项目构建
1.通过while死循环构造异常常见:
package com.huawei.jvm; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; /**
* This is Description
*
* @author 王明飞
* @date 2018/08/31
*/ @Controller
public class Test { @RequestMapping("/hello")
public String hello()
{
return "hello";
} @RequestMapping("/jvm01")
public void jvm01()
{
while (true)
{
}
}
}
二:项目部署到linux服务器上
1.可通过war包放到webapp目录下;
2.启动tomcat自动解压。
3.关闭tomcat;
4.删除webapp目录下的war包
5.启动tomcat;

三:linux 服务器top命令查看
终端观察下图中的三处变化
访问前:top命令状态

curl使用后:


可以看到cpu使用达到了99.7%
四: 使用jstack命令
[root@localhost ~]# jstack 16350 >16350.txt
[root@localhost ~]# ll
总用量 179304
-rw-r--r--. 1 root root 12687 8月 2 08:19 16350.txt
-rw-------. 1 root root 1096 7月 22 00:54 anaconda-ks.cfg
drwxr-xr-x. 9 root root 4096 7月 24 23:12 apache-tomcat-7.0.47
-rw-r--r--. 1 root root 8234674 9月 11 2015 apache-tomcat-7.0.47.tar.gz
-rw-r--r--. 1 root root 14558 8月 2 04:33 a.txt
drwxr-xr-x. 3 root root 4096 7月 22 03:44 IK Analyzer 2012FF_hf1
-rw-r--r--. 1 root root 8017 7月 22 00:54 install.log
-rw-r--r--. 1 root root 3384 7月 22 00:53 install.log.syslog
-rw-r--r--. 1 root root 7586984 9月 1 2018 jvm-test01-1.0-SNAPSHOT.war
drwxr-xr-x. 8 root root 4096 7月 22 02:03 solr-4.10.3
-rw-r--r--. 1 root root 150010621 9月 11 2015 solr-4.10.3.tgz.tgz
drwxr-xr-x. 10 1000 1000 4096 2月 20 2014 zookeeper-3.4.6
-rwxrwxrwx. 1 root root 17699306 5月 28 21:14 zookeeper-3.4.6.tar.gz
五:按住shift+H,转行成打开show thread
[root@localhost ~]# printf "%x \n" 16381
3ffd
[root@localhost ~]# vi 16350.txt
2018-08-02 08:19:33
Full thread dump Java HotSpot(TM) Client VM (24.55-b03 mixed mode): "Attach Listener" daemon prio=10 tid=0xe081c800 nid=0x401a waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE "http-bio-8080-exec-3" daemon prio=10 tid=0xe0c99000 nid=0x3ffd runnable [0xe0a7a000]
java.lang.Thread.State: RUNNABLE
at com.huawei.jvm.Test.jvm01(Test.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.jav
a:137)
五:查看源代码:
定位出是while死循环引起

12_jvm性能优化专题1——top命令和jstack联合定位的更多相关文章
- SQLServer性能优化专题
SQLServer性能优化专题 01.SQLServer性能优化之----强大的文件组----分盘存储(水平分库) http://www.cnblogs.com/dunitian/p/5276431. ...
- MySQL数据库性能优化专题
摘录: 书:<MySQL性能调优与架构设计> 一个系列: (按顺序排一下) MySQL 数据库性能优化之缓存参数优化 http://isky000.com/database/mysql-p ...
- Linux 性能优化工具 perf top
1. perf perf 是一个调查 Linux 中各种性能问题的有力工具. NAME perf - Performance analysis tools for Linux SYNOPSIS per ...
- jQuery EasyUI Datagrid性能优化专题
jQuery EasyUI的Datagrid组件功能算是很强大了,不过性能确实不怎么乐观,而对于性能问题,网络上几乎也找不到相关的优化资料,所谓的牛人们可能都望而却步了.本博客以后会带着分析Data ...
- jQuery EasyUI Datagrid性能优化专题(转)
jQuery EasyUI的Datagrid组件功能算是很强大了,不过性能确实不怎么乐观,而对于性能问题,网络上几乎也找不到相关的优化资料,所谓的牛人们可能 都望而却步了.本博客以后会带着分析Dat ...
- Unity性能优化专题---腾讯牛人分享经验
这里从三个纬度来分享下内存的优化经验:代码层面.贴图层面.框架设计层面. 一.代码层面. 1.foreach. Mono下的foreach使用需谨慎.频繁调用容易触及堆上限,导致GC过早触发,出现卡顿 ...
- iOS性能优化专题
http://wereadteam.github.io/2016/05/03/WeRead-Performance/ https://www.cnblogs.com/oc-bowen/p/599999 ...
- Unity3D性能优化--- 收集整理的一堆
http://www.cnblogs.com/willbin/p/3389837.html 官方优化文档--优化图像性能http://docs.unity3d.com/Documentation/Ma ...
- 性能优化之Java(Android)代码优化
最新最准确内容建议直接访问原文:性能优化之Java(Android)代码优化 本文为Android性能优化的第三篇——Java(Android)代码优化.主要介绍Java代码中性能优化方式及网络优化, ...
随机推荐
- java Arrays.asList方法注意事项
1. 简介 Arrays.asList()方法可以将数组转化为长度固定的列表. 该方法强调了列表的长度是固定的,因此不能使用list的add和remove方法修改list长度. 2. 示例 impor ...
- 李航《统计学习方法》CH02
CH02 感知机 前言 章节目录 感知机模型 感知机学习策略 数据集的线性可分性 感知机学习策略 感知机学习算法 感知机学习算法 感知机学习算法的原始形式 算法的收敛性 感知机学习算法的对偶形式 导读 ...
- (05) SpringBoot开发RESTFull?
1. 什么是RESTFull? RESTFull 一种互联网软件架构设计的风格,但它并不是标准,它只是提出了一组客户端和服务器交互时的架构理念和设计原则,基于这种理念和原则设计的接口可以更简洁,更有层 ...
- 彻底搞懂js原型与原型链
原生的原型链 function fn(){},fn 为 Function的一个实例,原型链为 null -> Object -> Function -> fn: fn.__proto ...
- linux常用命令 print格式输出
格式化输出命令 printf '输出类型 输出格式' 输出内容 输出类型: %ns 输出字符串,n是数字指代输出的几个字符 %ni 输出整数,n是数字指代输出几个数字 %m.nf 输出浮点数.m和n是 ...
- UML之领域建模
一 定义:领域建模是对领域内的概念类或现实世界中对象的可视化表示.又称概念模型.领域对象模型.分析对象模型.它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系.业务对象模型 ...
- Forth 内部解释程序工作流程
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- 实时输出topk最频繁变动的股价
网上看到了一道关于bloomburg的面试题,follow 评论的思路 自己试着写了一个HashHeap的实现. 基本思路是维护一个大小为K的最小堆,里面是topK股价变动的公司ID(假设ID是Int ...
- jedis连接池参数minEvictableIdleTimeMillis和softMinEvictableIdleTimeMillis探索
我们通常在使用JedisPoolConfig进行连接池配置的时候,minEvictableIdleTimeMillis和softMinEvictableIdleTimeMillis这两个参数经常会不懂 ...
- windows环境下,spring boot服务使用docker打包成镜像并推送到云服务器私有仓库
最近在淘宝上学习springcloud教程,其中有几节课是讲解讲本地springboot服务打包成镜像并推送到云服务器私有仓库,但是教程里面用的事Mac环境,我的是Windows环境,而且课程里面没有 ...