一、 为什么要做压测?
首先解释下为什么要做性能压测:根据 Amazon 统计,每慢 100 毫秒,交易额下降 1%。这个统计数据为大家敲响了警钟,也客观说明了性能压测对于企业应用的重要性。从具体的OKR上讲,我们希望能将单机 QPS 提升至 600 ,使得目前线上机器并发能力提升 1 倍。
那么问题来了: 什么是QPS?目前服务器单机QPS是多少?如何才能将单机的QPS提升到600?如何找出系统的瓶颈?
要解决上述问题,就要利用我们本文要讲的压测,如果你还不了解压测,不妨仔细阅读本文
二、 什么是压力测试?
1. 基本概念
一般来说「性能测试」包括压力测试、负载测试、容量测试三种主要测试类型
这里我们主要聚焦压力测试,压力测试是通过不断向被测系统施加压力,测试系统在压力情况下的性能表现。主要考察当前软硬件环境下系统所能承受的最大负荷并帮助开发人员找出系统瓶颈所在。我们可以模拟巨大的流量请求以查看应用程序在峰值使用情况以及服务器状况。
2. 核心指标
核心指标:TPS、QPS、RT、系统CPU利用率、系统内存等
3. 压测工具
工欲善其事,必先利其器。压测工具有很多,大家可以自行去了解,这里就主要说说我们本次压测使用的工具:wrk。
wrk是一款针对Http协议的基准测试工具,它能够在单机多核 CPU的条件下,使用系统自带的高性能 I/O机制,如 Epoll,Kqueue等,通过多线程和事件模式,对目标机器产生大量的负载。
安装wrk
使用./wrk命令启动