压力测试http_load 通过修改配置测试https协议成功了。

到http://www.acme.com/software/http_load/ 下载http_load ,安装也很简单直接make;make instlall 就行。

如果你需要测试https,你必须将 Makefile中
# CONFIGURE: If you want to compile in support for https, uncomment these
# definitions.  You will need to have already built OpenSSL, available at
# http://www.openssl.org/  Make sure the SSL_TREE definition points to the
# tree with your OpenSSL installation - depending on how you installed it,
# it may be in /usr/local instead of /usr/local/ssl.
SSL_TREE =    /usr
SSL_DEFS =    -DUSE_SSL
SSL_INC =    -I$(SSL_TREE)/include
SSL_LIBS =    -L$(SSL_TREE)/lib -lssl -lcrypto

由于使用到openssl,你必须安装openssl和相应的开发环境

apt-get install openssl
apt-get install libssl-dev

find -name ssl.h
/usr/include/openssl/ssl.h

所以上面红色字体部分必须修改

http_load 是支持 https 的,但是Makefile 要作些修改(具体看Makefile的注释),修改后可能会报链接错误,提示ssl 找不到 dlopen 等。

此时,需要继续修改Makefile

LDFLAGS =  -s $(SSL_LIBS) $(SYSV_LIBS)

改为

LDFLAGS =    -s $(SSL_LIBS) $(SYSV_LIBS) -rdynamic -ldl

如果使用dl*函数,需要-ldl


我们把参数给大家简单说明一下。-parallel简写-p 含义是并发的用户进程数。

-fetches 简写-f含义是总计的访问次数

-rate    简写-p含义是每秒的访问频率

-seconds简写-s含义是总计的访问时间


urls.txt 是一个url 列表,每个url 单独的一行。当然也可以直接跟一个url 而不是url 列表文件。
实例:
  1. http_load -rate 5 -seconds 10 urls  
  2. 49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds  
  3. 5916 mean bytes/connection  
  4. 4.89274 fetches/sec, 28945.5 bytes/sec  
  5. msecs/connect: 28.8932 mean, 44.243 max, 24.488 min  
  6. msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min  
  7. HTTP response codes:  
  8.   code 200 -- 49  
 分析:
1.49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds
说明在上面的测试中运行了49个请求,最大的并发进程数是2,总计传输的数据是289884bytes,运行的时间是10.0148秒

2.5916 mean bytes/connection
说明每一连接平均传输的数据量289884/49=5916

3.4.89274 fetches/sec, 28945.5 bytes/sec
说明每秒的响应请求为4.89274,每秒传递的数据为28945.5 bytes/sec

4.msecs/connect: 28.8932 mean, 44.243 max, 24.488 min
说明每连接的平均响应时间是28.8932 msecs,最大的响应时间44.243 msecs,最小的响应时间24.488 msecs

5.msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min

 6、HTTP response codes: code 200 -- 49
说明打开响应页面的类型,如果403的类型过多,那可能要注意是否系统遇到了瓶颈。
特殊说明:这里,我们一般会关注到的指标是fetches/sec、msecs/connect
他们分别对应的常用性能指标参数Qpt-每秒响应用户数和response time,每连接响应用户时间。测试的结果主要也是看这两个值。当然仅有这两个指标并不能完成对性能的分析,我们还需要对服务器的cpu、men进行分析,才能得出结论

Sample run:


% ./http_load -rate 5 -seconds 10 urls
49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds
5916 mean bytes/connection
4.89274 fetches/sec, 28945.5 bytes/sec
msecs/connect: 28.8932 mean, 44.243 max, 24.488 min
msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min
HTTP response codes:code 200 -- 49


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445228.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面向对象设计与分析40讲(16)静态工厂方法模式

前面我们介绍了简单工厂模式,在创建对象前,我们需要先创建工厂,然后再通过工厂去创建产品。 如果将工厂的创建方法static化,那么无需创建工厂即可通过静态方法直接调用的方式创建产品: // 工厂类,定义了静…

搜索详解

搜索 一.dfs和bfs简介 深度优先遍历(dfs) 本质: 遍历每一个点。 遍历流程: 从起点开始,在其一条分支上一条路走到黑,走不通了就往回走,只要当前有分支就继续往下走,直到将所有的点遍历一遍。 剪枝&a…

Python外(5)-for-enumerate()-zip()

for循环小技巧技巧1:enumerate()技巧2:打包两个可遍历数据,一起循环-zip()技巧1:enumerate() 在使用pytorch训练网络的过程中,官方教程给出了 for i, data in enumerate(trainloader, 0): 这涉及到enumerate函数的使用…

特征工程总结

目录1 特征工程是什么? 2 数据预处理   2.1 无量纲化     2.1.1 标准化     2.1.2 区间缩放法     2.1.3 标准化与归一化的区别   2.2 对定量特征二值化   2.3 对定性特征哑编码   2.4 缺失值计算   2.5 数据变换 3 特征选择   3.1 Filter …

Jmeter测试并发https请求成功了

Jmeter2.4 如何测试多个并发https请求,终于成功了借此机会分享给大家 首先要安装jmeter2.4版本的,而且不建议大家使用badboy,因为这存在兼容性问题。对于安装,我就不讲了,我就说说如何测试https,想必大家都…

