Redmine 性能监控分析与调优
性能测试策略
性能测试整体流程
首先,需要了解性能整体的知识体系与相关方法:
其次,需要了解性能测试过程中需要具体执行的操作步骤,包含以下内容:
- 性能测试计划{:target=“_blank”}
- 性能测试场景设计{:target=“_blank”}
- 性能测试报告{:target=“_blank”}
- 性能测试关注的数据指标{:target=“_blank”}
相关环境
- 被测环境:https://redmine.performance.ceba.ceshiren.com/
- 被测环境账号信息:用户名:
ck29
,密码:hogwarts
- 被测环境接口文档:Rest api - Redmine
压力测试
性能监控
相关环境
- Grafana:https://grafana.performance.ceba.ceshiren.com/
- Prometheus:https://prometheus.performance.ceba.ceshiren.com/
- K8S:查看日志,查看mysql 一些链接情况( 注意: 内部使用不对外开放。)
监控信息
- 服务器资源信息,配置教程: PrometheusExporter 配置服务器资源信息
- 数据库服务信息,配置教程:数据库配置 Grafana 信息
- JMeter 压测过程信息, 配置教程: Jmeter 实时压测结果收集
实现原理
目标 | 实现工具 |
---|---|
施加压力 | JMeter |
数据收集 | Prometheus(收集数据) |
数据展示 | Grafana |
性能瓶颈分析
常规摸高测试和负载测试
-
测试方法:
- 使用 JMeter 进行常规摸高测试和负载测试,逐渐增加并发用户数,观察系统的性能表现。
初始并发用户数设置为 10,每隔 5 分钟增加 10 个用户,直到达到目标并发用户数 100。
测试结果:
- 使用 JMeter 进行常规摸高测试和负载测试,逐渐增加并发用户数,观察系统的性能表现。
-
在 100 个并发用户时,系统响应时间逐渐变长,但仍在可接受范围内。
-
达到 110 个并发用户时,系统开始出现明显的响应时间增加和错误率上升。
-
在 200 个并发用户时,系统的响应时间显著增加,错误率明显上升,用户体验显著下降。
瓶颈分析:MariaDB 服务
在增加 Redmine 实例数量后,重新进行压测,发现 MariaDB 服务成为新的性能瓶颈。此时,由于 MariaDB 的最大连接数限制为 10,无法满足高并发请求的需求。
-
验证方法:
- 检查 MariaDB 服务的连接数配置和监控数据,确认 MariaDB 服务在高并发情况下的连接数使用情况。
使用监控工具(如 Prometheus 和 Grafana)观察 MariaDB 服务的 CPU、内存、连接数等资源使用情况。
- 检查 MariaDB 服务的连接数配置和监控数据,确认 MariaDB 服务在高并发情况下的连接数使用情况。
-
解决方案:
- 查看最大连接数配置,
SHOW VARIABLES LIKE 'max_connections';
。 - 调整 MariaDB 的最大连接数配置,增加连接池大小,确保能够处理更多并发请求
SET GLOBAL max_connections = xxx;
。 - 进一步优化数据库查询,减少数据库负载,提高响应速度。
- 查看最大连接数配置,
-
参考资料:
总结
- 在对 Redmine 进行性能测试和监控之后,通过对各项数据的分析,可以清晰地识别出系统的性能瓶颈,并给出相应的优化建议。
- 通过数据库优化、系统资源优化,提升 Redmine 的性能和稳定性,确保在高并发用户下的良好表现。
- 持续进行性能监控和优化,有助于及时发现并解决潜在的性能问题,保证系统的长久稳定运行。
相关面试题
https://interview.tutorial.hogwarts.ceshiren.com/python_programming/v2/L1/interview/
压测环境相关部署脚本
- 视频地址:
- 脚本配置信息: