webbench

经典C语言项目Webbench详解

生来就可爱ヽ(ⅴ<●) 提交于 2020-08-11 03:54:53
Webbench是一个在linux下使用的非常简单的命令行网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。 这个项目由纯C实现,使用linux系统调用。命令行参数如下: 项目地址: https://github.com/EZLippi/WebBench 由于C语言没有原生的HTTP包,需要用字符串实现HTTP协议,所以是非常麻烦的。另外还需要使用linux系统下的多进程以及管道。这些都是这个项目的难点。 如果直接用Go语言来写,会非常简单。因为Go语言这些都有现成的库。 项目整体流程 1.解析程序运行时的参数。 2.根据选择的http协议组装报文。 3.开始压力测试。 4.获取压力测试的结果。 1.解析程序运行时的参数 其实这就是传说中的argc argv[],不过程序在此处用到了C语言的getopt_long函数。想要了解如何解析Linux命令行参数,去查getopt_long这个函数 2.组包 HTTP请求协议包使用自己组包的方法,这也是C语言比较麻烦的地方。 3.压力测试 先检查服务器是否可以联通,随后创建供父进程和子进程通信的管道。 子进程根据配置发送报文,并且通过管道向父进程回报结果。 4.统计结果 这部分的代码比较简单,子进程通过管道来向父进程返回结果

MySql_SQLyog+SQL Assistant实现智能提示

不羁的心 提交于 2020-07-28 17:55:27
相信用过sqlserver+SQL Assistant的同学都知道其智能提示多么方便,但是转到mysql后,无论是使用navicat还是webbench都无法实现较好的智能提示效果, 最终在网上找到使用SQLyog+SQL Assistant实现类似的效果 一、使用软件 1、SQLyog:需要32位版本,64位试过貌似无效 2、SQL Assistant 7.2 3、libmysql.dll 二、执行步骤一(配置SQL Assistant ) 2.1 选择SQL Editor 2.2 MySQL DLL需要定位到libmysql.dll路径才行 2.3 步骤一执行完后就可以在SQL Edit窗体执行sql并有智能提示了,但是中文有乱码 三、执行步骤二(配置SQLyog ) 3.1 SQLyog窗体点击快捷键 Ctrl+Shift+F5,按如下方式配置 都安装32位版本 弹出该窗体的方法:先安装sqlyog并启动(安装时选择Professional Edition,不要选择Enterprise Edition),在安装SQL assistant(也选择Professional 版本) 3.2 智能提示 来源: oschina 链接: https://my.oschina.net/u/4266664/blog/4302053

Web性能压力测试工具之WebBench详解

浪尽此生 提交于 2020-04-20 00:25:23
webbench的标准测试可以向我们展示服务器的两项内容:每秒钟响应请求数和每秒钟传输数据量。 webbench不但能具有便准静态页面的测试能力,还能对动态页面(ASP, PHP , JAVA ,CGI)进 行测试的能力。 他支持对含有SSL的安全网站例如电子商务网站进行静态或动态的性能测试。 Webbench最多可以模拟3万个并发连接去测试网站的负载能力。 官方主页: http://home.tiscali.cz/~cz210552/webbench . html 1、WebBench安装 wget http: // home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz tar -zxvf webbench- 1.5 . tar .gz cd webbench - 1.5 make make install 安装中遇到的问题及解决方法 ctags * .c /bin/ sh : ctags: command not found make : [tags] Error 127 (ignored) 意思是缺少ctags命令,用apt install ctags安装即可。 2、测试WebBench webbench webbench [option]... URL -f|--force Don ' t wait for

(总结)Web性能压力测试工具之WebBench详解

