为了能准确获得程序的性能信息,需要使用各种辅助工具。以下主要介绍了Linux上关于Java的系统性能分析工具,掌握这些工具,对于性能瓶颈定位、系统故障排查都有帮助。

1、top命令

 [root@localhost ~]# top
top - 10:00:05 up 4 days, 22:16, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 211 total, 1 running, 210 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8064684k total, 3277888k used, 4786796k free, 202912k buffers
Swap: 8142844k total, 0k used, 8142844k free, 2503844k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18730 root 20 0 15196 1220 840 R 0.3 0.0 0:00.06 top
1 root 20 0 19408 1576 1252 S 0.0 0.0 0:00.87 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.08 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.31 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root RT 0 0 0 0 S 0.0 0.0 0:00.03 migration/

【释义】

第一行:top - 10:00:05 up 4 days, 22:16, 1 user, load average: 0.00, 0.01, 0.05

任务队列信息:与uptime命令执行结果一样。

10:00:05 up 4 days, 22:16 1 user load average: 0.00, 0.01, 0.05
当前系统时间 系统运行时间,格式为时:分 当前登录用户数

系统负载,即任务队列的平均长度。 三个数值分别为  1分钟、5分钟、15分钟前到现在的平均值。

第二行:Tasks: 211 total, 1 running, 210 sleeping, 0 stopped, 0 zombie

进程统计信息:

211 total 1 running 210 sleeping 0 stopped 0 zombie
进程总数 正在运行的进程数 睡眠的进程数 停止的进程数

僵尸进程数

第三行:Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

CPU统计信息:

0.0%us 0.0%sy 0.0%ni 100.0%id 0.0%wa 0.0%hi 0.0%si 0.0%st
用户空间CPU占用率 内核空间CPU占用率 用户进程空间内改变过优先级的进程CPU占用率 空闲CPU占用率 等待输入输出的CPU时间百分比 硬件中断请求 软件中断请求 Steal Time

第四、五行:Mem: 8064684k total, 3277888k used, 4786796k free, 202912k buffers

Swap: 8142844k total, 0k used, 8142844k free, 2503844k cached

内存信息:

Mem 8064684k total 3277888k used 4786796k free 202912k buffers
物理内存总量 已使用的物理内存 空闲物理内存 内核缓存使用量
Swap 8142844k total 0k used 8142844k free 2503844k cached
交换区总量 使用的交换区总量 空闲交换区大小 缓存交换区大小

第六行:PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

进程信息:

PID USER PR NI VIRT RES

进程id

进程所有者的用户id 优先级 nice值。负值表示高优先级,正值表示低优先级 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR

S %CPU %MEM TIME+ COMMAND
共享内存大小,单位kb 进程状态。
 D=不可中断的睡眠状态
 R=运行
 S=睡眠
 T=跟踪/停止
 Z=僵尸进程
上次更新到现在的CPU时间占用百分比 进程使用的物理内存百分比 进程使用的CPU时间总计,单位1/100秒 命令名/命令行

还有其他的一些参数,这里没有列出,了解请查看《Java程序性能优化-让你的Java程序更快、更稳定》这本书的第300页。

另外,top命令还有一些比较使用的交互命令:

f o h k q c M P T 数字1
可以进行列的选择 可以更改列的显示顺序 显示帮组信息 终止一个进程 退出程序 切换显示命令名称和完整命令行 根据驻留内存大小进行排序 根据CPU使用百分比大小进行排序 根据时间/累积时间进行排序 显示所有CPU负载情况

注意:使用top命令可以从宏观上观察系统各个进程对CPU的占用情况以及内存使用情况

2、sar命令

3、vmstat命令

4、iostat命令

5、pidstat命令

