使用http_load来给Linux系统的服务器做压力测试

使用http_load来给Linux系统的服务器做压力测试,第1张

介绍个http_load压力测试工具,http_load,类似的工具还有webbench、ab、Siege。

1、下载

官方网站:http://acmecom/software/http_load/

复制代码

代码如下:

cd /root

wget http://acmecom/software/http_load/http_load-12mar2006targz

tar xzf http_load-12mar2006targz

2、安装

复制代码

代码如下:

cd http_load-12mar2006

make

执行完make,会在当前目录生成一个http_load二进制文件。

3、使用方法

复制代码

代码如下:

root@www:~/http_load-12mar2006# /http_load --help

usage: /http_load [-checksum] [-throttle] [-proxy host:port] [-verbose] [-timeout secs] [-sip sip_file]

-parallel N | -rate N [-jitter]

-fetches N | -seconds N

url_file

One start specifier, either -parallel or -rate, is required

One end specifier, either -fetches or -seconds, is required

主要参数说明:

-parallel 简写-p :含义是并发的用户进程数。

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

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

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

选择参数时,-parallel和-rate选其中一个,-fetches和-seconds选其中一个。

示例:

http_load -parallel 50 -s 10 urlstxt

这段命令行是同时使用50个进程,随机访问urlstxt中的网址列表,总共访问10秒。

http_load -rate 50 -f 5000 urlstxt

每秒请求50次,总共请求5000次停止。

4、基本的返回值

(1)49 fetches, 2 max parallel, 289884 bytes, in 100148 seconds

说明在上面的测试中运行了49个请求,最大的并发进程数是2,总计传输的数据是289884bytes,运行的时间是100148秒

(2)5916 mean bytes/connection

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

(3)489274 fetches/sec, 289455 bytes/sec

说明每秒的响应请求为489274,每秒传递的数据为289455 bytes/sec

(4)msecs/connect: 288932 mean, 44243 max, 24488 min

说明每连接的平均响应时间是288932 msecs,最大的响应时间44243 msecs,最小的响应时间24488 msecs

(5)msecs/first-response: 635362 mean, 81624 max, 57803 min

(6)HTTP response codes: code 200 -- 49

说明打开响应页面的类型,如果403的类型过多,那可能要注意是否系统遇到了瓶颈。

特殊说明:这里,我们一般会关注到的指标是fetches/sec、msecs/connect

他们分别对应的常用性能指标参数Qpt-每秒响应用户数和response time,每连接响应用户时间。测试的结果主要也是看这两个值。当然仅有这两个指标并不能完成对性能的分析,我们还需要对服务器的cpu、men进行分析,才能得出结论

5、如果你需要测试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://wwwopensslorg/ 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

pfind -name sslh

/usr/include/openssl/sslh

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

本Guide利用Eclipse及Ant建立简单Web Service演示Web Service基本发程:

1系统条件:

Eclipse Java EE IDE for Web Developers

Java SE 6

Windows XP

2基本环境搭建:

1)Java SE6 JDK安装:载Java SE6 JDK双击安装默认选项进行安装即

2)Eclipse安装与配置:

安装直接解压

配置处两点Window>Preferences>Java>Installed JREs确保设置:

安装路径能略同

Window>Preferences>Java>Compiler 确保设置:

3建立Server端工程相关包与类:

创建Java Project命名wsServerHelloWorld:

项目建立包:orggnuhpcwsServer

包边建立类:SayHello

SayHellojava文件输入代码:

package orggnuhpcwsServer;

import javaxjwsWebService;

@WebService

public class SayHello {

private static final String SALUTATION = "Hello";

public String getGreeting(String name) {

return SALUTATION + " " + name;

}

}

其注意@WebService 称作annotation或者metadataJava SE 5Web Services Metadata Specification引入Java SE 6于Web Services规范升级及JAX-WS(Java API for XML Web Services)20规范些升级使我Web Services创建调用变更加容易使用些新功能我仅仅使用简单Annotations注释Java类创建Web Services发者其类前用该annotations指定类告诉runtime engineWeb Service式操作使能该类annotations产布署Web ServiceWSDL映射annotationsJava源代码与代表Web ServiceWSDL元素连接起

4使用Ant产Server端代码:

首先项目新建文件:buildxml使用OpenWith>AntEditor打输入脚本代码:

<arg line="-cp /bin -keep -s /src -d /bin

orggnuhpcwsServerSayHello"/>

default指定默认执行Targetwsgen,wsgen创建能够使用WebService类所用于WebService发布源代码文件经编译二进制类文件WSDL符合规范该类WebService

Target名称wsgen具体执行命令参数:

-cp 类路径

-keep产java文件

-s 产源文件放哪

-d 产输问价放哪

使用Ant Build选项运行:

功执行提示我刷新Project

我Project区域看结:

5布Web Service

orggnuhpcwsServer建立类RunService:

package orggnuhpcwsServer;

import javaxxmlwsEndpoint;

public class RunService {

/

@paramargs

/

public static void main(String[] args) {

Systemoutprintln("SayHello Web Service started");

Endpointpublish("" ,

new SayHello());

}

}

运行Run As>Java Application我结说明web serviceServer端已经启

6查看WSDL:

Window>Show View>Other>General>Internal Web Browser其输入:wsdl

看看底WSDL都记录哪些信息看完停止该Server

7监测Server

我创建完Server用Eclipse Web Services Explorer监测Server

Window>Open Perspective>Other >JavaEE

打Eclipse Web Services Explorer

点击右角WSDL Page按钮:

单击WSDL MainURL输入:wsdl 按Go按钮现视图:

我触发Web Service操作:点击getGreetings添加参数比gnuhpc点击Go按钮:

8创建Client端 工程相关包与类:

创建Java Project命名wsClientHelloWorld项目建立包:orggnuhpcwsClient

9使用Ant产Client代码框架:

编写Web service使用工具利用WSDL进行调用客户端桩;或者使用底层API手编写Web service前者便者灵现我通前者做说明:

新建文件buildxml

New>File>buildxml

<arg line="-keep -s /src -p orggnuhpcwsClient

-d /bin wsdl"/>

注意:wsgen 支持 Java class 创建 Web serviceswsimport 支持 WSDL 创建 Web services别应于 JAX-RPC 式 Java2WSDL WSDL2Java要根据发布WSDL进行创建要先运行RunServer原

运行ServerRunService : Run As>Java Application>

运行该Ant脚本产Client代码:Run As>Ant Build

运行功提示:

代码:

步读取WSDL并客户端桩些桩我代码所用Java类接口些桩给服务器端功能提供客户端接口例我服务器提供Maths服务该服务带叫做add我客户端代码调用桩桩实现该使用参数封装Java调用变Webservice请求请求基于HTTP发送给服务器且使用SOAP作RPC协议监听服务器接收该SOAP消息(十八九)其转换服务器处调用

需要socket(套接字)编程、HTTP协议的知识,实现一个最简单的HTTP服务器,其实就是根据HTTP协议的通信规则来发送socket数据,往往是绑定(用bind调用)一个socket(套接字)然后监听(用listen调用)80端口,具体任何实现可以参考网上的一些简单的代码。之所以说这是最简单的HTTP服务器,是因为HTTP服务器还要处理并发、缓存等功能,更进一步还要支持某种动态脚本比如PHP的模块。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 使用http_load来给Linux系统的服务器做压力测试

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情