찾다
웹 프론트엔드HTML 튜토리얼前端社区带你了解CSS 加载新方式_html/css_WEB-ITnose

已有 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으로 문의하세요.
HTML, CSS 및 JavaScript의 미래 : 웹 개발 동향HTML, CSS 및 JavaScript의 미래 : 웹 개발 동향Apr 19, 2025 am 12:02 AM

HTML의 미래 트렌드는 의미론 및 웹 구성 요소이며 CSS의 미래 트렌드는 CSS-In-JS 및 CSShoudini이며, JavaScript의 미래 트렌드는 WebAssembly 및 서버리스입니다. 1. HTML 시맨틱은 접근성과 SEO 효과를 향상시키고 웹 구성 요소는 개발 효율성을 향상 시키지만 브라우저 호환성에주의를 기울여야합니다. 2. CSS-in-JS는 스타일 관리 유연성을 향상 시키지만 파일 크기를 증가시킬 수 있습니다. CSShoudini는 CSS 렌더링의 직접 작동을 허용합니다. 3. Webosembly는 브라우저 애플리케이션 성능을 최적화하지만 가파른 학습 곡선을 가지고 있으며 서버리스는 개발을 단순화하지만 콜드 스타트 ​​문제의 최적화가 필요합니다.

HTML : 구조, CSS : 스타일, 자바 스크립트 : 동작HTML : 구조, CSS : 스타일, 자바 스크립트 : 동작Apr 18, 2025 am 12:09 AM

웹 개발에서 HTML, CSS 및 JavaScript의 역할은 다음과 같습니다. 1. HTML은 웹 페이지 구조를 정의하고, 2. CSS는 웹 페이지 스타일을 제어하고 3. JavaScript는 동적 동작을 추가합니다. 그들은 함께 현대 웹 사이트의 프레임 워크, 미학 및 상호 작용을 구축합니다.

HTML의 미래 : 웹 디자인의 진화 및 트렌드HTML의 미래 : 웹 디자인의 진화 및 트렌드Apr 17, 2025 am 12:12 AM

HTML의 미래는 무한한 가능성으로 가득합니다. 1) 새로운 기능과 표준에는 더 많은 의미 론적 태그와 WebComponents의 인기가 포함됩니다. 2) 웹 디자인 트렌드는 반응적이고 접근 가능한 디자인을 향해 계속 발전 할 것입니다. 3) 성능 최적화는 반응 형 이미지 로딩 및 게으른로드 기술을 통해 사용자 경험을 향상시킬 것입니다.

HTML vs. CSS vs. JavaScript : 비교 개요HTML vs. CSS vs. JavaScript : 비교 개요Apr 16, 2025 am 12:04 AM

웹 개발에서 HTML, CSS 및 JavaScript의 역할은 다음과 같습니다. HTML은 컨텐츠 구조를 담당하고 CSS는 스타일을 담당하며 JavaScript는 동적 동작을 담당합니다. 1. HTML은 태그를 통해 웹 페이지 구조와 컨텐츠를 정의하여 의미를 보장합니다. 2. CSS는 선택기와 속성을 통해 웹 페이지 스타일을 제어하여 아름답고 읽기 쉽게 만듭니다. 3. JavaScript는 스크립트를 통해 웹 페이지 동작을 제어하여 동적 및 대화식 기능을 달성합니다.

HTML : 프로그래밍 언어입니까 아니면 다른 것입니까?HTML : 프로그래밍 언어입니까 아니면 다른 것입니까?Apr 15, 2025 am 12:13 AM

Htmlisnotaprogramminglanguage; itisamarkuplanguage.1) htmlstructuresandformatswebcontentusingtags.2) itworksporstylingandjavaScriptOfforIncincivity, WebDevelopment 향상.

HTML : 웹 페이지 구조 구축HTML : 웹 페이지 구조 구축Apr 14, 2025 am 12:14 AM

HTML은 웹 페이지 구조를 구축하는 초석입니다. 1. HTML은 컨텐츠 구조와 의미론 및 사용 등을 정의합니다. 태그. 2. SEO 효과를 향상시키기 위해 시맨틱 마커 등을 제공합니다. 3. 태그를 통한 사용자 상호 작용을 실현하려면 형식 검증에주의를 기울이십시오. 4. 자바 스크립트와 결합하여 동적 효과를 달성하기 위해 고급 요소를 사용하십시오. 5. 일반적인 오류에는 탈수 된 레이블과 인용되지 않은 속성 값이 포함되며 검증 도구가 필요합니다. 6. 최적화 전략에는 HTTP 요청 감소, HTML 압축, 시맨틱 태그 사용 등이 포함됩니다.

텍스트에서 웹 사이트로 : HTML의 힘텍스트에서 웹 사이트로 : HTML의 힘Apr 13, 2025 am 12:07 AM

HTML은 웹 페이지를 작성하는 데 사용되는 언어로, 태그 및 속성을 통해 웹 페이지 구조 및 컨텐츠를 정의합니다. 1) HTML과 같은 태그를 통해 문서 구조를 구성합니다. 2) 브라우저는 HTML을 구문 분석하여 DOM을 빌드하고 웹 페이지를 렌더링합니다. 3) 멀티미디어 기능을 향상시키는 HTML5의 새로운 기능. 4) 일반적인 오류에는 탈수 된 레이블과 인용되지 않은 속성 값이 포함됩니다. 5) 최적화 제안에는 시맨틱 태그 사용 및 파일 크기 감소가 포함됩니다.

HTML, CSS 및 JavaScript 이해 : 초보자 안내서HTML, CSS 및 JavaScript 이해 : 초보자 안내서Apr 12, 2025 am 12:02 AM

WebDevelopmentReliesonHtml, CSS 및 JavaScript : 1) HtmlStructuresContent, 2) CSSSTYLESIT, 및 3) JAVASCRIPTADDSINGINTERACTIVITY, BASISOFMODERNWEBEXPERIENCES를 형성합니다.

See all articles

핫 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를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경