使用jdk自带的jstack来分析linux服务器上应用服务性能异常:

1.top查找出哪个进程消耗的系统资源情况

[op1@jira ~]$ top

top - 19:23:43 up 22 days,  3:43,  1 user,  load average: 3.45, 2.52, 1.19

Tasks: 134 total,   1 running, 133 sleeping,   0 stopped,   0 zombie

Cpu(s): 57.3%us,  1.9%sy,  0.0%ni, 40.6%id,  0.0%wa,  0.1%hi,  0.1%si,  0.0%st

Mem:   6105924k total,  3466656k used,  2639268k free,    47512k buffers

Swap:  4194296k total,    42496k used,  4151800k free,  1328268k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

15995 root      22   0 3437m 1.8g  40m S 355.6 30.9 221:04.19 java

21165 op1       15   0 10876 1052  768 R  0.3  0.0   0:00.34 top

1 root      15   0 10364  580  548 S  0.0  0.0   0:01.07 init

........

2.先输入top,然后再按shift+h 显示线程消耗资源

Tasks: 269 total,   1 running, 268 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.1%us,  0.1%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   6105924k total,  4425172k used,  1680752k free,   170816k buffers

Swap:  4194296k total,    42492k used,  4151804k free,  1729076k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

16215 root      18   0 3474m 2.2g  56m S 9999.0 37.8 112:00.66 java

16208 root      15   0 3474m 2.2g  56m S 1962.2 37.8   0:59.05 java

16114 root      16   0 3474m 2.2g  56m S 305.0 37.8   0:09.18 java

16209 root      15   0 3474m 2.2g  56m S 291.1 37.8   0:08.76 java

.....(这些线程都是进程15995下的)

3.jstack查找这个线程的信息

jstack [进程]|grep -A 10 [线程的16进制]

如:jstack 21125|grep -A 10 52f1(-A 10表示查找到所在行的后10行。21233用计算器转换为16进制52f1,注意转换后的十六进制字母是小写)

4.使用jstack来dump出所有线程的状态和调用堆栈并保存到本地文件dump_test

[root@jira bin]# ./jstack 15995 >> dump_test

jstack来分析linux服务器上Java应用服务性能异常的更多相关文章

  1. Shell脚本实现超简洁的在Linux服务器上安装nginx、resin、java、tomcat、redis等程序

    说明: 用平常的方式在Linux服务器上安装程序,需要下载安装包.进入安装包位置.给安装包文件赋予可执行权限.执行安装.设置环境变量--等等一系列复杂的操作.并且如果有关联也需要一个一个的挨着安装.耗 ...

  2. [转]Linux服务器上11种网络连接状态 和 TCP三次握手/四次挥手详解

    一.Linux服务器上11种网络连接状态: 图:TCP的状态机 通常情况下:一个正常的TCP连接,都会有三个阶段:1.TCP三次握手;2.数据传送;3.TCP四次挥手. 注:以下说明最好能结合”图:T ...

  3. Linux服务器上监控网络带宽的18个常用命令

    [51CTO精选译文]本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量分开来显示. 一些命令可以 ...

  4. Linux服务器上监控网络带宽的18个常用命令(转)

    本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量分开来显示. 一些命令可以显示单个进程所使用的带 ...

  5. 在linux服务器上发布web应用的完整过程

    首先你要有一个完整的web应用的小Demo,一个简单的demo就可以了,但是要涉及到数据库,笔者这里简单的模拟一个登陆的过程. 在本地测试,访问项目: 键入账号密码,点击登陆: 就是这么个简单的动作, ...

  6. linux服务器上部署项目,同时运行两个或多个tomcat

    在阿里云服务器上部署项目的时候,想使用阿里云提供的负载均衡服务并创建两个监听(如图), 但需要一台服务器提供两个端口,于是就请教前辈并查询资料,得知: 一台服务器提供两个端口,有两种方式: 1.一个t ...

  7. 如何查找Linux服务器上JDK安装路径?

    成功远程到你要部署软件的Linux服务器上.这是第一步. 查看JDK版本:java -version 查看java执行路径:which java 查看JAVA_HOME路径:echo $JAVA_HO ...

  8. Linux服务器上监控网络带宽的18个常用命令 zz

    Linux服务器上监控网络带宽的18个常用命令 本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量 ...

  9. 如何在linux服务器上使用hanlp

    关于如何在linux服务器上使用hanlp也有分享过一篇,但分享的内容与湘笑的这篇还是不同的.此处分享一下湘笑的这篇hanlp在linux服务器上使用的文章,供新手朋友学习之用. 本文主要工作是在li ...

随机推荐

  1. Android 编程 高德地图 (实现显示地图以及定位功能)

    本文参考文章: http://www.apkbus.com/blog-904057-63610.html 本人实现的 定位代码:(具体配置省略,可见参考文章) package com.example. ...

  2. 【剑指offer】整数中1出现的次数,C++实现

    原创博文,转载请注明出处!本题牛客网地址 博客文章索引地址 博客文章中代码的github地址 # 题目 # 思路 分析1在数字中出现的规律.设数字N = abcde ,其中abcde分别为十进制中各位 ...

  3. z=sin(xy)

    看了<千年难题>,第一章是黎曼猜想.里面有两个我很感兴趣的问题:一是关于函数的图形表示方式,比如z=sin(xy)的图像,二是大数的因子分解方式. 专业的数学软件应该能够很容易的生成各种函 ...

  4. BZOJ4818 LOJ2002 SDOI2017 序列计数 【矩阵快速幂优化DP】*

    BZOJ4818 LOJ2002 SDOI2017 序列计数 Description Alice想要得到一个长度为n的序列,序列中的数都是不超过m的正整数,而且这n个数的和是p的倍数. Alice还希 ...

  5. 自动化测试时Ios设备无法调出键盘问题

  6. hadoop2.x常用端口、定义方法及默认端口、hadoop1.X端口对比

    问题导读: 1.DataNode的http服务的端口.ipc服务的端口分别是哪个? 2.NameNode的http服务的端口.ipc服务的端口分别是哪个? 3.journalnode的http服务的端 ...

  7. 常用的SQL语句大全

    一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备 ...

  8. php中strstr、strchr、strrchr、substr、stristr

    一.strstr 和 strcchr的区别 strstr   显示第一次找到,要查找的字符串,以及后面的字符串. strrchr 显示最后一次找到,要查找的字符串,以及后面的字符串. 二.strstr ...

  9. vbs命令1

    MsgBox "兄弟呀,你最近是否失眠",vbinformation Randomize() Dim a a=Int(rnd*2) Select Case a Case 0 Msg ...

  10. Python 3 利用 Dlib 实现人脸检测和剪切

    0. 引言 利用 Python 开发,借助 Dlib 库进行人脸检测 / face detection 和剪切:   1. crop_faces_show.py : 将检测到的人脸剪切下来,依次排序平 ...