文档详情

Java系统性能测试监控及分析.docx

发布:2025-05-24约2.07千字共6页下载文档
文本预览下载声明

Java系统性能测试监控及分析

总述:附件中包含《LoadRunner11-中文教程》,各个模块都有详细的讲解。在使用LoadRunner对系统进行压力测试过程中,我们主要对效劳器的CPU、内存、JVM〔内存、线程〕、IO、网络、数据库进行监控,以进行性能瓶颈分析。

附件包中附带了相应监控工具。

CPU监控分析

监控工具

Linux系统自带top命令:$top

图中是top命令的结果参数,Cpu(s):21.6%us表示当前系统cpu总体使用率,蓝色方框标注的%CPU表示当前进程消耗的CPU量,100%表示消耗1CPU,385.6%表示消耗接近4CPU。

nmon监控

如果需要出具具体CPU使用图表,使用nmon工具,参照工具包中的详细使用说明。

分析及解决

如果CPU使用率不到90%,而且系统TPS已到达最高,说明CPU不是性能瓶颈。如果CPU总体使用率接近100%,考虑是否增加CPU提高系统性能。

内存监控分析

监控工具

Linux系统自带top命令:$top

图中可看到,Mem:行中,总共有16GB内存,使用了接近16GB内存,只有一百多KB是剩余内存,这是Linux自动管理的内存机制问题,Linux会尽量使用cache,将内存划分到给缓存。只需关注蓝色方框中的单进程java占MEM的比率为14.5%,算法为〔2GBJVM划分内存/16GB总内存大小〕,而事实上当前jvm的-xms参数也是设置的2GB。

使用JDK自带的jvisualvm.exe工具监控JVM内存使用情况

需要在效劳器中添加jvm参数

-Djavax.management.builder.initial=

-Dcom.su

-Dcom.sun.management.jmxremote.port=40124

-Dcom.sun.management.jmxremote.ssl=false

-Dcom.sun.management.jmxremote.authenticate=false

启动JMX监控。

然后客户端通过jvisualvm添加JMX链接

nmon监控

如果需要出具具体CPU使用图表,使用nmon工具,参照工具包中的详细使用说明。

分析及解决

调整jvm参数,如果jvm内存需求远大于物理机内存,提高硬件水平。目前我们系统2GB内存根本够用。

JVM监控分析

参考2.1.2翻开jvisualvm监控JVM内存使用情况

也可以切换到Threads监控JVM内启动的线程及其状态

检查线程锁〔线程条大量出现如右下角红色标记图示的颜色〕,如果发现存在线程锁,可点击ThreadDump分析具体是哪段儿应用程序引起的。

IO监控分析

监控

当在效劳器大量进行读写操作,socket创立链接时,可能会出现IO消耗的瓶颈,可用nmon工具进行监控。

解决方法

优化程序、更换IO性能更好的磁盘

网络监控分析

监控工具

LoadRunner吞吐量视图

nmon监控

如果需要出具具体CPU使用图表,使用nmon工具,参照工具包中的详细使用说明。

测试及分析

测试

由于监控的只是实际应用发生的网络吞吐量,并不确定是否网络环境是否限制了多大的吞吐量,需测试客户端与效劳器之间的通讯速度,附件包附带了iperf网络测试工具,解压执行就可以。./iperf--help可查看参数用法

分析

需要注意的是,iperf测试的宽带速度单位为Mbits/s,而吞吐量监控的单位是MByte/s,需Mbits/s÷8换算成MB/s才能比拟。

如果iperf测试结果与实际吞吐量相近,说明网络存在瓶颈。

解决方法

改换宽带环境

更换性能更高的网卡

ORACLE数据库监控分析

监控

nmon监控

使用nmon监控数据库资源使用情况〔根本上不会是硬件配置不够〕

AWR报告生成

Oracle10g以上增加了AutomaticWorkloadRepository-自动负载信息库,可用sysdba登陆sqlplus,执行

altersystemflushshared_pool;--清理缓存

execdbms_workload_repository.create_snapshot;--AWR快照收集

execdbms_workload_repository.create_snapshot;--AWR快照收集,与上一次收集间隔3分钟左右

@?/rdbms/admin/awrrpt.sql--通过两次收集的AWR报告信息,生成AWR报告

分析

关于AWR报告的分析目前还很根底,有兴趣的同事可网上查找分析资料。也可将AWR交给熟悉ORACLE产品的专家分析。

优化方法

删除冗余的sql索引

oracle维护索引本钱太高

将程序中的硬解析sql改成软解析〔带?+参数〕方式操

显示全部
相似文档