Skip to content

调优标准

为什么要做

提高系统性能 + 节省公司资源 + 改善用户体验 + 应对未来挑战

所有的系统在开发完之后,多多少少都会有性能问题,我们首先要做的就是想办法把问题暴露出来,例如进行压力测试、模拟可能的操作场景等等,再通过性能调优去解决这些问题。

有些性能问题是时间累积慢慢产生的,到了一定时间自然就爆炸了;而更多的性能问题是由访问量的波动导致的。

所以需要更好的了解自己系统的性能情况,方便业务拓展。

什么时候做

推荐在遵循有效编码规范的前提下完成编码后,再进行性能测试,并且性能测试需有针对性。

有效的编码规范

1、减少磁盘 I/O 操作、降低竞争锁的使用以及使用高效的算法等等。

2、遇到比较复杂的业务,我们可以充分利用设计模式来优化业务代码。

3、设计商品价格的时候,往往会有很多折扣活动、红包活动,我们可以用装饰模式去设计这个业务。

推荐阅读《整洁代码之道》

在性能测试中,我们根据需求设计并执行压力测试方案。通过模拟高并发、大数据量等极端场景,监测系统的响应时间、吞吐量、资源利用率和并发用户数等指标。

使用性能分析工具实时获取系统在压力下的运行状态,并与预期数据进行对比。

项目上线后,通过日志监控系统收集并分析运行日志,发现潜在的性能问题或故障。

一旦发现异常,启动问题定位与修复流程,并进行压测验证效果。同时,长期跟踪关键性能指标的变化趋势,为系统优化和扩容提供决策依据。

影响指标

主要包括:

  1. 时间性能

    • 响应时间(Response Time):从用户发起请求到系统完成该请求并给出响应所需的时间。
    • 吞吐量(Throughput):单位时间内系统处理的请求数或任务数,如QPS(Queries Per Second)、TPS(Transactions Per Second)。
    • CPU 使用率(CPU Utilization):处理器执行任务所占用的时间比率。
    • I/O 延迟(I/O Latency):硬盘、网络等输入输出操作的延迟时间。
  2. 空间性能

    • 内存容量与使用率(Memory Capacity and Utilization):系统的总内存大小和当前已使用的内存比例。
    • 存储性能(Storage Performance):硬盘读写速度(IOPS: Input/Output Operations Per Second),带宽(Bandwidth),以及磁盘空间利用率。
  3. 并发能力

    • 并发用户数(Concurrent Users):系统能够同时服务的用户数量。
    • 连接数(Connection Count):服务器可以同时维持的最大连接数。
  4. 可靠性与稳定性

    • 平均无故障时间(MTBF, Mean Time Between Failures):两次故障之间系统的平均运行时间。
    • 平均修复时间(MTTR, Mean Time To Repair):系统出现故障后恢复到正常运行状态所需的平均时间。
    • 可用性(Availability):系统在一定时间内可提供服务的时间占比。
  5. 安全性

    • 数据安全(Data Security):包括数据加密、访问控制、防篡改措施的有效性。
    • 防御攻击能力(Defensive Capability):防火墙效率、DDoS防护能力等。
    • 漏洞管理(Vulnerability Management):发现和修复软件漏洞的速度和效果。
  6. 扩展性

    • 可扩展性(Scalability):系统能否在增加资源的情况下线性地提高性能。
  7. 网络性能

    • 网络延迟(Network Latency):数据在网络中传输所需的时间。
    • 带宽利用率(Bandwidth Utilization):网络通信中的实际带宽消耗与最大带宽的比例。
  8. 资源利用率

    • 缓存命中率(Cache Hit Ratio):缓存被有效利用的程度。
    • 进程/线程调度效率:操作系统分配和管理计算资源的能力。

根据具体的业务场景和需求,不同的指标会有不同的优先级。通过监控和优化这些性能指标,可以确保系统高效稳定地运行,并满足用户的期望。