jStat

阿里内部员工,排查Java问题常用的工具单

青春壹個敷衍的年華 提交于 2020-07-28 01:51:32
这是一篇来源于阿里内部技术论坛的文章,原文在阿里内部获得一致好评。作者已经把这篇文章开放到云栖社区中供外网访问。Hollis对文章内容做了部分删减,主要删减掉了其中只有阿里内部才能使用的工具的介绍,并删减掉部分只有通过阿里内网才能访问到的链接。 前言 平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在此书写下来,一是作为笔记,可以让自己后续忘记了可快速翻阅,二是分享,希望看到此文的同学们可以拿出自己日常觉得帮助很大的工具,大家一起进步。 闲话不多说,开搞。 Linux命令类 tail 最常用的tail -f tail -300f shopbase.log #倒数300行并进入实时监听文件写入模式 grep grep forest f.txt #文件查找 grep forest f.txt cpf.txt #多文件查找 grep 'log' /home/admin -r -n #目录下查找所有符合关键字的文件 cat f.txt | grep -i shopbase grep 'shopbase' /home/admin -r -n --include *.{vm,java} #指定文件后缀 grep 'shopbase' /home/admin -r -n --exclude *.{vm,java} #反匹配 seq 10 | grep 5

面试官:说说你了解哪些JDK自带的命令行工具

断了今生、忘了曾经 提交于 2020-07-27 13:59:01
不看不知道,一看吓一跳,原来JDK自带了这么多工具,本文主要介绍一下工作中常用的JDK工具以及使用方法和使用场景。 jps:虚拟机进程状况工具 是工作中排查问题使用率最高的命令之一,用于列出正在运行的虚拟机进程,并显示虚拟机执行主类名称以及这些进程的本地虚拟机唯一ID。 语法是 jps [options] [hostid] ,常用的选项如下: 选项 作用 -l 输出主类的全名,如果进程执行的是jar包,输出jar路径 -v 输出虚拟机进程启动时JVM参数 -q 只输出pid,省略主类的名称 -m 输出虚拟机进程启动时传递给主类main()函数的参数 jps可以通过RMI协议查询开启了RMI服务的远程虚拟机进程状态,hostid为RMI注册表中注册的主机名。 jstat:虚拟机统计信息监视工具 jstat是用于监视虚拟机各种运行状态信息的命令行工具。他可以显示本地或者远程虚拟机进程中的类加载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形界面,只提供了纯文本控制台环境的服务器上,它将是运行期间定位虚拟机性能问题的首选工具。 语法为 jstat [option vmid [interval [s|ms] [count]] ] ,常用的选项如下: jinfo:Java配置信息工具 用来实时查看和调整虚拟机各项参数。 语法为 jinfo [option] pid ,常用选项如下:

JConsole可视化工具

