性能监控工具

系统性能监控

Linux系统命令
  • 可以确定系统运行的整体状态,基本定位问题所在。
    1、Linux中的uptime命令,输出下面信息
    04:03:58 up 10 days, 13:19, 1 user, load average: 0.54, 0.40, 0.20

  • 当前时间 04:03:58

  • 系统已运行的时间 10 days,

  • 13:19 当前在线用户 1 user (每一个终端算一个连接)

  • 平均负载:0.54, 0.40,0.20,最近1分钟、5分钟、15分钟系统的负载(运行队列中平均进程数)

2、Linux中top命令,用来监控Linux系统的系统状况,比如CPU、内存的使用。

下面图表可以知道那个程序占CPU最多。
在这里插入图片描述
3、Linux命令vmstat,可以统计系的CPU、内存,swap,io等情况。
在这里插入图片描述
4、Linux中命令pidstat,可以非常细致的观察到每一个进程。需要进行安装:sudo apt-get install sysstat,可以监控CPU、监控IO、监控内存。
在这里插入图片描述
在这里插入图片描述

windows系统命令

1、任务管理器
在这里插入图片描述
2、命令:perfmon打开windos自带的性能监控工具。
在这里插入图片描述
在这里插入图片描述
2、Process Explorer进行浏览器工具(需要安装),不是windows自带的。
在这里插入图片描述
在这里插入图片描述
3、pslist,命令行工具(需要安装),可用于自动化数据收集,显示java程序的运行情况。
在这里插入图片描述

Java自带的工具

  • 查看Java程序运行的细节,进一步定位问题。
    在这里插入图片描述
    1、命令:jps,列出java进程,类似于ps命令。
  • 参数-q可以指定jps只输出进程ID,不输出类的短名称
  • 参数-m 可以用户输出传递给java进程(主函数)的参数
  • 参数-l 可以用于输出主函数的完整路径
  • 参数-v 可以显示传递给JVM的参数。
    示例:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    2、命令:jinfo,可以用来查看正在运行的java应用程序的扩展参数,设置支持在运行是,修改部分参数。
  • -flag : 打印指定JVM的参数值
  • -flag [+|-] :设置指定JVM参数布尔值
  • -flag =:设置指定JVM参数的值
    示例:
    1)显示了新生代对象晋升到老年代对象的最大年龄
    在这里插入图片描述
    2)显示是否打印GC详情信息,-号为不打印GC信息。
    在这里插入图片描述
    3)运行时修改参数,控制是否输出GC日志,修改为打印GC。
    在这里插入图片描述

3、命令:jmap,生成java应用程序的堆快照和对象的统计信息。

  • jmap -histo 2972 >c:\s.txt,在目录下,生成文档信息。
    -在这里插入图片描述
  • dump堆:jmap -dump:format=b,file=c:\heap.hprof 2972

在这里插入图片描述

在这里插入图片描述
4、命令:jstack,打印线程dump信息。

  • -l ,打印锁信息。
  • -m 打印java和native的帧信息。
  • -F 强制dump,当jstack没有响应时使用
    5、JConsole:java自带的图形化监控工具,安装的JDK的bin目录中
    在这里插入图片描述
    在这里插入图片描述
    可以单独查看堆内存和非堆内存使用情况,右上角还有个执行GC按钮,进行GC操作。
    在这里插入图片描述
    6、Visual VM是一个功能强大的多合一故障诊断和性能监控的可视化工具,位于JDK的bin目录下。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在抽样器中可以查找最占CPU的方法。在这里插入图片描述
    分析堆DUmp
    在这里插入图片描述

实战分析

**案例一:**运行一程序ThreadBlockMain,期望输出Hello,World ,结果在程序运行后,程序卡死,没有预期输出。
在这里插入图片描述
打印出栈信息,可以看到问题出在java程序中的17行。
**案例二:**Java程序HoldCPUMain运行后,发现占用CPU很高,希望能找到原因。
1)通过jps,查看进行的id。
在这里插入图片描述
2)top命令,查看进行占用CPU情况。
在这里插入图片描述
3)pitstat命令查看进程下的线程情况,将线程id,转为十六进制,在栈信息中线程ID已十六进制表示。
在这里插入图片描述
4)打印栈信息,找到java问题。
在这里插入图片描述
**案例三:**死锁
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java性能监控工具是用于监测和分析Java应用程序的性能指标和行为的工具。它可以帮助开发者识别和解决性能瓶颈,提高应用程序的性能和响应速度。 Java性能监控工具通常通过以下几种方式来实现对应用程序的监控: 1. 堆分析:通过分析Java堆内存的使用情况,可以了解对象的创建、销毁、内存泄漏等情况,帮助开发者优化内存的使用和释放,提高应用程序的性能。 2. 线程分析:通过监控线程的运行状态、阻塞情况、锁竞争等信息,可以帮助开发者发现并解决潜在的并发问题,提高应用程序的并发性能。 3. 方法调用分析:通过记录和分析方法的调用次数、执行时间等信息,可以帮助开发者发现性能较差的方法,并进行优化,提高应用程序的执行效率。 4. GC分析:通过监控垃圾回收器的运行情况,可以了解垃圾回收的频率、时间消耗等信息,帮助开发者优化内存管理,提高应用程序的性能。 5. 代码追踪:通过在应用程序中插入监控代码,可以实时地追踪代码的执行路径和时间消耗,帮助开发者找出瓶颈代码,并进行针对性的优化。 常见的Java性能监控工具包括JProfiler、VisualVM、Java Mission Control等。这些工具提供了直观的界面和丰富的功能,可以帮助开发者全面了解应用程序的性能状况,并进行相应的优化。使用这些工具,开发者可以更好地监控和调优Java应用程序,提高应用程序的性能和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值