Skip to content

学习计划

Redmine 性能监控分析与调优

性能测试策略

性能测试整体流程

首先,需要了解性能整体的知识体系与相关方法:

其次,需要了解性能测试过程中需要具体执行的操作步骤,包含以下内容:

相关环境

  • 被测环境:https://redmine.performance.ceba.ceshiren.com/
  • 被测环境账号信息:用户名: ck29,密码: hogwarts
  • 被测环境接口文档:https://www.redmine.org/projects/redmine/wiki/Rest_api

压力测试

性能监控

相关环境

  • Grafana:https://grafana.performance.ceba.ceshiren.com/
  • Prometheus:https://prometheus.performance.ceba.ceshiren.com/

监控信息

  1. 服务器资源信息,配置教程: PrometheusExporter 配置服务器资源信息
  2. 数据库服务信息,配置教程:数据库配置 Grafana 信息
  3. JMeter 压测过程信息, 配置教程: Jmeter 实时压测结果收集

实现原理

目标 实现工具
施加压力 JMeter
数据收集 Prometheus(收集数据)
数据展示 Grafana

性能瓶颈分析

常规摸高测试和负载测试
  • 测试方法:

    • 使用 JMeter 进行常规摸高测试和负载测试,逐渐增加并发用户数,观察系统的性能表现。 初始并发用户数设置为 10,每隔 5 分钟增加 10 个用户,直到达到目标并发用户数 100。 测试结果:
  • 在 100 个并发用户时,系统响应时间逐渐变长,但仍在可接受范围内。
  • 达到 110 个并发用户时,系统开始出现明显的响应时间增加和错误率上升。
  • 在 200 个并发用户时,系统的响应时间显著增加,错误率明显上升,用户体验显著下降。
瓶颈分析:MariaDB 服务

在增加 Redmine 实例数量后,重新进行压测,发现 MariaDB 服务成为新的性能瓶颈。此时,由于 MariaDB 的最大连接数限制为 10,无法满足高并发请求的需求。

  • 验证方法:

    • 检查 MariaDB 服务的连接数配置和监控数据,确认 MariaDB 服务在高并发情况下的连接数使用情况。 使用监控工具(如 Prometheus 和 Grafana)观察 MariaDB 服务的 CPU、内存、连接数等资源使用情况。
  • 解决方案:

    • 查看最大连接数配置,SHOW VARIABLES LIKE 'max_connections';
    • 调整 MariaDB 的最大连接数配置,增加连接池大小,确保能够处理更多并发请求SET GLOBAL max_connections = xxx;
    • 进一步优化数据库查询,减少数据库负载,提高响应速度。

总结

  • 在对 Redmine 进行性能测试和监控之后,通过对各项数据的分析,可以清晰地识别出系统的性能瓶颈,并给出相应的优化建议。
  • 通过数据库优化、系统资源优化,提升 Redmine 的性能和稳定性,确保在高并发用户下的良好表现。
  • 持续进行性能监控和优化,有助于及时发现并解决潜在的性能问题,保证系统的长久稳定运行。