心不动则不痛 提交于 2020-07-24 21:55:44
JConsole 可视化工具介绍 一、 JConsole介绍 1.1 JConsole描述 Jconsole (Java Monitoring and Management Console),一种基于JMX的可视化监视、管理工具。 1.2 启动JConsole 点击JDK/bin 目录下面的jconsole.exe 即可启动 然后会自动自动搜索本机运行的所有虚拟机进程。 选择其中一个进程可开始进行监控 1.3JConsole基本介绍 JConsole 基本包括以下基本功能:概述、内存、线程、类、VM概要、MBean 运行下面的程序、然后使用JConsole进行监控;注意设置虚拟机参数 import java.util.ArrayList; import java.util.List; /** * 设置虚拟机参数: * -Xms100M -Xms100m -XX:+UseSerialGC -XX:+PrintGCDetails */ public class JConsoleTool { static class OOMObject { public byte[] placeholder = new byte[64 * 1024]; } public static void fillHeap(int num) throws InterruptedException { Thread

常见Java性能问题一招帮你解决,80%的人都不知道

纵饮孤独 提交于 2020-05-07 13:12:01
概述 性能优化一向是后端服务优化的重点,但是线上性能故障问题不是经常出现,或者受限于业务产品,根本就没办法出现性能问题,包括笔者自己遇到的性能问题也不多,所以为了提前储备知识,当出现问题的时候不会手忙脚乱,我们本篇文章来模拟下常见的几个Java性能故障,来学习怎么去分析和定位。 另外要注意:光理论是不够的,Java架构项目经验永远是核心,如果你没有最新JAVA架构实战教程及大厂30k+面试宝典,可以去小编的Java架构学习.裙 :七吧伞吧零而衣零伞 (数字的谐音)转换下可以找到了,里面很多新JAVA架构项目教程,还可以跟老司机交流讨教! 预备知识 既然是定位问题,肯定是需要借助工具,我们先了解下需要哪些工具可以帮忙定位问题。 top命令 top 命令使我们最常用的Linux命令之一,它可以实时的显示当前正在执行的进程的CPU使用率,内存使用率等系统信息。 top -Hp pid 可以查看线程的系统资源使用情况。 vmstat命令 vmstat是一个指定周期和采集次数的虚拟内存检测工具,可以统计内存,CPU,swap的使用情况,它还有一个重要的常用功能,用来观察进程的上下文切换。字段说明如下: r: 运行队列中进程数量(当数量大于CPU核数表示有阻塞的线程) b: 等待IO的进程数量 swpd: 使用虚拟内存大小 free: 空闲物理内存大小 buff: 用作缓冲的内存大小

服务器负载过高问题分析-不是cpu高负载也不是IO负载如何处理(阿里 几乎是必考题)

夙愿已清 提交于 2020-05-02 03:11:15
关于top命令 经常问load average 参考: load average 定义(网易面试) jvm dump的使用 参考: Jvm dump jstack jmap jstat 介绍与使用(内存与线程) 以及使用jstack定位问题 查看端口: 如何在Windows,Linux下查看JAVA端口占用情况(阿里) 问题现象: 1,top命令查询服务器负载达到2.0-5之间,tomcat的cpu使用率达到104% load average: linux系统中的Load对当前CPU工作量的度量。简单的说是 进程队列 的长度。 Load Average 就是一段时间 (1 分钟、5分钟、15分钟) 内平均 Load 。 问题分析过程: 1),磁盘使用率未超出正常范围 df -l 2),内存使用率未超出正常范围还有空闲 free free -m 查看linux系统内存使用量和交换区使用量,如图所示。 3),服务器流量未现明显峰值 4)jvm内存状态未现异常非GC原因 至于具体的jstat jmap jstack 的使用情况 参考: Jvm dump jstack jmap jstat 介绍与使用(内存与线程) 以及使用jstack定位问题 综合初步预估是tomcat有线程一直在运行占用cpu资源 问题引出:如何确定tomcat的100%的cpu使用率到底问题在哪? 问题定位方案:

使用jstat观察jvm状态

﹥>﹥吖頭↗ 提交于 2020-04-29 17:39:32
jstat -gc pid time 如:每3秒打印一次jvm使用情况 [root@i-5uvhvror bin]# ./jstat -gc 17474 3s S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT 2560.0 2560.0 1712.5 0.0 2790912.0 1661843.1 5592576.0 230780.6 136704.0 129435.4 15872.0 14462.4 412 5.087 0 0.000 5.087 2560.0 2560.0 1712.5 0.0 2790912.0 1669230.1 5592576.0 230780.6 136704.0 129435.4 15872.0 14462.4 412 5.087 0 0.000 5.087 2560.0 2560.0 1712.5 0.0 2790912.0 1689227.3 5592576.0 230780.6 136704.0 129435.4 15872.0 14462.4 412 5.087 0 0.000 5.087 各列的解释: S0C: 年轻代中第一个存活区的总大小(KB) S1C: 年轻代中第二个存活区的总大小(KB) S0U: 年轻代中第一个存活区目前已使用大小(KB) S1U:

测者的性能测试手册:JVM的监控利器

喜欢而已 提交于 2020-04-28 11:17:50
测者的性能测试手册:JVM的监控利器 每次聊起性能测试,最后的终结话题就是怎么做优化。其实在Java的复杂项目中都会有内存不足问题、内存泄露问题、线程死锁问题、CPU问题。这些问题工程测试或者是小压力的情况下有可能并不明显,很容易被忽视。但是到了生产环境,问题就暴露了,各种非功能bug会让你头疼不已。 今天,测者就把自己针对JVM监控、分析常用的工具发给总结一下,也许你就能找打一个你喜欢的。 jstat jstat是JVM统计监测工具,主要用来监视java虚拟机的各种运行状态的工具。通过他可以监控虚拟机中class的装载、内存状况、GC、以及jit编译等很多运行时数据,是一个定位运行时过程的jvm性能重要工具。 jstat [ generalOption | outputOptions vmid [ interval [ s | ms ] [ count ]] ] generalOption - 单个的常用的命令行选项,如- help , - options , 或 - version 。 outputOptions -一个或多个输出选项,由单个的 statOption 选项组成,可以和- t , - h , and - J 等选项配合使用。 参数 作用 备注 class 用于查看类加载情况的统计 jstat -class pid:显示加载class的数量,及所占空间等信息。

