Chinaunix首页 | 论坛 | 博客
  • 博客访问: 416972
  • 博文数量: 124
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 872
  • 用 户 组: 普通用户
  • 注册时间: 2018-03-29 14:38
个人简介

默默的一块石头

文章分类

全部博文(124)

文章存档

2022年(26)

2021年(10)

2020年(28)

2019年(60)

我的朋友

分类: LINUX

2022-03-07 14:59:26

前言

这里列举了常见的压力测试工具
1. webbench
2. http_load
3. siege 支持https
4. db
5. tsung 推荐

一、Webbench
  • 这个使用就最为简单的,比Apache自带的ab压力测试要好使一点
  • 下载

    wget ~cz210552/distfiles/webbench-1.5.tar.gz
  • 安装
    tar zxf webbench-1.5.tar.gz && cd webbench-1.5
    make && make install

  • 常用参数
    -t 测试时间
    -c 并发连接数

  • 举个粟子
    模拟1000并发数,测试时间300秒。
    webbench -c 1000 -t 300


二、Http_load
  • 单一进程运行,以并行复用的方式运行,用以测试web服务器的吞吐量与负载。一般简单的压力测试可以使用它
  • 下载

    wget

  • 安装
    tar zxvf http_load-12mar2006.tar.gz && cd http_load-12mar2006
    make && make install

  • 常用参数
    -p 并发访问进程数
    -f 总的访问次数
    -r 每秒的访问频率
    -s 总的访问时间

  • 举个粟子
    http_load -p 100 -f 1000 url.txt
    总访问1000次,并发100
    http_load -r 100 -s 300 url.txt
    持续300秒,每秒100次访问


三、Siege
  • 多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行
  • 下载

    wget

  • 安装
    tar zxvf siege-3.1.0.tar.gz && cd siege-3.1.0/
    ./configure
    make && make install
    siege.config

  • 常用参数
    -i 多个url,随机访问
    -c 并发用户数
    -r 重复次数
    -t 测试时间
    -l 输出测试日志

  • 举个粟子
    siege -c 200 -t 10
    并发数200,持续时间10秒。
    siege -c 50 -r 100
    50个用户(每次并发量,注意不是每秒并发量) 重复100次 共产生 50 * 100 = 5000个请求
    siege -c 50 -r 100 /?name=test
    50个用户 重复100次 发送GET参数
    siege -c 50 -r 100 " POST name=test" 50个用户 重复100次 发送POST参数 (注意引号)

  • 结果说明
Transactions: 30000 hits //完成30000次处理  Availability: 100.00 % //100.00 % 成功率  Elapsed time: 68.59 secs //总共使用时间  Data transferred: 817.76 MB //共数据传输 817.76 MB  Response time: 0.04 secs //响应时间,显示网络连接的速度  Transaction rate: 437.38 trans/sec //平均每秒完成 437.38 次处理  Throughput: 11.92 MB/sec //平均每秒传送数据  Concurrency: 17.53 //实际最高并发连接数  Successful transactions: 30000 //成功处理次数  Failed transactions: 0 //失败处理次数  Longest transaction: 3.12 //每次传输所花最长时间  Shortest transaction: 0.00 //每次传输所花最短时间  

四、ab
  • ApacheBench安装apache后就可以使用,不过测试效果一般
  • 安装
    centos: yum install apr-util
    debian: apt-get install apache2-utils

  • 常用参数
    -n 请求总次数
    -c 并发请求数,不能大于-n

  • 举个粟子
    ab -c 100 -n 1000
    并行发送100个请求,执行1000次。


五、Tsung
  • 开源的多协议分布式负载测试工具,基于erlang,使用perl+gnuplot生成图表,它能用来压力测试HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP 和 Jabber/XMPP的服务器。它可以分布在多个客户机,并能够模拟成千上万的虚拟用户数并发。
  • 安装
yum -y install erlang perl perl-RRD-Simple.noarch perl-Log-Log4perl-RRDs.noarch gnuplot perl-Template-Toolkit  
wget http://tsung.erlang-projects.org/dist/tsung-1.5.1.tar.gz  
tar zxvf tsung-1.5.1.tar.gz  
cd tsung-1.5.1 ./configure 
make && make install 
  • 配置
    在/usr/share/doc/tsung/examples/目录有多个例子供参考,我们这里主要是使用http_simple.xml进行修改。 Tsung默认配置文件路径为:~/.tsung/
mkdir ~/.tsung/ cp /usr/share/doc/tsung/examples/http_simple.xml ~/.tsung/tsung.xml 
  • 配置文件参考:
  <tsung loglevel="debug" version="1.0">  <clients> <client host="localhost" use_controller_vm="true"/> clients>  <servers> <server host="xxx.imdst.com" port="8081" type="tcp">server> servers> <load>  <arrivalphase phase="1" duration="10" unit="minute"> <users interarrival="2" unit="second">users> arrivalphase> load> <sessions> <session name="http-example" probability="100" type="ts_http"> <for from="1" to="20000" var="i">  <request> <http url="/" method="POST" version="1.1" contents_from_file="/tmp/myfile">http> request> for> session> sessions> tsung> 
  • 配置文件说明:
clients   客户端,如果是多台客户端同时压测的话,可以配置多个client的IP地址  
servers   被压测服务器配置,主要是填写IP和端口 load 配置压测信息,如:10分钟之内,不限制并发用户以每2秒的速度并发请求。  
sessions  被压测服务器的具体配置信息,这个可以指定配置的URL,由于我这里有token等相关的变量,因此需要采用文件的形式,否则会提示配置文件错误。 

更多配置文件参考可以看:

  • 举个粟子
    • 压测
      tsung start
    • 如果你没有在配置文件中写for循环,例如: 
    • 就需要使用ctrl+c 来中止压测。
    • 生成图表
      cd /root/.tsung/log/20150717-1020
      /usr/lib/tsung/bin/tsung_stats.pl
    • 然后下载成生的图表graph.html和reports.html,用浏览器打开

https://blog.imdst.com/linuxxia-webya-li-ce-shi-gong-ju/
阅读(645) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~