Java性能调优工具(Linux)
为了能准确获得程序的性能信息,需要使用各种辅助工具。以下主要介绍了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)的更多相关文章
- 第六章 Java性能调优工具(待续)
Java性能调优工具 Windows工具 JDK命令行工具 JConsole工具 Visual VM多合一工具 Visual VM对QQL的支持 MAT内存分析工具 MAT对QQL的支持 JProfi ...
- java性能调优工具
windows调优工具: 任务管理器(ctrl+alt+delete或).资源管理器(任务管理器->性能进入或运行resmon.exe):JVM分析工具Jconsole,jProfile,Vis ...
- 《Java性能权威指南》笔记----Java性能调优工具
OS 1.CPU 用户态时间(us):cpu执行应用代码所占时间的百分比. 内核态时间(sy):cpu执行内核代码所占时间的百分比,系统态时间与应用相关. 空闲时间(id):cpu空闲时间百分比.空闲 ...
- Java 性能调优工具
CPU使用率工具: vmstat 检查应用性能时,应该首先审查CPU时间.代码优化的目的是提升而不是降低(更短时间段内的)CPU的使用率.在试图深入优化应用前,应该先弄清楚为何CPU使用率低.磁盘使用 ...
- 【Java/Android性能优2】Android性能调优工具TraceView介绍
本文参考:http://www.trinea.cn/android/android-traceview/ Android自带的TraceView堪比java的性能调优工具visualvm线程视图,可以 ...
- 转载linux性能调优工具
Linux 大牛,Netflix 高级性能架构师 Brendan Gregg 更新 Linux 性能调优工具,各种资源应有尽有,大量干货,强烈建议收藏.
- linux 性能调优工具参考 (linux performance tools)
之前发现几张图对于linux使用者有着较强的参考意义,下面对其进行简单备忘: # linux 静态信息查看工具 # linux 性能测试工具 benchmark # linux 性能观测工具 # li ...
- JVM性能调优监控工具专题一:JVM自带性能调优工具(jps,jstack,jmap,jhat,jstat,hprof)
性能分析工具jstatjmapjhatjstack 前提概要: JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps.jsta ...
- jvm 性能调优工具之 jps 命令详解
JPS名称:jps - Java Virtual Machine Process Status Tool命令用法:jps [options] [hostid] options:命令选项,用来对输出格式 ...
随机推荐
- es之java分页操作
按照一般的查询流程来说,如果我想查询前10条数据: · 1 客户端请求发给某个节点 · 2 节点转发给个个分片,查询每个分片上的前10条 · 3 结果返回给节点,整合数据,提取前10条 · 4 返回给 ...
- MySQL主从复制 报错处理
基于GTID的主从复制: 跳过一个事务: SET @@session.gtid_next = '冲突的GTID号';BEGIN;COMMIT; SET gtid_next = 'AUTOMATIC';
- Java的参数传递是值传递?
引用传递和值传递的区别.(不先说定义的都是在耍流氓!) 按值调用(call by value) : 在参数传递过程中,形参和实参占用了两个完全不同的内存空间.形参所存储的内容是实参存储内容的一份拷贝. ...
- ScheduledThreadPoolExecutor 源码分析
ScheduledThreadPoolExecutor ScheduledThreadPoolExecutor 是能够在给定的延时之后.或周期性执行被提交任务的线程池 创建实例 /** * 线程池关闭 ...
- 术语-BPM:BPM
ylbtech-术语-BPM:BPM BPM,即业务流程管理,是一种以规范化的构造端到端的卓越业务流程为中心,以持续的提高组织业务绩效为目的的系统化方法,常见商业管理教育如EMBA.MBA等均将BPM ...
- mongotemplate 简单使用
怎么说呢,工作需要,不可能给你慢慢学的时间,一切以先解决当前jira为前提, mondb 安装不说了网上一搜就有,推荐图形管理界面 robo3t 比较直观 1.多条件查询这个比较简单 有两种方法 1C ...
- VMware 虚拟化编程(5) — VixDiskLib 虚拟磁盘库详解之一
目录 目录 前文列表 VixDiskLib 虚拟磁盘库 虚拟磁盘数据的传输方式 Transport Methods VixDiskLib_ListTransportModes 枚举支持的传输模式 Vi ...
- ROW/COW 快照技术原理解析
NOTE:ROW/COW 最新更新请跳转<再谈 COW.ROW 快照技术> 目录 目录 快照与备份的区别 Snapshot 快照技术 全量快照 增量快照 COW 写时拷贝快照技术 ROW ...
- seaborn
Seaborn是基于matplotlib的Python数据可视化库. 它提供了一个高级界面,用于绘制引人入胜且内容丰富的统计图形. 一 风格及调色盘 风格 1 sns.set() 模式格式 2 s ...
- js-用判断音乐或图片是否加载完成的方式来控制页面的现实
判断页面加载,加完完成后,内容页显示,加载条隐藏 百度搜索方法很多,大多都是: document.onreadystatechange = function() //当页面加载状态改变的时候执行fun ...