一:异常项目构建

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联合定位的更多相关文章

  1. SQLServer性能优化专题

    SQLServer性能优化专题 01.SQLServer性能优化之----强大的文件组----分盘存储(水平分库) http://www.cnblogs.com/dunitian/p/5276431. ...

  2. MySQL数据库性能优化专题

    摘录: 书:<MySQL性能调优与架构设计> 一个系列: (按顺序排一下) MySQL 数据库性能优化之缓存参数优化 http://isky000.com/database/mysql-p ...

  3. Linux 性能优化工具 perf top

    1. perf perf 是一个调查 Linux 中各种性能问题的有力工具. NAME perf - Performance analysis tools for Linux SYNOPSIS per ...

  4. jQuery EasyUI Datagrid性能优化专题

    jQuery  EasyUI的Datagrid组件功能算是很强大了,不过性能确实不怎么乐观,而对于性能问题,网络上几乎也找不到相关的优化资料,所谓的牛人们可能都望而却步了.本博客以后会带着分析Data ...

  5. jQuery EasyUI Datagrid性能优化专题(转)

    jQuery  EasyUI的Datagrid组件功能算是很强大了,不过性能确实不怎么乐观,而对于性能问题,网络上几乎也找不到相关的优化资料,所谓的牛人们可能 都望而却步了.本博客以后会带着分析Dat ...

  6. Unity性能优化专题---腾讯牛人分享经验

    这里从三个纬度来分享下内存的优化经验:代码层面.贴图层面.框架设计层面. 一.代码层面. 1.foreach. Mono下的foreach使用需谨慎.频繁调用容易触及堆上限,导致GC过早触发,出现卡顿 ...

  7. iOS性能优化专题

    http://wereadteam.github.io/2016/05/03/WeRead-Performance/ https://www.cnblogs.com/oc-bowen/p/599999 ...

  8. Unity3D性能优化--- 收集整理的一堆

    http://www.cnblogs.com/willbin/p/3389837.html 官方优化文档--优化图像性能http://docs.unity3d.com/Documentation/Ma ...

  9. 性能优化之Java(Android)代码优化

    最新最准确内容建议直接访问原文:性能优化之Java(Android)代码优化 本文为Android性能优化的第三篇——Java(Android)代码优化.主要介绍Java代码中性能优化方式及网络优化, ...

随机推荐

  1. php+redis 实现消息队列的推送【demo】。

    用redis做队列,为了缓解瞬间请求服务器的压力.实际开发当中可通过定时任务去做.当然缺点是不够实时. 1.添加一个php文件,PushQueue.php <?php $redis=new re ...

  2. hdu6395 (矩阵快速幂+分块)

    Online Judge Online Exercise Online Teaching Online Contests Exercise Author F.A.Q Hand In Hand Onli ...

  3. Form表单发送到服务器时的编码方式

    ---恢复内容开始--- 表单中的表单中enctype是设置表单的MIME编码. 所谓MIME编码,是指当服务器传送数据给客户端时,必须指定这个文件是什么类型,才能方便客户端调用相应的应用软件来打开该 ...

  4. Cannot Connect to Database Server

    好久没登数据库了,今天登陆时忽然要输入密码,然后一登结果就报了下图的错. 之前也发生过这种情况,但是重启服务就好了,这次重启后依然不行. 后来密码用root居然就登进去了,可是真不记得有改过密码 不知 ...

  5. linux常用命令 sort排序命令

    排序命令sort sort [选项] 文件名 选项 -f 忽略大小写 -n 以数值型进行排序,默认使用字符串型进行排序 -r 反向排序 -t 指定分割符,默认的分割符是制表符 -k n[,m] 安装自 ...

  6. learning mqtt protocol

    reference: http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html

  7. editorconfig使用

    //是否是顶级配置文件,设置为true的时候才会停止搜索.editorconfig文件 root = true [*] //缩进方式tab" | "space indent_sty ...

  8. AngelToken——富有价值的区块链服务平台

    关于我们 Angel Token,简称ANG,是基于ETH代币的去中心化数字交易平台. 行业现状 截至2017年12月,全球数字货币总市值已经触及6000亿美元.而2016年12月31日,这个数字才仅 ...

  9. windows端运行.sh脚本

    在复现lightheadrcnn时,碰到这么一句    bash make.sh 下载cygwin安装 在cygwin安装过程中,在选择安装包的时候找到Devel 再在Devel里面找到make,勾选 ...

  10. VIPKID 内推---开发工程师

    VIPKID 目前是K12教育领域最大的一家公司,目前已发展到6w名北美外教,服务于中国50w的小朋友,每天数十万节视频课程在线上进行. 有兴趣加入VIPKID的程序员小伙伴,请发简历到 gloryz ...