Linux下性能监控与JVM排错

本文阅读量 Posted by Ucandoooh on 2021-10-04

Linux性能监控

pidstat [ 选项 ] [ <时间间隔> ] [ <次数> ]
pidstat 主要用于监控全部或指定进程占用系统资源的情况

  1. 全局(CPU、内存、磁盘)

    1
    top / uptime
  2. CPU

    1
    2
    3
    vmstat -n 2 3   (延迟2秒共采样3次)
    mpstat -P ALL 2
    pidstat -u 1 -p xxxx
  3. 内存

    1
    2
    free -m 
    pidstat -r 采样间隔秒数 -p xxxx
  4. 磁盘

    1
    df -h
  5. 磁盘IO

    1
    2
    iostat -xdk 2 3
    pidstat -d -p xxxx
  6. 网络IO

    1
    ifstat

JVM排错

ps 命令用于监测进程的工作情况

  1. top命令找cpu占比最高的(java)

  2. ps -ef / jps -l 进一步定位

  3. 定位到具体线程或者代码

    1
    2
    3
    4
    5
    ps -mp 进程 -o THREAD,tid,time

    -m : 显示所有线程
    -p : pid 进程使用cpu的时间
    -o : 自定义格式
  4. 线程ID转16进制(英文小写)

    1
    printf "%x\n" xxxxxx
  5. 查看错误具体位置

    1
    2
    jstack 进程ID | grep tid -A 60
    tid 为第4步骤转换的16进制 线程号