目录
3.2.1 JForum环境配置 (配置在tomcat中),启动Tomcat
3.2.2 编写JMeter脚本 (脚本的编写和运行,在win10端)
3.2.3 运行jmx脚本(win10中),持续访问CentOS7中的Jforum页面
3.2.4 在CentOS7中,通过top命令查看堆具体情况,找出占用CPU高的进程的PID
3.2.5 根据上面获取的PID,使用命令 jstat 查看堆内存整体使用情况
3.2.6 通过上面获取的PID, 使用命令 jmap 查看堆内存使用详情
3.2.7 使用命令生成.dump文件: jmap -dump:format=b,file=${fileName}.dump $pid
3.2.8 将.dump文件从CentOS7系统中拷贝到win10系统,可用WinSCP或rz/sz命令
1. 要求
通过JMeter脚本,压测JForum。压测过程中,进行CPU和内存诊断。
2. 处理思路
2.1 JForum环境配置 (配置在tomcat中)
(1)下载classes.7z,将解压出来的classes文件替换JForum程序中原来老的classes.
路径为: ${TOMCAT_HOME}\webapps\jforum-1.1.9\WEB-INF\classes
(2)启动Tomcat,即可开启JForum应用。
2.2 编写并运行JMeter脚本,脚本要求:访问JForum的随机板块和最新主题, 3个并发线程
2.3 通过jmap命令,生成.dump文件
2.4 在MAT中打开.dump文件,解析并定位问题
3. 示例演示 (CentOS7 环境中)
3.1 环境工具:
(1)CentOS7
(2)apache-tomcat-7.0.86 (内置Jforum)
(3)jforum-2.1.9 (已导入相关数据库sql文件,将配置在tomcat中)
(4)classes.7z (提前准备好的文件,将替换jforum目录下原始的class)
(5)JMeter (用来生成执行访问Jforum页面的脚本)
(6)mat (MemoryAnalyzer.exe,用来打开dump文件)
3.2 操作步骤
3.2.1 JForum环境配置 (配置在tomcat中),启动Tomcat
(1)准备好apache-tomcat-7.0.86,解压即可(可mv改名),放到CentOS7的/usr目录下。
(2)将jforum-2.1.9(已导入相关的sql数据库文件),拷贝到tomcat的webapps目录下。
(3)下载classes.7z (提前准备好的),将解压出来的classes目录替换原来老的classes.
路径为: ${TOMCAT_HOME}\webapps\jforum-1.1.9\WEB-INF\classes
(4)启动Tomcat。
(5)在浏览器端打开Jforum相关页面,验证网页是否可以顺利访问。
3.2.2 编写JMeter脚本 (脚本的编写和运行,在win10端)
脚本要求:访问JForum的随机板块和最新主题, 设置3个并发线程。
(1)启动JMeter。
(2)编写JMeter脚本:访问随机板块和最新主题,设置3个并发线程。
这里JMeter中访问的页面的IP,是tomcat/jforum所在的centOS服务器的IP。
3.2.3 运行jmx脚本(win10中),持续访问CentOS7中的Jforum页面
3.2.4 在CentOS7中,通过top命令查看堆具体情况,找出占用CPU高的进程的PID
这里,占用CPU高的线程,其实就是我们前面JMeter脚本持续访问Jforum页面导致的。
3.2.5 根据上面获取的PID,使用命令 jstat 查看堆内存整体使用情况
3.2.6 通过上面获取的PID, 使用命令 jmap 查看堆内存使用详情
3.2.7 使用命令生成.dump文件: jmap -dump:format=b,file=${fileName}.dump $pid
如下,生成14778.dump文件。
3.2.8 将.dump文件从CentOS7系统中拷贝到win10系统,可用WinSCP或rz/sz命令
图略
3.2.9 在MAT软件中打开.dump,分析,定位问题