为了能准确获得程序的性能信息,需要使用各种辅助工具。以下主要介绍了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. es之java分页操作

    按照一般的查询流程来说,如果我想查询前10条数据: · 1 客户端请求发给某个节点 · 2 节点转发给个个分片,查询每个分片上的前10条 · 3 结果返回给节点,整合数据,提取前10条 · 4 返回给 ...

  2. MySQL主从复制 报错处理

    基于GTID的主从复制: 跳过一个事务: SET @@session.gtid_next = '冲突的GTID号';BEGIN;COMMIT; SET gtid_next = 'AUTOMATIC';

  3. Java的参数传递是值传递?

    引用传递和值传递的区别.(不先说定义的都是在耍流氓!) 按值调用(call by value) : 在参数传递过程中,形参和实参占用了两个完全不同的内存空间.形参所存储的内容是实参存储内容的一份拷贝. ...

  4. ScheduledThreadPoolExecutor 源码分析

    ScheduledThreadPoolExecutor ScheduledThreadPoolExecutor 是能够在给定的延时之后.或周期性执行被提交任务的线程池 创建实例 /** * 线程池关闭 ...

  5. 术语-BPM:BPM

    ylbtech-术语-BPM:BPM BPM,即业务流程管理,是一种以规范化的构造端到端的卓越业务流程为中心,以持续的提高组织业务绩效为目的的系统化方法,常见商业管理教育如EMBA.MBA等均将BPM ...

  6. mongotemplate 简单使用

    怎么说呢,工作需要,不可能给你慢慢学的时间,一切以先解决当前jira为前提, mondb 安装不说了网上一搜就有,推荐图形管理界面 robo3t 比较直观 1.多条件查询这个比较简单 有两种方法 1C ...

  7. VMware 虚拟化编程(5) — VixDiskLib 虚拟磁盘库详解之一

    目录 目录 前文列表 VixDiskLib 虚拟磁盘库 虚拟磁盘数据的传输方式 Transport Methods VixDiskLib_ListTransportModes 枚举支持的传输模式 Vi ...

  8. ROW/COW 快照技术原理解析

    NOTE:ROW/COW 最新更新请跳转<再谈 COW.ROW 快照技术> 目录 目录 快照与备份的区别 Snapshot 快照技术 全量快照 增量快照 COW 写时拷贝快照技术 ROW ...

  9. seaborn

    Seaborn是基于matplotlib的Python数据可视化库. 它提供了一个高级界面,用于绘制引人入胜且内容丰富的统计图形. 一  风格及调色盘 风格 1 sns.set()  模式格式 2 s ...

  10. js-用判断音乐或图片是否加载完成的方式来控制页面的现实

    判断页面加载,加完完成后,内容页显示,加载条隐藏 百度搜索方法很多,大多都是: document.onreadystatechange = function() //当页面加载状态改变的时候执行fun ...