zoukankan      html  css  js  c++  java
  • Webbench结果分析及原理

    1.结果

    $ webbench -c 100 -t 10 http://baidu.com/
    
    Webbench - Simple Web Benchmark 1.5
    Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
    
    Benchmarking: GET http://baidu.com/
    100 clients, running 10 sec.
    
    Speed=55764 pages/min, 14706 bytes/sec.
    Requests: 386 susceed, 8908 failed.
    -c表示并发数,-t表示运行测试URL的时间(秒)
    每秒钟响应请求数
    :55764 pages/min,每秒钟传输数据量14706bytes/sec. 并发100运行10秒后产生的TCP连接数386个,已经显示有8908个连接failed了,说明超负荷了。

    webbench.c中根据-c参数n,Run <n> HTTP clients at once. Default one.

    马上运行n哥HTTP用户,也就是fork n个子进程,每个子进程分别调用benchcore在要求时间内循环发送请求报文。

    1.1 影响结果的因素?如何提高?

    2.实现原理

    https://blog.csdn.net/weixin_38333555/article/details/81457817

    Webbench实现的核心原理是:父

    1. 进程fork若干个子进程,每个子进程在用户要求时间或默认的时间内对目标web循环发出实际访问请求;
    2. 父子进程通过管道进行通信,子进程通过管道写端向父进程传递在若干次请求访问完毕后记录到的总信息;
    3. 父进程通过管道读端读取子进程发来的相关信息,子进程在时间到后结束,父进程在所有子进程退出后统计并给用户显示最后的测试结果,然后退出。

    1.命令行解析,getopt()

    2.构造http请求报文build_request

    3.压力测试:bench函数

     每个fork的子进程都调用benchcore函数,在要求时间内发送请求报文,改函数可记录请求的成功次数、失败次数、以及服务器回复的字节数。

  • 相关阅读:
    yum提示another app is currently holding the yum lock;waiting for it to exit
    关于CentOS下 yum包下载下的rpm包放置路径
    Linux查看History记录加时间戳小技巧
    swift能干什么,不能干什么及相关概念
    yum改成网易的源
    dd测试硬盘性能
    对象存储
    IDEA的常用快捷键
    httpFS访问
    关于hadoop: command not found的问题
  • 原文地址:https://www.cnblogs.com/BlueBlueSea/p/14986710.html
Copyright © 2011-2022 走看看