性能文章>容量评估冒险:挑战极限,究竟要压到何种程度才能“摸到”最大容量?>

容量评估冒险:挑战极限,究竟要压到何种程度才能“摸到”最大容量?原创

1年前
307767
  • 景:寻找瓶颈

  • 混合流量压测时,在什么时候喊“停”?

  • 找到性能瓶颈后,下一步干什么?

  • 小结

背景

觉得系统有性能瓶颈,但不知道在哪!!!
怎么找?
压测。

搭建一套与pro环境相同配置的服务成本比较高,大多数公司会选择直接在线上压。
因为全链路的混合流量更接近实际的业务场景,同时,风险也高。
那么,既要不影响系统使用,也要找出性能瓶颈,需要

在什么时候喊“停”?

出现明显的性能拐点时,就找到了系统的性能瓶颈,摸到最大容量。

性能拐点的表现:
增大压力后,接口的QPS没有同比上升,但响应时间显著增大,譬如增大1倍+。

同时伴随着其它指标开始出现异常,包含但不限于:

  • 服务所在主机的CPU利用率接近或达到警戒阈值,譬如100%

  • 服务所在主机的内存利用率接近或达到警戒阈值,譬如100%

  • 服务的Young GC更加频繁,譬如GC次数达到时间的2倍

  • 服务出现Full GC,且频繁出现

  • 服务的线程数增加,同时WAITING状态的线程同时增加

  • 数据库的资源利用率接近或达到警戒阈值,譬如90%

  • Redis的资源利用率接近或达到警戒阈值

找到性能瓶颈后,下一步干什么?

在出现性能拐点时,保存现场快照。

对于Java应用来,获取JVM的Heap dump和Thread dump数据;
对于数据库瓶颈,梳理不规范的SQL、耗资源的SQL
对Redis的瓶颈,梳理调用链路,确定出现慢的原因

小结

事前:确定目标。找到系统性能瓶颈,验证担心
事中:线上压测的节奏把握。保留必要的现场
事后:分析数据,确定根因,fix。准备下一次复测

补充

DEV【Development environment】开发环境,用于开发者调试使用。

FAT【Feature Acceptance Test environment】功能验收测试环境,相当于alpha环境。 

UAT【User Acceptance Test environment】用户验收测试环境,相当于beta环境(回归测试、集成测试) 

PRO【Production environment】生产环境

https://www.apolloconfig.com/#/zh/deployment/distributed-deployment-guide

 

点赞收藏
bit01
请先登录,查看6条精彩评论吧
快去登录吧,你将获得
  • 浏览更多精彩评论
  • 和开发者讨论交流,共同进步

为你推荐

API性能调优
7
6