목차
测试环境概要
内容概要
关于ApacheBench(以下简称ab)
ab参数详解
Server Software
Server Hostname
Server port
SSL/TLS Protocol
Document Path
Document Length
Concurrency Level
Time taken for tests
Complete requests
Failed requests
Total body sent
HTML transferred
Request per second
Time per request
Transfer rate
Connection Times(ms)
Percentage of the requests served within a certain time (ms)
使用 gnuplot 工具可以直观的根据图标分析
基本的使用示例
模拟GET请求 -n1000
模拟POST请求 -n1000
模拟并发 -n1000 -c20 (c
查看返回头信息 -n1000 -v 3 (-v 可选2、3、4)
图标展示结果 -n1000 -g g.tsv
参考链接
웹 프론트엔드 HTML 튜토리얼 前端社区带你了解CSS 加载新方式_html/css_WEB-ITnose

前端社区带你了解CSS 加载新方式_html/css_WEB-ITnose

Jun 21, 2016 am 08:51 AM

已有 21 次阅读 2016-04-13 12:43 | 系统分类:性能优化 |

测试环境概要

本次测试基于以下环境:

  • ApacheBench(v2.3)

  • Mac OS X 10.10.5

  • 2.7 GHz Intel Core i5

  • Memory 8GB

内容概要

该文主要收集ab test的各项参数的具体含义并举例介绍ab test的基本使用方法.

关于ApacheBench(以下简称ab)

官方释义如下: ab is a tool for benchmarking your Apache Hypertext Transfer Protocol (HTTP) server 简单来说就是一款压力测试工具, 可以通过创建多线程模拟多用户同时请求服务器行为, 从而实现对目标服务器进行压力测试的目标.对 https://github.com 网站模拟压力测试的效果图如下: 

ab参数详解

联系上图对ab测试的各项参数进行阐述:

Server Software

被测Web服务器软件名称, 它来自http响应数据的头信息.

Server Hostname

请求的URL中的主机部分名称,它来自http请求数据的头信息.

Server port

被测Web服务器软件的监听端口.

SSL/TLS Protocol

客户端与服务器端的协商头信息, 仅当使用了SSL协议时才会打印此信息, 例如此处测试的Github网站采用的是 https 协议, 使用了SSL协议, 因此ab打印出了此信息.

Document Path

请求URL中的根绝对路径, 此处为 / .

Document Length

首次响应数据的正文长度, 单位为字节.

Concurrency Level

并发用户数, 命令中表现为 -c 后面跟着的参数.

Time taken for tests

所有请求的总耗时, 总请求表现为 -n 后面的参数, 从首个socket被创建至接受到最后一个响应的耗时.

Complete requests

总请求数, 与命令中 -n 后面的参数一致.

Failed requests

失败的请求数,失败指的是连接服务器、发送数据、接收数据等环节发生异常, 以及无响应后超时的情况.如果接受到的http响应数据的头信息中含有 2xx 以外的状态码,则会在测试结果显示另一个名为 Non-2xx responses 的统计项,用于统计这部分请求数, 这些请求并不算是失败的请求.

Total body sent

如果请求为 POST 类型带有请求体此处才会打印出来, 表示带数据发送请求.

HTML transferred

所有请求的响应数据长度总和, 包括每个http响应数据的头信息和正文数据的长度(不包括http请求数据的长度).

HTML transferred

所有请求的响应数据中正文数据的总和, 即不包括响应数据中头信息的长度.

Request per second

这里相当于服务器每秒所能接受的请求数即吞吐率, 可通过公式计算 Complete requests / Time taken for tests , 如对上图中的结果计算 10 / 10.497 ≈ 0.95 , 后面的计算结果都是四舍五入近似值,  (mean) 表示这是一个平均值. 为了测试随着请求数的增加该值会出现怎样的变化, 特地写了段程序分析 点击看代码 查看疑问 .

Time per request

第一个TPR表示用户平均请求等待时间, 可通过公式计算 Time taken for tests / (Complete requests /Concurrency Level) , 如对上图中的结果计算 10.497 / 10 / 2 ≈ 2099.4 (这里是近似值).

Time per request

第二个TPR表示服务器平均处理每一个并发请求的时间, 可通过公式计算 Time per request / Concurrency Level , 如果对上图中的结果计算 2099.4 / 2 ≈ 1049.7 (这里是近似值).

Transfer rate

请求在单位时间内从服务器获取的数据长度, 可通过公式计算 Total transferred / Time taken for tests , 如对上图对结果计算计算 273337(byte) / 10.497 ≈ 26039.5351 / 1024(kb) ≈ 25.43kb/s , 从这里也可以看出大致的带宽需求.

Connection Times(ms)

此处对 Connect 、 Processing 、 Waiting 、 Total 进行解释.  Connect 表示网络延时加上与远程服务器建立连接所耗费的时间,  Processing 表示第一个字节发出去至接受到第一个响应字节之间所耗费的时间, 这里大致可以推断出服务器的处理能力、 Waiting 表示最后一个字节发送完至接受到第一个字节到响应时间间隔、 Total 表示从建立连接开始至接受到第一个字节响应的总时间, 是 Connect 与 Processing 的时间总和, 当然此处不能单纯根据上图的结果去加, 因为图中表示的是均值.

Percentage of the requests served within a certain time (ms)

这里表示请求处理时间的分布与上面 Time per request 对应, 从图中可以看到50%的处理时间小于1535ms, 根据 Connection Times 可以看到最长的处理时间为6394ms, 最短处理时间为1306ms.

使用 gnuplot 工具可以直观的根据图标分析

使用 -g 参数结合 gnuplot 可以从图标中更加直观的看到分析结果, 如下图为一个简单的ab测试后使用 gnuplot 生成的图: 

基本的使用示例

以下介绍几个基本的使用场景, 更多ab参数请点击参考链接查看官网介绍.

模拟GET请求 -n1000

ab -n1000 http://www.example.com/

模拟POST请求 -n1000

此处在当前文件夹下面需要准备 p.json 文件, 文件内容为json格式的key/value对:  ab -n1000 -p p.json -T application/json http://www.example.com/

模拟并发 -n1000 -c20 (c

并发数不能大于总请求数: ab -n1000 -c20 http://www.example.com/

查看返回头信息 -n1000 -v 3 (-v 可选2、3、4)

ab -n1000 -v 2 http://www.example.com/

图标展示结果 -n1000 -g g.tsv

生成 gnuplot 生成分析图所需要的数据文件:  ab -n1000 -g g.tsv http://www.example.com/

参考链接

主要参考链接如下: Apache httpd(v2.4) 各项参数含义 Connection Times 关于gnuplot

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

& lt; Progress & Gt의 목적은 무엇입니까? 요소? & lt; Progress & Gt의 목적은 무엇입니까? 요소? Mar 21, 2025 pm 12:34 PM

이 기사는 HTML & lt; Progress & Gt에 대해 설명합니다. 요소, 그 목적, 스타일 및 & lt; meter & gt의 차이; 요소. 주요 초점은 & lt; progress & gt; 작업 완료 및 & lt; meter & gt; Stati의 경우

& lt; datalist & gt의 목적은 무엇입니까? 요소? & lt; datalist & gt의 목적은 무엇입니까? 요소? Mar 21, 2025 pm 12:33 PM

이 기사는 HTML & LT; Datalist & GT에 대해 논의합니다. 자동 완성 제안을 제공하고, 사용자 경험을 향상시키고, 오류를 줄임으로써 양식을 향상시키는 요소. 문자 수 : 159

HTML5의 크로스 브라우저 호환성에 대한 모범 사례는 무엇입니까? HTML5의 크로스 브라우저 호환성에 대한 모범 사례는 무엇입니까? Mar 17, 2025 pm 12:20 PM

기사는 HTML5 크로스 브라우저 호환성을 보장하기위한 모범 사례에 대해 논의하고 기능 감지, 점진적 향상 및 테스트 방법에 중점을 둡니다.

& lt; meter & gt의 목적은 무엇입니까? 요소? & lt; meter & gt의 목적은 무엇입니까? 요소? Mar 21, 2025 pm 12:35 PM

이 기사는 HTML & lt; meter & gt에 대해 설명합니다. 범위 내에 스칼라 또는 분수 값을 표시하는 데 사용되는 요소 및 웹 개발의 일반적인 응용 프로그램. & lt; meter & gt; & lt; Progress & Gt; 그리고 Ex

html5 & lt; time & gt; 의미 적으로 날짜와 시간을 나타내는 요소? html5 & lt; time & gt; 의미 적으로 날짜와 시간을 나타내는 요소? Mar 12, 2025 pm 04:05 PM

이 기사는 html5 & lt; time & gt; 시맨틱 날짜/시간 표현 요소. 인간이 읽을 수있는 텍스트와 함께 기계 가독성 (ISO 8601 형식)에 대한 DateTime 속성의 중요성을 강조하여 Accessibilit를 향상시킵니다.

HTML5 양식 유효성 검사 속성을 사용하여 사용자 입력을 유효성있게하려면 어떻게합니까? HTML5 양식 유효성 검사 속성을 사용하여 사용자 입력을 유효성있게하려면 어떻게합니까? Mar 17, 2025 pm 12:27 PM

이 기사에서는 브라우저에서 직접 사용자 입력을 검증하기 위해 필요한, Pattern, Min, Max 및 Length 한계와 같은 HTML5 양식 검증 속성을 사용하는 것에 대해 설명합니다.

뷰포트 메타 태그는 무엇입니까? 반응 형 디자인에 중요한 이유는 무엇입니까? 뷰포트 메타 태그는 무엇입니까? 반응 형 디자인에 중요한 이유는 무엇입니까? Mar 20, 2025 pm 05:56 PM

이 기사는 모바일 장치의 반응 형 웹 디자인에 필수적인 Viewport Meta Tag에 대해 설명합니다. 적절한 사용이 최적의 컨텐츠 스케일링 및 사용자 상호 작용을 보장하는 방법을 설명하는 반면, 오용은 설계 및 접근성 문제로 이어질 수 있습니다.

& lt; iframe & gt; 꼬리표? 보안을 사용할 때 보안 고려 사항은 무엇입니까? & lt; iframe & gt; 꼬리표? 보안을 사용할 때 보안 고려 사항은 무엇입니까? Mar 20, 2025 pm 06:05 PM

이 기사는 & lt; iframe & gt; 외부 컨텐츠를 웹 페이지, 공통 용도, 보안 위험 및 객체 태그 및 API와 같은 대안을 포함시키는 태그의 목적.

See all articles