【转】【JVM】jstat命令详解---JVM的统计监测工具

落爺英雄遲暮 提交于 2020-04-28 09:21:29
1.jstat命令简介   jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。   命令的格式如下:     jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数] 2.使用详情列表 【以下的统计空间单位,未标明的 都是KB】 1>类加载统计 命令: jstat -class 19570 结果: 解析: Loaded:加载class的数量 Bytes:所占用空间大小 Unloaded:未加载数量 Bytes:未加载占用空间 Time:时间 2>编译统计 命令: jstat -compiler 19570 结果: 解析: Compiled:编译数量。 Failed:失败数量 Invalid:不可用数量 Time:时间 FailedType:失败类型 FailedMethod:失败的方法 3>垃圾回收统计 命令: jstat -gc 19570 结果: 解析: S0C:第一个幸存区的大小 S1C:第二个幸存区的大小 S0U:第一个幸存区的使用大小 S1U:第二个幸存区的使用大小 EC:伊甸园区的大小 EU:伊甸园区的使用大小 OC:老年代大小 OU:老年代使用大小 MC:方法区大小 MU:方法区使用大小 CCSC:压缩类空间大小 CCSU:压缩类空间使用大小 YGC:年轻代垃圾回收次数 YGCT:年轻代垃圾回收消耗时间 FGC:老年代垃圾回收次数

java虚拟机(八)--java性能监控与故障处理工具

两盒软妹~` 提交于 2020-04-25 13:29:46
问题定位:   除了个人经验,知识,工具也是很重要的,通过数据进行问题分析,包括:运行日志、异常堆栈、GC日志、线程快照(threaddump/javacore文件 )、堆转储快照 (heapdump/hprof文件)等。加上虚拟机监控和分析工具进行分析数据、定位解决问题 jdk所有命令参数详解: https://docs.oracle.com/javase/8/docs/technotes/tools/unix/ jdk命令行工具   在java_home的bin目录有很多重要的工具,除了常用的java.exe、javac.exe、javap.exe外,还有命令行工具和可视化工具,而且体积相对较小 jps:虚拟机进程状况工具,和Linux中ps功能相似 格式:jps [ options ] [ hostid ] 参数: - q 不输出类名、Jar名和传入main方法的参数 - m 输出传入main方法的参数 - l 输出main类或Jar的全限名 -v 输出传入JVM的参数 不指定hostid就默认为当前主机或服务器 jstat:虚拟机统计信息监控工具 jstat命令格式: jstat [ option vmid [ interval [ s | ms ] [ count ] ] ] vmid: 对于本地虚拟机进程而言,就是虚拟机ID,在Linux上面就是进程ID

《深入理解 Java 虚拟机》读书笔记:虚拟机性能监控与故障处理工具

点点圈 提交于 2020-04-25 13:29:28
正文 一、JDK 的命令行工具 JDK 的 bin 目录下提供了一些用于监视虚拟机和故障处理的命令行工具。 名称 主要作用 jps JVM Process Status Tool,显示正在运行的虚拟机进程 jstat JVM Statistics Monitoring Tool,收集虚拟机各方面的运行数据 jinfo Configuration Info for Java,显示虚拟机配置信息 jmap Memory Map for Java,生成虚拟机的内存转储快照(heapdump 文件) jhat JVM Heap Dump Browser,用于分析 heapdump 文件,它会建立一个 HTTP/HTML 服务器,可在浏览器上查看分析结果 jstack Stack Trace for Java,显示虚拟机的快照进程 1、jps:虚拟机进程状况工具 jps 作用: 列出正在运行的虚拟机进程,并显示虚拟机进程执行主类(main() 函数所在的类)名称以及进程的本地虚拟机唯一 ID(Local Virtual Machine Identifier,LVMID)。对于本地虚拟机进程,LVMID 与操作系统进程 ID(PID)一致。 jps 命令格式: jps [options] [hostid] options:选项,可多个。 hostid:jps 可以通过 RMI 协议查询开启了