
目录一.什么是“压力测试”二.实现压力测试的工具有哪些三.什么是 wrk四.详解 wrk它到底怎么工作的五.怎么用 wrk给新手的特别提醒一.什么是“压力测试”在聊工具之前我们得先明白“压测”是干嘛的。想象一下你要去盖一座摩天大楼这就是服务器/网站。正常情况大楼里只有几个人在办公电梯服务器资源运行得很顺畅。极端情况下班高峰期几千人同时挤进电梯大楼会不会晃动电梯会不会卡住压力测试Load Testing / Stress Testing就是给这座大楼做一次“极限承重实验”。它的核心目的就是找短板看看服务器在多少人同时访问时会变慢响应变慢或者崩溃报错。定指标确定服务器能抗住多少并发量QPS/TPS以此来决定买多少硬件、招多少运维人员。简单说压力测试就是模拟成千上万个用户同时访问服务器来检验服务器的抗压能力。二.实现压力测试的工具有哪些既然要模拟用户请求接口我们就需要工具。历史上有很多工具它们各有千秋工具名称特点地位Apache Bench (ab)最老牌的工具简单易用但只能模拟简单的 GET 请求。“上一代”功能单一已逐渐被淘汰。JMeter功能极其强大可视化界面能模拟复杂的业务逻辑。但是体量比较重。“全能型”适合复杂场景但比较笨重消耗本机资源。wrk代码量极少性能极强用脚本Lua扩展。wrk 底层用C语言编写非常轻量却能用很少的资源模拟出巨大的流量所以现在是开发人员的首选。“现代高性能”目前最流行的命令行压测工具。Windows推荐JMeterLinux推荐wrk三.什么是 wrkwrk是一款开源的、现代的、高性能的 HTTP 压力测试工具。它就像一个“特种兵”身材不大但爆发力极强。名字含义它就是英文单词work工作的缩写。开发者 Will Glozer 起这个名字就是希望它能埋头干活把服务器“累趴下”为止。核心能力它能利用操作系统的多线程和非阻塞 I/O这是它性能高的原因在一台普通电脑上轻松模拟出上万个并发连接。四.详解 wrk它到底怎么工作的为了让你更直观地理解我们还是用餐厅来打比方。概念类比对象说明服务器餐厅的厨房负责处理请求做菜。wrk 工具一群“职业点菜员”专门来餐厅疯狂点菜的“托儿”。线程 (Thread)领班 (4个)假设我们派了 4 个领班每人负责管理一片区域。连接 (Connection)点菜的顾客 (100个)这 100 个顾客坐在座位上随时准备点菜。请求 (Request)点菜的动作顾客点完菜厨房做好服务员上菜这算一次完整的请求。wrk 的工作流程1.你设定好我要开 4 个线程领班保持 100 个连接顾客。2.wrk 会瞬间让这 100 个“虚拟顾客”同时向服务器发送 HTTP 请求疯狂点菜。3.它会拿着秒表记录厨房服务器平均多久响应一次有没有顾客等太久饿死了超时/报错一分钟内总共做了多少道菜吞吐量五.怎么用 wrk既然它是工具我们就得会用它。最基础的命令只需要记住三个参数标准命令格式wrk -t线程数 -c并发数 -d持续时间 目标网址举个例子假设我们要测试http://example.com这是一个专门用来做测试示例的网站命令如下1wrk -t4 -c100 -d30s http://example.com-t4开启 4 个线程就像派 4 个领班。-c100建立 100 个并发连接模拟 100 个同时在线的用户。-d30s持续运行 30 秒测试时间。测试结束后你会看到一份报告重点关注这两个指标Latency (延迟)比如20ms代表服务器处理一个请求平均花了 20 毫秒。越低越好。Req/Sec (每秒请求数)比如5000代表服务器每秒能处理 5000 个请求。越高越好。给新手的特别提醒1.安全第一wrk 的威力很大千万不要对别人的正式网站比如淘宝、京东进行高并发压测这会被视为黑客攻击DDoS是违法的。2.测试环境请只在你自己开发的本地环境或者专门搭建的测试服务器上练习。3.循序渐进刚开始先用http://example.com这种公开的测试网站练手熟悉了参数再上手复杂的业务。以上就是本篇文章的全部内容喜欢的话可以留个免费的关注呦~~~