这一生的挚爱 提交于 2020-04-07 07:41:09
PS:在运维工作中,压力测试是一项很重要的工作。比如在一个网站上线之前,能承受多大访问量、在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验。但是,在压力测试中存在一个共性,那就是压力测试的结果与实际负载结果不会完全相同,就算压力测试工作做的再好,也不能保证100%和线上性能指标相同。面对这些问题,我们只能尽量去想方设法去模拟。所以,压力测试非常有必要,有了这些数据,我们就能对自己做维护的平台做到心中有数。 Webbench 是知名的网站压力测试工具,它是由Lionbridge公司(http://www.lionbridge.com)开发。 Webbench能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况。webbench的标准测试可以向我们展示服务器的两项内容: 每秒钟相应请求数和每秒钟传输数据量。 webbench不但能具有便准静态页面的测试能力,还能对动态页面(ASP,PHP, JAVA ,CGI)进 行测试的能力。还有就是他支持对含有SSL的安全网站例如电子商务网站进行静态或动态的性能测试。 Webbench最多可以模拟3万个并发连接去测试网站的负载能力。 官方主页:http://home.tiscali.cz/~cz210552/webbench.html 官方介绍: Web Bench is very simple tool for

(总结)Web性能压力测试工具之WebBench详解

两盒软妹~` 提交于 2020-04-07 05:44:55
PS:在运维工作中,压力测试是一项很重要的工作。比如在一个网站上线之前,能承受多大访问量、在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验。但是,在压力测试中存在一个共性,那就是压力测试的结果与实际负载结果不会完全相同,就算压力测试工作做的再好,也不能保证100%和线上性能指标相同。面对这些问题,我们只能尽量去想方设法去模拟。所以,压力测试非常有必要,有了这些数据,我们就能对自己做维护的平台做到心中有数。 Webbench 是知名的网站压力测试工具,它是由Lionbridge公司( http ://www.lionbridge.com)开发。 Webbench能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况。webbench的标准测试可以向我们展示服务器的两项内容: 每秒钟相应请求数和每秒钟传输数据量。 webbench不但能具有便准静态页面的测试能力,还能对动态页面(ASP,PHP, JAVA ,CGI)进 行测试的能力。还有就是他支持对含有SSL的安全网站例如电子商务网站进行静态或动态的性能测试。 Webbench最多可以模拟3万个并发连接去测试网站的负载能力。 官方主页:http://home.tiscali.cz/~cz210552/webbench.html 官方介绍: Web Bench is very simple tool for

(总结)Web性能压力测试工具之WebBench详解

蹲街弑〆低调 提交于 2020-04-06 08:44:01
PS:在运维工作中,压力测试是一项很重要的工作。比如在一个网站上线之前,能承受多大访问量、在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验。但是,在压力测试中存在一个共性,那就是压力测试的结果与实际负载结果不会完全相同,就算压力测试工作做的再好,也不能保证100%和线上性能指标相同。面对这些问题,我们只能尽量去想方设法去模拟。所以,压力测试非常有必要,有了这些数据,我们就能对自己做维护的平台做到心中有数。 Webbench 是知名的网站压力测试工具,它是由Lionbridge公司( http ://www.lionbridge.com)开发。 Webbench能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况。webbench的标准测试可以向我们展示服务器的两项内容: 每秒钟相应请求数和每秒钟传输数据量。 webbench不但能具有便准静态页面的测试能力,还能对动态页面(ASP,PHP, JAVA ,CGI)进 行测试的能力。还有就是他支持对含有SSL的安全网站例如电子商务网站进行静态或动态的性能测试。 Webbench最多可以模拟3万个并发连接去测试网站的负载能力。 官方主页:http://home.tiscali.cz/~cz210552/webbench.html 官方介绍: Web Bench is very simple tool for

webbench工具使用和源码分析

风格不统一 提交于 2020-04-06 08:00:54
Webbench是有名的网站压力测试工具,它是由Lionbridge公司(http://www.lionbridge.com)开发.它的帮助文件和文档请到:www.webbench.com上查看. Webbech能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况.webBech的标准测试可以向我们展示服务器的两项 内容:每秒钟相应请求数和每秒钟传输数据量.webbench不但能具有便准静态页面的测试能力,还能对动态页面(ASP,PHP,JAVA,CGI)进 行测试的能力.还有就是他支持对含有SSL的安全网站例如电子商务网站进行静态或动态的性能测试. 下载: 官方网站:http://home.tiscali.cz/~cz210552/webbench.html 安装: tar zxvf webbench-1.5.tar.gz cd webbench-1.5 make;make install 使用: webbench -c 200 -t 20 http://www.doglover.net/ 其中-c 200 代表200个并发用户进行访问-t 20 即20S,访问的url为 http://www.doglover.net/ ;运行20S之后可以看到如下的结果: 可以根据打印中的信息来判断网站的抗压情况。另外使用 webbench -help 可以获得更多的使用信息

golang与node.js的http对比测试

╄→尐↘猪︶ㄣ 提交于 2020-03-12 17:26:51
去年的时候,曾经简单对比了一下golang和nodejs的http模块的性能,见: golang与node.js的http对比测试 那时golang还没发布go1,http模块比nodejs差得很远。 go1出来已经有一段时间了,我知道go的http模块性能已经有比较大的提升,但是最近依然见到有人提起去年写的那篇文章,为避免产生对golang的误解,对于go1的最新测试结果如下。 测试是在Ubuntu 12.04 64位系统下进行的: qleelulu@nb:~$ uname -a Linux nb 3.2.0-25-generic #40-Ubuntu SMP Wed May 23 20:30:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux qleelulu@nb:~$ sudo dmidecode | grep CPU Socket Designation: CPU Version: Intel(R) Core(TM) i5 CPU M 480 @ 2.67GHz (注:双核4线程) go的版本: qleelulu@nb:~$ go version go version go1 nodejs的版本: qleelulu@nb:~$ node -v v0.8.6 单CPU测试 nodejs是单进程,只使用一个CPU

值得学习的C开源项目

给你一囗甜甜゛ 提交于 2020-03-03 00:22:45
                                         C开源项目学习                                                                                           原文: 戳这里   1. Webbench   Webbench 是一个在 linux 下使用的非常简单的网站压测工具。它使用 fork ()模拟多个客户端同时访问我们设定的 URL,测试网站在压力下工作的性能,最多可以模拟 3 万个并发连接去测试网站的负载能力。Webbench 使用C语言编写, 代码实在太简洁,源码加起来不到 600 行。下载链接: http://home.tiscali.cz/~cz210552/webbench.html    2. Tinyhttpd   tinyhttpd 是一个超轻量型 Http Server,使用C语言开发,全部代码只有 502 行(包括注释),附带一个简单的 Client,可以通过阅读这段代码理解一个 Http Server 的本质。下载链接: http://sourceforge.net/projects/tinyhttpd/    3. cJSON   cJSON 是C语言中的一个 JSON 编解码器,非常轻量级,C文件只有 500 多行,速度也非常理想。

源码阅读笔记:webbench-1.5

我们两清 提交于 2020-02-29 08:19:49
WebBench是个比较简单的程序,只有两个源文件:webbench.c, socket.c。 对源码重新排版一下,方便阅读: /* * (C) Radim Kolar 1997-2004 * This is free software, see GNU Public License version 2 for * details. * * Simple forking WWW Server benchmark: * * Usage: * webbench --help * * Return codes: * 0 - sucess * 1 - benchmark failed (server is not on-line) * 2 - bad param * 3 - internal error, fork failed * */ #include "socket.c" #include <unistd.h> #include <sys/param.h> #include <rpc/types.h> #include <getopt.h> #include <strings.h> #include <time.h> #include <signal.h> /* * 超时标记,当被设置为 1 时,所有子进程退出 * volatile: * - 让系统总是从内存读取数据, * -