Web压力测试工具—webbench
admin 于 2018年08月18日 发表在 C/C++开发笔记

1. webbench源码下载

2. 源码编译

make


3. 安装webbench

sudo make install


4. 测试webbench

webbench -c 并发数 -t 运行测试时间 URL
webbench -c 10 -t 10 http://www.baidu.com/index.html


输出参数:

Pages/min:指的输出页数/分

bytes/sec:是指比特/秒

这两个指标能反应网站的访问速度。susceed和failed表示请求的成功数目和失败数目,失败的原因虽然没有日志但是应该能猜出是get请求得不到200的响应。

参考博文:

https://www.cnblogs.com/zhunl/articles/7543318.html

https://www.cnblogs.com/chenliyang/p/6633739.html

5. 源码介绍

(1) fork()函数

进程是计算机中的程序关于某数据集合上的一次活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

经典定义: 进程是一个执行中的程序的实例。系统中的每个程序都是运行在某个进程上下文(context)中的。

进程拥有:

<1> 独立的逻辑控制流。(即:某时刻利用cpu来执行指令)

<2> 私有的地址空间。(即:存储器的一段地址空间)

内核为每个进程维持一个上下文,通过上下文切换的方式来从一个进程跳转到另一个进程,上下文切换也是进程并发执行的基础。

函数特点

pid_t fork(void)

<1> fork函数只有父进程执行一次,fork之后代码,父进程都执行一遍;

<2> fork函数有两次返回,父进程返回子进程的PID,子进程返回0;

<3> fork函数创建子进程时,若父进程有文件描述符,子进程也会复制文件描述符,但是不复制文件表。

<4> 每个进程都有一个进程id(大于0的整数),getpid()可以返回进程id,getppid()返回父进程的pid。

(2) 子进程

启动子进程的方法:

fork -> 创建子进程(复制父进程) -> 启动子进程vfork/execl -> 启动全新的子进程

父子进程关系:

fork之后,父子进程同时运行,如果子进程先结束,子进程会给父进程发一个信号,父进程负责回收子进程。

fork之后,父子进程同时运行,若父进程先结束,子进程变为孤儿进程,会认为进程1(init)为新父进程。

参考博文:

https://blog.csdn.net/heli200482128/article/details/51462821

(3) 进程间通信——pipe()

管道是一种将两个进程之间的标准输入和输出连接起来的机制,从而提供一种让多个进程间通信的方法,当进程创建管道时,每次都需要提供两个文件描述符来操作管道。其中一个对管道进行写操作,另一个对管道进行读操作。

对管道的读写与一般的IO函数一致,使用write()函数写入数据,使用read()读取数据。

参考博文:

https://blog.csdn.net/tf_apologize/article/details/70158772

6.关于webbench-1.5_笔者注释版下载(点击下载附件

注意:本站所有文章除特别说明外,均为原创,转载请务必以超链接方式并注明作者出处。 标签:C/C++,webbench