常见性能分析指令

常见Linux指令

  • top 指令,最常见,由于查看内存、CPU的使用情况,top -Hp pid,pid为进程号,用于查看该进程中线程的系统资源使用情况。
  • jstack 用于查看堆栈信息,jstack pid查看该进程的所有堆栈信息,此信息包含了所有线程的堆栈信息,不好查看,这里可以在代码中设置一下线程名,方便查找,更精确的是通过top -Hp pid查询出线程后,可以根据该线程转换为16进制数后定位到该线程详细的堆栈信息,printf '%x\n' tid ,tid为线程id,得到16进制数后,可以通过jstack pid | grep -C 10 XXX,此处XXX为刚刚查出来的线程16数,可以看到该线程具体的堆栈信息。
  • jstat用来查看JVM相关信息,jstat -gc pid 1000 查看gc的相关信息,1000ms刷新一次
jstat语法结构:
Usage: jstat -help|-options
       jstat -
  • vmstat 一个指定周期和采集次数的虚拟内存检测工具,可以统计内存,CPU,swap的使用情况,它还有一个重要的常用功能,用来观察进程的上下文切换。vmstat 1 10表示每1秒打印一次,打印10次.
r: 运行队列中进程数量(当数量大于CPU核数表示有阻塞的线程)
b: 等待IO的进程数量
swpd: 使用虚拟内存大小
free: 空闲物理内存大小
buff: 用作缓冲的内存大小(内存和硬盘的缓冲区)
cache: 用作缓存的内存大小(CPU和内存之间的缓冲区)
si: 每秒从交换区写到内存的大小,由磁盘调入内存
so: 每秒写入交换区的内存大小,由内存调入磁盘
bi: 每秒读取的块数
bo: 每秒写入的块数
in: 每秒中断数,包括时钟中断。
cs: 每秒上下文切换数。
us: 用户进程执行时间百分比(user time)
sy: 内核系统进程执行时间百分比(system time)
wa: IO等待时间百分比
id: 空闲时间百分比

参考:https://github.com/Snailclimb/JavaGuide/blob/master/docs/java/%E6%89%8B%E6%8A%8A%E6%89%8B%E6%95%99%E4%BD%A0%E5%AE%9A%E4%BD%8D%E5%B8%B8%E8%A7%81Java%E6%80%A7%E8%83%BD%E9%97%AE%E9%A2%98.md

你可能感兴趣的:(常见性能分析指令)