Java 性能调优工具

/


Linux 命令工具

Linux平台是使用最为广泛的服务平台之一

top

这个比较通用的一个性能分析工具

top命令的输出分为2个部分,系统部分,进程信息。
第1行相当与uptime,当前登录的用户数量,系统的负载信息。
第2行进程统计信息
后面依次为CPU,内存,交换内存信息


下部分为进程的资源使用情况。针对几个不太好懂的说下

PR: 优先级
NI: nice值。负值表示优先级高,正值表示优先级低
VIRT: 进程使用虚拟内存总量
RES: 进程使用的,未被换出的物理内存大小
SHE: share 共享内存大小
S: status S(Sleep),Z(Zombie 僵尸),R(Run),T(Track)




top 命令模式下可以使用键入f可以进行列的选择可以选择查看更多信息。

h 帮助信息
q 退出
c 可以查看完整的命令和完整的命令行
k 终止一个进程
M(Shift+m) 按内存的使用大小进行排序
P(Shift+p) 按CPU的使用百分比进行排序
T(Shift+t) 按累计的时间进行排序
1 显示所有的CPU负载信息






sar

sudo apt-get install sysstat

sar命令可以周期性的采集CPU,内存,磁盘,IO 情况
-A 查看所有的报告总和
-u CPU 使用率
-d 磁盘使用报告
-b I/O情况
-r 内存使用情况
-n 网卡使用情况
-o 采集结果输入到文件






语法 sar -u 1 3

vmstat

vmstatsar类似

vmstat 1 3 每秒采样一次,采样3次

相对而言vmstat查看到信息更加结果更加的友好

iostat

iostat 提供更加详尽的I/O信息

pidstat

pidstat 是一个强大的性能监控工具,它不仅可以监控进程的性能情况还可以监控线程的性能情况。可将问题定位到线程,方便进行程序的故障排查

Windows 工具

Linux下有命令可以查看这些信息,然而你不一定使用Linux进行程序的开发,生产。掌握Windows常用的性能监控工具也是很有必要的。

任务管理器,perfmon,Process Explorer

Ctrl+Alt+Delete 这个用过Windows恐怕在熟悉过了。对于有些没有展示pid的情况可以通过 查看 → 选择列 → PID 进行添加

perfmon,Process Explorer 由于是图形化的界面就不过多的介绍了。

pslist

这个是Windows下命令行工具。可以显示进程,线程信息的详细信息

JDK 命令行工具

说完了系统提供的一些工具,终于可以说Java为开发人员提供一些快捷的性能分析工具了。

jps

相当与Linux下面的ps

通过ps -m -l 或则 jps -vVml 可以到Java进程启动类,启动参数和JVM参数信息

jstat

jinfo

jmap

jhat

jstack

jstatd

hprof

JConsole

Visual VM

MAT

MAT OQL

JProfile


转载请注明作者和出处,并添加本页链接。
原文链接: //xiaochun.zrlog.com/206.html