关系数据库——sql基础1定义

关系数据库标准语言SQL 基本概念 SQL语言是一个功能极强的关系数据库语言。同时也是一种介于关系代数与关系演算之间的结构化查询语言(Structured Query Language),其功能包括数据定义、数据查询、数据操纵和数据控制。 SQL的特点&#xff…

libcurl编程

一、curl简介 curl是一个利用URL语法在命令行方式下工作的文件传输工具。它支持的协议有:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证, HTTP上传, 代理服…

大数据学习(09)--Hadoop2.0介绍

文章目录目录1.Hadoop的发展与优化1.1 Hadoop1.0 的不足与局限1.2 Hadoop2.0 的改进与提升2.HDFS2.0 的新特性2.1 HDFS HA2.2 HDFS Federation3. 新一代的资源管理器YARN3.1 MapReduce1.0 缺陷3.2 YARN的设计思路3.3 YARN 体系结构3.4 YARN工作流程3.5 YARN框架与MapReduce1.0框…

Java多线程常用方法

start()与run() start() 启动线程并执行相应的run()方法 run() 子线程要执行的代码放入run()方法 getName()和setName() getName() 获取此线程的名字 setName() 设置此线程的名字 isAlive() 是判断当前线程是否处于活动状态。活动状态就是已经启动尚未终止。 curren…

MachineLearning(2)-图像分类常用数据集

图像分类常用数据集1 CIFAR-102.MNIST3.STL_104.Imagenet5.L-Sun6.caltech-101在训练神经网络进行图像识别分类时,常会用到一些通用的数据集合。利用这些数据集合可以对比不同模型的性能差异。下文整理常用的图片数据集合(持续更新中)。基本信息对比表格…

Linux网络编程实例详解

本文介绍了在Linux环境下的socket编程常用函数用法及socket编程的一般规则和客户/服务器模型的编程应注意的事项和常遇问题的解决方法,并举了具体代 码实例。要理解本文所谈的技术问题需要读者具有一定C语言的编程经验和TCP/IP方面的基本知识。要实习本文的示例&…

python的命令解析getopt.getopt()函数分析

【转自http://hi.baidu.com/javalang/blog/category/Python】 可以参考http://docs.python.org/lib/module-getopt.html # -*- coding: cp936 -*-import getoptimport sysdef usage():print Help Information:-h: Show help information-xValue:...if __name____main__:#set d…

博弈论基础

博弈论总结 什么是博弈论: 多人进行博弈,假设每个人都采取最优策略,一定有一个人胜出,在知道初态及规则的情况下,求解出 何人胜出的一类问题的理论及方法。 博弈论的一些性质 P点:必败点,N…

矩阵论-范数理论及其应用

范数理论及其应用2.1向量范数及其性质2.2矩阵范数本系列博文主要总结学习矩阵论的心得笔记,参考数目《矩阵论》–张凯院;整个文章的整理体系参照行书过程。范数–非负实数,用于衡量线性空间元素(如:向量,矩…

大数据学习(09)--spark学习

文章目录目录1.spark介绍1.1 spark介绍1.2 scale介绍1.3 spark和Hadoop比较2.spark生态系统3.spark运行框架3.1 基本概念3.2 架构的设计3.3 spark运行基本流程3.4 spark运行原理3.5 RDD运行原理3.5.1 设计背景3.5.2 RDD概念和特性3.5.3 RDD之间的依赖关系3.5.4 stage的划分3.5.…

探索 Pexpect

概述 通过本系列第一部分 《探索 Pexpect,第 1 部分:剖析 Pexpect 》(请参阅参考资料)的介绍,相信大家已经对 Pexpect 的用法已经有了比较全面的了解,知道 Pexpect 是个纯 Python 语言实现的模块&#xff…

Python的Pexpect详解 [图片]

Pexpect 是一个用来启动子程序并对其进行自动控制的纯 Python 模块。 Pexpect 可以用来和像 ssh、ftp、passwd、telnet 等命令行程序进行自动交互。继第一部分《探索 Pexpect,第 1 部分:剖析 Pexpect 》介绍了 Pexpect 的基础和如何使用后,本…

关系数据库——sql增删改

数据的插入 插入元祖 --1. 表名后没有指定属性列:表示要插入的是一条完整的元组,且属性列属性与表定义中的顺序一致 insert into student values (201215128, 陈东, 18, 男, IS);--2. 在表明后指定要插入数据的表名及属性列,属性列的顺序可…

机器学习中的聚类方法总结

聚类定义 定义 聚类就是对大量未知标注 的数据集,按数据 的内在相似性将数据集划分为多个类别,使 类别内的数据相似度较大而类别间的数据相 似度较小。是无监督的分类方式。 聚类思想 给定一个有N个对象的数据集,构造数据的k 个簇&#x…

学点数学(1)-随机变量函数变换

随机变量函数变换本文介绍一维随机变量函数变换,参考文献:https://wenku.baidu.com/view/619f74ac3186bceb19e8bbd0.html变换TTT作用于随机变量XXX,产生随机变量YYY. T:X−>Y或者写为yT(x)T:X->Y 或者写为 yT(x)T:X−>Y或者写为yT(x…