利器: 用Siege做Web服务器压测

Posted .Net C#相关记录和学习笔记的共享.支持开源

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利器: 用Siege做Web服务器压测相关的知识,希望对你有一定的参考价值。

技术分享

用「Web压测」关键词检索,能找到好多进行压测的工具,比如ab、Http_load、Webbench、Siege这些,不过今天并不是要对这些工具做对比,毕竟我们只是想得到一个结果。本文主要介绍Siege,因为Siege是上面四者中,在Mac上安装和使用最便利的,所以果断就是它了!

准备工作

在压测开始前,你需要确保你的open files足够大,否则会报TOO MANY FILES OPEN错误,可以通过ulimit -a查看,如下图:

技术分享

使用ulimit -n 10000可以修改该值。不过这种修改并不是永久的,关闭终端会话,又会恢复回来。

安装

brew install siege

使用

siege -c 1000 -t 5s URL
siege -c 1000 -t 5s -f  URL_File_Name

上面是siege的两种使用方法,第一种是对指定站点进行压测,第二种是对文件中包含的若干URL进行批量测试。

  • -c 并发数

  • -t 压力测试时间,可以在时间后加单位,具体查帮助,上面表示的是压测时间持续5秒

  • -r 重复次数,与-t表达方式不同,但含义相同,设一个即可

  • -f 包含URL的文本名字

  • -b BENCHMARK模式,请求之间无需延迟

输出结果

技术分享

  • Transactions 总测试数

  • Availability 成功率

  • Elapsed time 总用时

  • Data transferred 总共传输数据

  • Response time 响应耗时

  • Transaction rate 每秒处理请求数

  • Throughput 平均每秒传输数据量

  • Concurrency 实际最高并发

  • Successful transactions 成功处理次数

  • Failed transactions 失败处理请求数

  • Longest transaction 传输所花最长时间

  • Shortest transaction 传输所花最短时间

最后说明下 Siege 能支持GET/POST两种请求,不过格式略有区别,并且上面罗列的只是Siege的部分参数,Siege还有很多其它参数,请一并参考手册。

以上是关于利器: 用Siege做Web服务器压测的主要内容,如果未能解决你的问题,请参考以下文章

压测工具siege和wrk

Mac压测工具(Siege)记录.md

Siege 高性能压测工具

Siege的优缺点

Siege---Linux性能压测工具及结果分析

siege性能测试