尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

JMeter压测jforum:MySQL与Tomcat环境搭建实战

JMeter压测jforum:MySQL与Tomcat环境搭建实战 先说明一下这篇是 jforum 性能测试系列的第二篇——环境搭建全攻略。上一篇我们定下用 JMeter 压 jforum 的方案那这次的任务就非常明确把 MySQL 从全新状态装好、把 jforum 部署到 Tomcat 里、再把数据库初始化和联调跑通给后面 JMeter 压测脚本提供一个稳定、可复现、方便反复重置数据的测试环境。如果你现在准备照着资料做性能测试练习建议把这篇当成一套可以“抄作业”的步骤来看。整条链路里面最大的坑通常不是 JMeter 脚本本身而是环境没搭好——数据连不上、版本不对、字符集乱、线程一开连接池就炸这些我都踩过。下面从整体规划讲起每一步都会把“为什么这么做”讲清楚对你后续压测会省很多事。1. 整体思路把环境当成被测系统的一部分来设计1.1 为什么选用 jforum 当 JMeter 压测靶场做性能测试最怕的一件事就是压了一个没有业务逻辑的页面最后得出的数据除了网络层面的吞吐参考什么都说明不了。jforum 这种老牌开源论坛项目最大的优势是它有完整的业务链路用户登录、板块浏览、发帖、回帖、搜索、后台管理每一步都会涉及 Session、Cookie、数据库读写是 JMeter 从入门到进阶特别合适的对象。同时它又是 Java 系项目部署套路清晰war 包丢进 Tomcat 就能跑数据库初始化脚本也是现成的比起自己临时写一个 Web 应用做压测省太多事。论坛类应用还有一个天然好处就是数据模型典型用户表、板块表、主题表、帖子表、私信表等后面如果你想验证“数据量变大之后查询性能怎么变化”只要往这些基础表里灌数据就行想构造压力场景很容易。1.2 整套环境的版本搭配与安装顺序之前有朋友问我为什么不用 Docker 一把梭把 MySQL 和 Tomcat 全容器化我的回答是如果你非常熟悉 Docker那当然可以我在生产环境也这么干。但如果是第一次做 JMeter 全链路压测练习我建议先手动装一遍因为手动安装能让你清楚每一层之间的关系后面容器里出问题你也知道大概在哪一层。本教程先以手动安装为主。我最终定的版本组合如下组件推荐版本原因操作系统Windows 10/11 64位本机图形界面下方便做 JMeter 调试后续正式压测可换 LinuxJDKJDK 8u202jforum 是较老项目JDK 8 兼容性最稳Tomcat8.5.x 或 9.0.x不要用 Tomcat 10包名从 javax 到 jakarta 的迁移会让老项目直接挂MySQL8.0.x大部分公司现在都用 8.x认证插件相关坑我在后面专门讲jforum2.3.4 左右自带建库建表和示例数据脚本基础功能完整安装顺序我建议严格按“MySQL - JDK - Tomcat - jforum”来做。为什么 MySQL 放第一位因为 jforum 首次启动时会去连数据库如果数据库没就绪Tomcat 日志里报的错会让你误以为是部署问题排查方向很容易跑偏。先把地基打好再往上盖楼这是环境搭建里最基本的原则。1.3 环境准备期要定的三个指标动手之前我建议你先把下面三个问题想清楚不然后面还会返工。第一数据量级做多大。是只要一个能登录的演示环境还是希望论坛内有几千个用户、几万个帖子方便后面做列表查询和分页的压测这个会影响初始化脚本要不要反复执行、示例数据要不要额外灌所以建议一开始就想好。第二JMeter 压测机放哪里。如果数据源和应用都在同一台 Windows 机器上JMeter 也在这台机器上跑那 CPU、内存、IO 本身就会互相干扰压测结果不够纯粹。条件允许的话尽量让 JMeter 跑在另一台机器上至少和应用服务器分开。环境搭建阶段就把网络拓扑想清楚后面少改配置。第三是不是需要反复重置环境。压测过程中数据会被写脏比如你做了发帖的压测脚本跑几分钟就多了几万条帖子下一次想跑“相同初始数据”的对比测试就难办了。我建议环境搭好后就做一次快照或数据库备份后面可以随时恢复到干净的初始状态。这一点非常关键。2. MySQL 8 从零安装打造可控的后端数据源2.1 下载方式选型ZIP 包还是 MSI 安装包在 Windows 下装 MySQL官方提供了两种主流方式MSI 图形安装包和 ZIP 免安装压缩包。新手通常会选 MSI毕竟有引导界面选几个选项就完事。但如果你想后面方便做配置修改、版本切换、把整套环境放到别的机器上ZIP 包更合适而且对“环境搭建教程”来说它能让你看到 MySQL 服务初始化的真实过程比黑盒式安装更能帮你理解后续问题。我用的是 MySQL Community Server 的 ZIP 包。从官网下载页能选版本和操作系统注意选 Windows (x86, 64-bit), ZIP Archive。下载完是一个大约 200MB 左右的压缩包完全解压后目录结构里包含 bin、include、lib、share 等目录现在还没有 data 目录因为数据目录需要我们自己初始化。2.2 ZIP 方式部署与初始化 MySQL 8解压路径我强烈建议不要带中文和空格比如放在D:\dev\mysql-8.0.33-winx64后面配置和命令行操作会省很多麻烦。解压完成后在 MySQL 根目录下新建一个my.ini文件这是 MySQL 启动时读取的配置文件里面至少需要指定端口、基础目录和数据目录。这里给一份我常用的最小配置[mysqld] port3306 basedirD:/dev/mysql-8.0.33-winx64 datadirD:/dev/mysql-8.0.33-winx64/data character-set-serverutf8mb4 collation-serverutf8mb4_unicode_ci default-storage-engineINNODB max_connections500这里有个地方容易踩坑ini 文件里的路径建议用正斜杠/如果用反斜杠\要注意转义问题否则后面初始化时会报路径错误。另外datadir指向的 data 目录不需要预先创建MySQL 初始化时会自动生成。接下来用管理员身份打开 cmd进入 MySQL 的 bin 目录执行初始化命令cd D:\dev\mysql-8.0.33-winx64\bin mysqld --initialize --console这一步会生成 MySQL 的 root 初始密码控制台输出中会有类似rootlocalhost: xxxxxxxx的一段内容一定要立刻复制保存。很多人第一次装的时候没注意窗口一关临时密码就没了后面登录不上就只能删除 data 目录重新初始化白白浪费几分钟。初始化完成后执行安装系统服务命令mysqld --install MySQL80 net start MySQL80服务启动后用临时密码登录mysql -uroot -p登录成功后再改 root 密码。比如设置成Root_123456执行ALTER USER rootlocalhost IDENTIFIED BY Root_123456; FLUSH PRIVILEGES;从这一步开始MySQL 才算是真正能用的状态。2.3 创建数据库与专门账号压测环境里我不建议让 jforum 直接使用 root 账号因为 root 权限太大而且一旦压测脚本的数据库操作写得不小心误删了系统表整个环境就要重来。我一般会单独创建一个业务账号只给它 jforum 库的权限。先用 root 登录 MySQL执行CREATE DATABASE jforum DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER jforumlocalhost IDENTIFIED BY Jforum_123; CREATE USER jforum% IDENTIFIED BY Jforum_123; GRANT ALL PRIVILEGES ON jforum.* TO jforumlocalhost; GRANT ALL PRIVILEGES ON jforum.* TO jforum%; FLUSH PRIVILEGES;字符集这里特别解释一下utf8mb4才是真正完整的 UTF-8 编码MySQL 里的utf8字符集最多只能存 3 字节像 emoji 这类 4 字节字符就可能存不进去。论坛数据免不了有用户昵称、帖子内容用utf8mb4是最稳妥的选择。排序规则utf8mb4_unicode_ci在多数业务场景下都够用而且大小写不敏感对论坛搜索比较友好。账号里的localhost和%要分开理解。localhost只允许本机连接%表示允许从任意 IP 连接。如果你 JMeter 压测机在另一台机器上需要连到这个数据库就得有jforum%这个账号。后面数据库连接不上时可以先检查是不是账号主机限制问题。这里还要注意 MySQL 8 默认的认证插件是caching_sha2_password部分老版本的 JDBC 驱动不兼容这一点在后面 jforum 连接数据库时特别容易暴露我在第 6 章会专门讲解决方案。如果你提前知道要用老驱动可以在账号创建时指定使用老的密码认证方式ALTER USER jforumlocalhost IDENTIFIED WITH mysql_native_password BY Jforum_123; ALTER USER jforum% IDENTIFIED WITH mysql_native_password BY Jforum_123;2.4 调整连接数与安全事项MySQL 默认的max_connections只有 151这个限制在 JMeter 压测场景下一开线程就可能被打满。环境搭建阶段我会提前调整比如在my.ini里已经写了max_connections500如果后面线程组调得比较大还可以继续增加。需要注意的是这个参数调太大会占用更多内存压测时候要留意数据库所在机器的内存余量。另外一个容易被忽略的问题是 Windows 防火墙。如果 JMeter 施压机在别的机器上远程连 MySQL 3306 端口时需要保证防火墙放行。我一般会做一次 telnet 连通性检查telnet 192.168.x.x 3306能进去说明端口通不行就去检查防火墙规则。不过这只是在环境验证时用的临时放行正式压测建议把网络策略收敛到最小允许范围安全始终要放在第一位。3. JDK、Tomcat 部署与版本避坑3.1 为什么推荐 JDK 8 Tomcat 8.5/9.0这一节得说点版本历史免得你一头栽进去。jforum 是很多年前就开源的项目底层使用的还是javax.servlet这套 API。Tomcat 从 10.0 开始把包名从javax.*改成了jakarta.*虽然只差一个前缀但对老项目来说就是灾难部署上去之后类加载找不到页面直接 500 或 404。所以我建议使用 Tomcat 8.5 或 9.0 系列它们都支持javax.*和 jforum 可以无缝配合。JDK 版本上我更推荐 JDK 8。不是说 JDK 11 或 17 跑不了而是 jforum 这种老项目往往依赖一些第三方库在更高版本 JDK 下会报模块访问异常排查成本高。做性能测试的核心目标是把业务链路跑通不是给老项目做代码迁移所以选最稳的组合最省时间。3.2 JDK 安装与环境变量配置JDK 8 的安装过程本身没什么特别的。安装路径建议默认在C:\Program Files\Java\jdk1.8.0_202然后需要配置两个环境变量。新建系统变量JAVA_HOME值填 JDK 安装路径。然后编辑Path变量在开头加一行%JAVA_HOME%\bin。配置完打开新的 cmd执行以下命令验证java -version javac -version能正常输出版本号就说明 JDK 环境没问题。这里有一个非常小但经常害人的细节改完环境变量后之前已经打开的 cmd 窗口不会刷新环境变量一定要新开窗口测试。3.3 Tomcat 部署与基础验证Tomcat 我推荐下载 8.5.x 的 Windows zip 包解压到类似D:\dev\apache-tomcat-8.5.98的目录即可。运行前先确认一下环境变量里有没有配好 JAVA_HOME因为 Tomcat 的启动脚本就是靠JAVA_HOME定位 JDK 的。启动 Tomcat 有两种方式在安装目录的 bin 目录下双击startup.bat或者在 cmd 里执行cd D:\dev\apache-tomcat-8.5.98\bin startup.bat启动后访问http://localhost:8080看到 Tomcat 默认首页就算成功。如果端口被占用需要修改conf/server.xml里的 Connector 端口配置。我自己遇到 8080 被占用的情况挺多的比如别的服务抢先占了 8080这时候用netstat -ano | findstr 8080看是哪个进程占的决定关掉它还是改 Tomcat 的端口。Tomcat 启动成功之后先别急着部署 jforum我建议顺手看一眼日志输出确定没有异常。Windows 下 Tomcat 日志默认输出在logs目录尤其是catalina.日期.log后面 jforum 连不上数据库时主要就是看这个文件。4. jforum 部署与数据库初始化核心环节4.1 获取 jforum 包并找到数据库脚本jforum 的发布包通常是一个 zip 压缩包解压后里面会有 war 目录结构。现在网络上的下载渠道可能不是那么统一我建议优先找官方发布版或带有完整源码的包因为源码包里会有更完整的数据库初始化脚本。这里给你一个比较实用的经验拿到 jforum 包后不要急着丢进 Tomcat先全局搜索一下有没有包含CREATE TABLE的 SQL 文件或者文件名里含database的目录。常见的路径可能在src/main/resources/database或者WEB-INF/classes/database下面不同小版本的目录结构不完全一样但关键字搜索基本都能找到。这些 SQL 脚本通常拆成两份一份是建库建表的 DDL比如jforum_database.sql一份是插入示例数据的 DML比如jforum_data.sql。如果你拿到的包里只有一份 SQL也不用慌先打开文件看一眼内容能建表且能插入基础管理员数据就够了。4.2 导入建表与基础数据手工 SQL 入库我强烈建议走手工导入 SQL 的路线而不是让程序自动建表。原因很简单手工执行 SQL 你清楚每一步做了什么数据库里现在有什么表、什么数据导错了可以立即定位程序自动建表一旦出错很难判断是哪一步失败。先用命令行登录 MySQLmysql -uroot -p然后切换到自己创建的 jforum 库USE jforum;执行 SQL 导入有几种方式下面这种最直接。先退出 MySQL 客户端回到 cmd执行mysql -uroot -p jforum D:\path\to\jforum_database.sql mysql -uroot -p jforum D:\path\to\jforum_data.sql如果你把 SQL 文件放到了当前目录直接写文件名即可。导入成功后重新登录 MySQL 查看表数量能确认导入是否生效USE jforum; SHOW TABLES;这里有一个 Windows cmd 下的常见坑如果 SQL 文件路径或文件名里有中文cmd 可能会因为代码页问题识别不了路径报“系统找不到指定的路径”。所以前面我特意说把所有工具包解压到纯英文路径下这是无数人踩过的坑。另外我建议导入数据的时候留意一下 SQL 脚本的字符集。如果文件是 UTF-8 编码但 cmd 的默认代码页是 GBK遇到中文字符可能出现乱码。遇到这种情况可以在 cmd 中先执行chcp 65001切到 UTF-8 代码页再导入或者直接用 MySQL 客户端工具的 source 命令SOURCE D:/path/to/jforum_data.sql;source 命令在 MySQL 客户端里直接执行代码页兼容性往往更好是我比较推荐的方式。4.3 修改 jforum 数据库连接配置数据库导入完成后下一步就是把 jforum 里写死的连接信息改成你自己的数据库地址和账号。jforum 的数据库配置一般位于解压后的WEB-INF/config目录下不同版本文件名可能不同常见的有database/system.properties或者jforum-custom.conf。拿不到准确文件名的时候用全文搜索工具搜一下 Jdbc URL 关键字很快就能定位到。配置内容大概是这样的你只需要关注数据库地址、库名、用户名和密码这几项jforum.database.hostlocalhost:3306 jforum.database.namejforum jforum.database.usernamejforum jforum.database.passwordJforum_123 jforum.database.connectionStringjdbc:mysql://localhost:3306/jforum?useUnicodetruecharacterEncodingUTF-8useSSLfalseallowPublicKeyRetrievaltrueserverTimezoneAsia/Shanghai连接串里这几个参数非常重要建议一个都不要省。useUnicodetrue和characterEncodingUTF-8是保证中文正常读写的关键useSSLfalse是避免本机测试时 SSL 握手带来的额外开销allowPublicKeyRetrievaltrue专门解决 MySQL 8 的 caching_sha2_password 认证方式下首次连接获取公钥的问题serverTimezoneAsia/Shanghai是解决时区报错的最直接方式。另外要注意把 MySQL 的 JDBC 驱动包放到webapps/jforum/WEB-INF/lib目录下。jforum 自带的驱动通常比较老连 MySQL 8 大概率不行你需要手动下载mysql-connector-java-8.0.33.jar这种新驱动放进去后重启 Tomcat。这一步很多人漏掉导致 Tomcat 起来后报找不到驱动类。4.4 通过访问路径触发完整初始化配置改好后把整体部署目录放到 Tomcat 的webapps下面。如果你下载到的是独立 war 包直接放到webapps目录再启动 Tomcat 会自动解压如果你下载的是解压后的目录可以手动改名为jforum放到webapps下。启动 Tomcat 后访问http://localhost:8080/jforum如果前面所有配置都正确你应该能看到论坛首页。如果首次访问时 jforum 检测到配置有问题或者数据没初始化好它可能会跳到一个安装/修复页面你在那个页面上可以把数据库地址、账号、密码再确认一遍让程序执行必要的数据写入操作。但我的建议是最好在访问前就把 SQL 导入和连接配置都做好不要依赖网页向导去补数据因为向导类页面往往对 MySQL 8 的兼容性不够好卡住的概率不低。4.5 管理员账号与示例数据的确认环境起来之后第一件事就是用管理员账号登录。示例数据脚本通常会默认创建一个管理员账号常见的有类似admin/admin的组合也可能在其他说明文档里。如果默认账号不对可以到数据库里去看用户表直接查一下管理员账号的哈希值对应关系但我的建议是尽量用脚本自带的初始数据。登录成功后别急着写 JMeter 脚本先手动在论坛上创建一两个板块、发一两篇帖子把最基本的发帖回帖流程走通。这一步的目的有两个一是确认数据库写入没有问题二是验证 session 和 cookie 流程能正常工作。你现在在页面上做的每一个操作都会成为后面 JMeter 脚本里抓接口的参照。5. 联调验证与性能环境预热5.1 首页、登录、发帖三个链路验证环境搭建完成不等于可以压测了我一般会先按“首页浏览 - 用户登录 - 发帖回帖”三个核心链路做一次快速功能验证。先测试首页访问。用浏览器访问 jforum 首页看页面是否正常展示板块列表和主题列表。这里能顺带验证数据库读操作没问题因为首页会从数据库查出板块列表。接着测试登录。使用管理员账号登录观察是否跳转到登录后页面。遇到登录失败的话先排查数据库里用户是否存在、密码策略是否被改过。再往后是发帖测试在某个板块下发一篇测试帖子提交后到数据库里查一下帖子表确认记录已经插入。这个操作同时验证了写入、事务和字符集。等你用浏览器把这三条链路走通后再打开 JMeter分别跑这三个最简单的 HTTP 请求确认 JMeter 能拿到与浏览器一致的结果。很多人到这一步会忽略响应体里的动态 token 问题但那是脚本设计阶段的事情这里只需要确保接口通就行。5.2 再从 MySQL 侧确认核心表与数据量功能层面验证完我再习惯去数据库侧确认一下当前的数据规模确保后面压测时数据量是清楚的。登录 MySQL 后切换到 jforum 库执行几个查询USE jforum; SELECT COUNT(*) FROM jforum_users; SELECT COUNT(*) FROM jforum_forums; SELECT COUNT(*) FROM jforum_topics; SELECT COUNT(*) FROM jforum_posts;不同版本的 jforum 表名可能略有差异但一般都在jforum_前缀下。这里不是随便看一眼就完而是要记录下当前数据量作为压测基线。后面跑完压测再查这些表的数据量你就能知道脚本产生了多少脏数据方便做数据清理。如果觉得初始数据量太少无法满足大数据量场景测试就需要在压测前先做数据扩充。比如写一个简单的 SQL 存储过程循环往主题表和帖子表插入数据或者用 JMeter 自己的 JDBC 请求去批量灌数据。这个阶段尽量一次性把目标数据量准备好因为后面每次要重置环境你得有一个可重复执行的数据生成方案。5.3 压测前的数据规模与快照准备压测正式开始前我再做两件事。第一件事是调整 MySQL 连接数上限。前面已经在my.ini设置了 500如果 JMeter 线程数开得大可能还需要往上加。压测过程中如果看到大量报错提示连接数满优先查这个配置。但要注意连接数不是无限加的每个连接都会消耗线程和内存连接数超过机器承载能力后反而会拖垮性能。第二件事是给整个环境做一次“初始快照”。Windows 上如果你用的是虚拟机可以直接做虚拟机快照如果是物理机可以导出 jforum 库的备份mysqldump -uroot -p jforum D:\backup\jforum_initial.sql保留好这个文件后面数据库被压测脚本写脏了可以直接用这份 SQL 把数据库恢复到刚搭建完的干净状态。我自己的经验是环境搭建完成后半小时内做一次备份后面能省出好几天的调试时间。6. 踩坑记录与排查实录附速查表6.1 MySQL 8 认证插件不兼容这是我用 jforum 连 MySQL 8 时遇到的第一大坑。现象是启动 Tomcat 后日志里报Public Key Retrieval is not allowed或者干脆报无法连接到数据库。原因在于 MySQL 8 默认的认证插件是caching_sha2_password老版本的 MySQL JDBC 驱动不认识这种加密方式导致握手失败。解决方向有两个第一升级 JDBC 驱动到 8.x 版本并且连接串里加上allowPublicKeyRetrievaltrueuseSSLfalse第二把 jforum 使用的数据库账号改回mysql_native_password认证方式。我更推荐双管齐下既更换新驱动又把账号认证方式改成老协议这样最稳妥。如果你走的是账号认证方式可以执行ALTER USER jforumlocalhost IDENTIFIED WITH mysql_native_password BY Jforum_123; ALTER USER jforum% IDENTIFIED WITH mysql_native_password BY Jforum_123; FLUSH PRIVILEGES;改完认证方式后记得重启 Tomcat。6.2 Tomcat 版本导致 jforum 白屏 500如果你用了 Tomcat 10 以上版本部署 jforum大概率会遇到页面一直 500 或 404原因就是前面提到的javax.*到jakarta.*变化。jforum 这种老项目根本不会适配新包名类找不到自然跑不起来。判断方法很简单直接看 Tomcat 日志里有没有类似ClassNotFoundException: javax.servlet.http.HttpServlet之类的报错。解决方案就是改成 Tomcat 8.5 或 9.0不要试图去给 jforum 改代码适配 Tomcat 10那不是性能测试环境搭建该干的事。6.3 中文乱码不止改一个字符集论坛里中文乱码是出现频率比较高的一个问题。这个坑最常见的根源是字符集不一致。MySQL 数据库创建时我用了utf8mb4但如果表本身是乱码导进来的或者连接串里的characterEncodingUTF-8没加中文就会变成问号或者一团乱码。排查思路要分层先确认数据库和表的字符集执行SHOW CREATE TABLE jforum_posts\G看表定义里是不是utf8mb4再确认连接串里有没有正确设置characterEncodingUTF-8最后确认页面输出时的编码是不是 UTF-8。三处全部统一后中文问题基本能解决。另外如果你是用 cmd 手工导入 SQL还要考虑 cmd 代码页转换问题。我建议直接进 MySQL 后用source命令导入这样字符集受客户端环境干扰最小比在 cmd 里用重定向符更稳定。6.4 连接池与最大连接数被压垮JMeter 线程数一旦开到上百数据库连接数的瓶颈立刻浮现。常见报错有Too many connections说明 MySQL 的 max_connections 不够了也有应用日志里报等待获取连接超时说明应用自身连接池的上限太低。MySQL 侧我建议提前把max_connections调到 500 或更高并在压测过程中用SHOW PROCESSLIST;实时观察连接数。应用侧的连接池配置一般有 maxPoolSize 或 maxActive 参数如果是多个压测并发跑需要同步调大。不过这里有一个性能测试的基本认知连接数并不是越高越好每多一个连接就意味着多一份资源消耗如果压测目标是看系统在特定并发下的表现连接池设置应该和真实生产环境尽量一致而不是为了压测而无限放开。6.5 排查顺序建议防止越调越乱环境出问题时我见过很多新手一上来就怀疑数据库账号密码写错了然后反复改配置越改越乱。我的习惯是严格按链路顺序排查先看 Tomcat 日志日志里会明确指出是哪一层报错如果是数据库拒绝连接先用命令行直接连一下测试例如mysql -ujforum -pJforum_123 -h127.0.0.1 jforum这能立刻区分是网络问题、账号问题还是配置问题。如果命令行能连上但 jforum 连不上那就是配置或驱动问题如果命令行也连不上那就是数据库服务或账号权限问题先回到 MySQL 侧去查。这样分层排查最多 5 分钟就能定位问题比到处乱改配置高效得多。下面这个速查表是我实际排障时经常参照的现象优先检查项常用解决手段公共密钥错误JDBC 驱动版本/连接串连接串加 allowPublicKeyRetrievaltrueuseSSLfalse认证插件不支持MySQL 账号认证方式改为 mysql_native_password找不到驱动类WEB-INF/lib 是否存在驱动放入 mysql-connector-java 8.x中文乱码库表编码/连接串编码/cmd代码页统一 utf8mb4 与 UTF-8端口占用server.xml/服务默认端口netstat 查占用改端口或关进程连接数满max_connections/连接池调大配置并重启服务时区报错serverTimezone 未设置连接串加 serverTimezoneAsia/Shanghai环境搭好后你会在压测过程中反复用到第 5 章的快速验证和第 6 章的排障手法。最后再分享一个我个人的经验第一次把所有步骤走通后一定要把数据库导出一份初始备份然后在备份的基础上实际跑一次 JMeter 冒烟脚本确认环境稳定性。这样后面再写复杂的 JMeter 测试计划时你心里会很踏实因为你知道底层环境是干净的、可控的。下一篇我们会进入 JMeter 脚本设计重点拆解登录、发帖、回帖这些论坛核心业务的参数怎么关联到时候见。
返回列表