zoukankan      html  css  js  c++  java
  • 常用的监控和内存诊断工具

    原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11462230.html

    Linux命令行工具之top命令

    top命令是在Linux下最常用的命令之一,它可以实时显示正在执行进程的CPU使用率、内存使用率以及系统负载等信息。其中上半部分显示的是系统的统计信息,下半部分显示的是进程的使用率统计信息。

    除了简单的top之外,还可以通过top -Hp pid查看具体线程使用系统资源情况

    Linux命令行工具之vmstat命令

    vmstat是一款指定采样周期和次数的功能性监测工具,它不仅可以统计内存的使用情况,还可以观测到CPU的使用率、swap的使用情况。但vmstat一般很少用来查看内存的使用情况,而是经常被用来观察进程的上下文切换。

    Linux命令行工具之pidstat命令

    之前的top和vmstat两个命令都是监测进程的内存、CPU以及I/O使用情况,而pidstat命令则是深入到线程级别。

    JDK工具之jstat命令

    jstat可以监测Java应用程序的实时运行情况,包括堆内存信息以及垃圾回收信息。

    1 sudo -u haha jstat -gcutil 41565 2000

    JDK工具之jstack命令

    这个工具是一种线程堆栈分析工具,最常用的功能就是使用 jstack pid 命令查看线程的堆栈信息,通常会结合top -Hp pid 或 pidstat -p pid -t一起查看具体线程的状态,也经常用来排查一些死锁的异常。每个线程堆栈的信息中,都可以查看到线程ID、线程的状态(wait、sleep、running 等状态)以及是否持有锁等。

    1 ps -ef | grep app
    2 
    3 top -H -p 41565
    4 
    5 printf "%x
    " 41575
    6 
    7 sudo -u haha jstack 41565 > ~/jstack_0403.txt

    JDK工具之jmap命令

    使用jmap查看堆内存初始化配置信息以及堆内存的使用情况。那么除了这个功能,其实还可以使用jmap输出堆内存中的对象信息,包括产生了哪些对象,对象数量多少等。

    可以用jmap来查看堆内存初始化配置信息以及堆内存的使用情况

    可以使用jmap -histo[:live] pid查看堆内存中的对象数目、大小统计直方图,如果带上live则只统计活对象

    1 sudo -u haha jmap -histo:live 41565 > ~/jmap.txt

    Reference

    https://time.geekbang.org/column/article/108582

  • 相关阅读:
    jvm误区--动态对象年龄判定
    jmeter入门实例
    七牛云的文件上传和下载
    layer.prompt添加多个输入框
    zero copy图解
    java枚举的线程安全及序列化
    java单例模式
    ubuntu16.04 python3.5 opencv的安装与卸载(转载)
    独家git clone 加速方法
    apt get update无法正常使用解决方案(转载)
  • 原文地址:https://www.cnblogs.com/agilestyle/p/11462230.html
Copyright © 2011-2022 走看看