Linux中部署服务器Tinyhttpd并用Webbench测试抗压性能

本文介绍如何在CentOS环境中搭建Tinyhttpd轻量级HTTP服务器,并利用Webbench工具对其进行性能测试。主要内容包括Tinyhttpd和Webbench的编译安装步骤、常见问题解决办法及测试结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文链接:http://www.scholat.com/vpost.html?pid=7337

【背景知识】

     webbench是由Lionbridge公司开发的知名的网站压力测试工具。它能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况。webbench的标准测试可以向我们展示服务器的两项内容:每秒钟相应请求数和每秒钟传输数据量。webbench不但能具有便准静态页面的测试能力,还能对动态页面(ASP,PHP,JAVA,CGI)进 行测试的能力。还有就是他支持对含有SSL的安全网站例如电子商务网站进行静态或动态的性能测试。Webbench最多可以模拟3万个并发连接去测试网站的负载能力。

     Tinyhttpd是超轻量型的http server。这里我将尝试部署一个服务器,并用Webbecn测试其性能。

任务记录

 (1)在自己的VMware虚拟机里centos中,下载Tinyhttpd源码,编译并安装这个超轻量型的http server;

(2) 然后编译安装Webbench,去测试Tinyhttpd的性能;   

(3)记录过程,并汇报遇到的问题和解决问题的方法,还有测试结果。

过程:

  http://sourceforge.net/projects/tinyhttpd/

1:将本机中的Tinyhttpd源码拷到本地 /usr/local/src并解压。 tinyhttpd-0.1.0.tar.gz解压之后,发现tinyhttpd-0.1.0文件夹中有makefile文件,没有./configure文件,说明可以直接make编译。编译之前需要参照 httpd.c中注释行的要求对httpd.c和makefile文件进行修改。编译之后生成了可执行文件httpd。Httpd是可执行文件,不用再安装了,直接在/usr/local/src/tinyhttpd-0.1.0下执行./httpd 就运行起了一个websever。在浏览器中输入虚拟机IP即可进入web页面。


注意事项:

1.tinyhttpd在linux下运行,可以不按照源代码提供的方法,按照使用pthread的方法是可行的。

参考:http://blog.youkuaiyun.com/cqu20093154/article/details/41025885  

2.测试运行的时候  可以用的本地网址有四个 都是可以的  
    127.0.0.1:端口 localhost:端口 本地Ip地址也行的 但是不知道为什么虚拟机下面有两个地址 eth0,但是在windows下去输入网址访问是不行的。

3.http请求首先获取的html文件,然后文件里面点击submit,form action 会调用color.cgi这个perl脚本文件,注意,在centos下面  perl解释器路径的声明行是 /bin/usr/perl  可以使用whereis查询具体路径 ,必须修改脚本上面的路径声明才行


2: 接下来编译安装Webbench。首先将webbench-1.5.tar.gz拷贝到/usr/local/src下并解压。直接make编译,此时如果报错“/bin/sh: ctags: command not found”则需要安装ctags,用语句” yum –y install ctags”。编译完成生成Webbench文件,安装“make install” ,如果报错“cannot create regular file `/usr/local/man/man1′: No such file ordirectory”,则需创建“/usr/local/man/man1”文件。Make install安装成功则:

图2:webbench安装成功

    3:现在开始用用Webbench测试Tinyhttpd的性能。

       webbench -c 500 -t 30 http://192.168.195.128:80/

遇到的问题具体参考原网站


脚本使用简介: /******************************************************************************** void tcc_tell_user(long len,const char *fmt,...) void tcc_init_stochastic() int tcc_produce_stochastic(int a,int b) tcc_sscanf tcc_sprintf tcc_strcpy tcc_strcmp tcc_strstr tcc_strcat tcc_memcpy tcc_memcmp tcc_memset tcc_strlen tcc_malloc tcc_free *********************************************************************************/ void get_hex_string(unsigned char *in_dat,int in_len,char *ou_hex) { int i; char *t=(char*)tcc_malloc(8); ou_hex[0]=0; for(i=0;i<in_len;i++) { if(i%0x04==0 && i!=0) tcc_strcat(ou_hex," "); if(i%0x10==0 && i!=0) tcc_strcat(ou_hex,"\n"); tcc_sprintf(t,"X ",in_dat[i]); tcc_strcat(ou_hex,t); } tcc_free(t); } void msg_init() { // tcc_init_stochastic(); } void *msg_short_connect_form_data(long t,long s,long c,long *len) { char *data=(char*)tcc_malloc(128); *len=128; *(long*)(data+0x00)=128; *(long*)(data+0x04)=1; *(long*)(data+0x08)=0; *(long*)(data+0x0C)=0; int n=tcc_produce_stochastic(100,50000); tcc_sprintf(data+0x10,"hello%d",n); tcc_strcpy(data+0x20,"123456"); return data; } int msg_short_connect_recv_data(long s,long c,void *dat,long len) { unsigned char *ou_dat=(unsigned char*)tcc_malloc(5120); get_hex_string(dat,len,ou_dat); tcc_tell_user(5120,"s:%d c:%d len:%d\n%s\n\n",s,c,len,ou_dat); tcc_free(ou_dat); return 1; } void *msg_long_connect_form_data(long op,long s,long c,long *len) { char *data=(char*)tcc_malloc(128); *len=128; *(long*)(data+0x00)=128; *(long*)(data+0x04)=1; *(long*)(data+0x08)=0; *(long*)(data+0x0C)=0; int n=tcc_produce_stochastic(100,50000); tcc_sprintf(data+0x10,"hello%d",n); tcc_strcpy(data+0x20,"123456"); return data; } int msg_long_connect_recv_data(long s,long c,void *dat,long len) { unsigned char *ou_dat=(unsigned char*)tcc_malloc(5120); get_hex_string(dat,len,ou_dat); tcc_tell_user(5120,"s:%d c:%d len:%d\n%s\n\n",s,c,len,ou_dat); tcc_free(ou_dat); return 1; } void msg_free_data(void *arg) { tcc_free(arg); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值