Java性能调优工具(Linux)的更多相关文章

  1. 第六章 Java性能调优工具(待续)

    Java性能调优工具 Windows工具 JDK命令行工具 JConsole工具 Visual VM多合一工具 Visual VM对QQL的支持 MAT内存分析工具 MAT对QQL的支持 JProfi ...

  2. java性能调优工具

    windows调优工具: 任务管理器(ctrl+alt+delete或).资源管理器(任务管理器->性能进入或运行resmon.exe):JVM分析工具Jconsole,jProfile,Vis ...

  3. 《Java性能权威指南》笔记----Java性能调优工具

    OS 1.CPU 用户态时间(us):cpu执行应用代码所占时间的百分比. 内核态时间(sy):cpu执行内核代码所占时间的百分比,系统态时间与应用相关. 空闲时间(id):cpu空闲时间百分比.空闲 ...

  4. Java 性能调优工具

    CPU使用率工具: vmstat 检查应用性能时,应该首先审查CPU时间.代码优化的目的是提升而不是降低(更短时间段内的)CPU的使用率.在试图深入优化应用前,应该先弄清楚为何CPU使用率低.磁盘使用 ...

  5. 【Java/Android性能优2】Android性能调优工具TraceView介绍

    本文参考:http://www.trinea.cn/android/android-traceview/ Android自带的TraceView堪比java的性能调优工具visualvm线程视图,可以 ...

  6. 转载linux性能调优工具

    Linux 大牛,Netflix 高级性能架构师 Brendan Gregg 更新 Linux 性能调优工具,各种资源应有尽有,大量干货,强烈建议收藏.

  7. linux 性能调优工具参考 (linux performance tools)

    之前发现几张图对于linux使用者有着较强的参考意义,下面对其进行简单备忘: # linux 静态信息查看工具 # linux 性能测试工具 benchmark # linux 性能观测工具 # li ...

  8. JVM性能调优监控工具专题一:JVM自带性能调优工具(jps,jstack,jmap,jhat,jstat,hprof)

    性能分析工具jstatjmapjhatjstack 前提概要:         JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps.jsta ...

  9. jvm 性能调优工具之 jps 命令详解

    JPS名称:jps - Java Virtual Machine Process Status Tool命令用法:jps [options] [hostid] options:命令选项,用来对输出格式 ...

随机推荐

  1. WWDC2014代码和视频下载

    WWDC2014 sample code 地址 http://pan.baidu.com/s/1qWGznnY WWDC2014 videos 地址 https://github.com/liubin ...

  2. 原生javascript兼容性总结

    1.addEventListener() :方法用于向指定元素添加事件句柄.// Internet Explorer 8 及更早IE版本不支持,Opera 7.0 及 Opera 更早版本也不支持. ...

  3. 永久关闭Linux的防火墙

    重启网络服务,加载网卡配置文件systemctl restart network 清空防火墙规则iptables -F 关闭selinux防火墙vi /etc/selinux/config修改如下配置 ...

  4. 【转】python---方法解析顺序MRO(Method Resolution Order)<以及解决类中super方法>

    [转]python---方法解析顺序MRO(Method Resolution Order)<以及解决类中super方法> MRO了解: 对于支持继承的编程语言来说,其方法(属性)可能定义 ...

  5. JS-Array.prototype 中的方法的坑

    fill() 今天刷 HackerRank 的题遇到需要创建链表数组(一维数组的每一项是个链表)的题. 众所周知 JS 中的数组可以当链表用,我就用如下代码进行创建 let seqs = (new A ...

  6. rpm安装软件时提示warning: *.rpm: Header V3 RSA/SHA256 Signature, keykey ID c105b9de

    在RedHat下有时候用rpm安装软件是会出现下面则中错误 1.安装时提示:warning: *.rpm: Header V3 RSA/SHA256 Signature, keykey ID c105 ...

  7. Spring学习03——AOP Demo

    切面类StudentServiceAspect.java package com.su.advice; import org.aspectj.lang.JoinPoint; import org.as ...

  8. BIN转换成HEX格式及HEX转换成BIN的两个函数接口

    unsigned char HEX2BYTE(unsigned char hex_ch) { ') { '; } if (hex_ch >= 'a' && hex_ch < ...

  9. vue 组件传参

    路由配好了 再传个参呗 注:组件信息流转的时候只能单向1 > 父子传参传参:通过属性prop:传递数据 a.父组件传参给子组件 子组件: <ul> <li v-for=&quo ...

  10. Cors 跨域 共享

    CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing). 它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从 ...