ab,qps,服务器性能压力

2024-05-14 03:09
文章标签 服务器 性能 压力 ab qps

本文主要是介绍ab,qps,服务器性能压力,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


ab,qps,服务器性能压力


http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E7%9F%A5%E9%81%93/17732.shtml

"ab,qps,服务器性能压力":关键词:ab qps 服务器 性能 压力

 

http://www.makaidong.com/program/641799.html

转载:并发用户数和qps两个概念没有直接关系
转自: http://blog.hummingbird-one.com/?p=10029


关 于并发用户数和qps,自己一直被这两个概念纠结,阅读了一下相关资料,总结如下:并发用户数和qps两个概念没有直接关系,但是如果要说qps时,一定 需要指明是多少并发用户数下的qps,否则豪无意义,因为单用户数的40qps和20并发用户数下的40qps是两个不同的概念。前者说明该应用可以在一 秒内串行执行40个请求,而后者说明在并发20个请求的情况下,一秒内该应用能处理40个请求

http://www.tuicool.com/articles/zbafyf

并发连接数 = pv / 统计时间 * 页面衍生连接次数 * http响应时间 * 因数 / 其他web服务器 数量

pv = 并发连接数 * 统计时间 * 其他web服务器 数量/ 页面衍生连接次数 / http响应时间 / 因数

解释:  统计时间 : pv统计的总时间,单位秒,要计算一天的pv就是86400秒  页面衍生连接次数: 一个html页面可能会请求好几次http连接,如外部的css, js ,图片等,可以估算一下,或者用10,可根据实际情况改变  http响应时间: 可以使用1秒或更少,可根据实际情况改变  因数: 一般使用5即可,可根据实际情况计算后推出  其他web服务器 数量: 其他web服务器 数量

* “页面衍生连接次数”,”http响应时间”,”因数”这三个参数要根据实际情况分析计算后,确定一个适合的值

推算一下。单台机器1000并发的情况下,一天是1,728,000的pv(1秒响应,10个衍生连接,因子为5的情况下)  ======================================================================

例子:

保证每天多少pv的并发连接数的计算公式是:  并发连接数= pv / 统计时间(一天是86400) * 页面衍生连接次数 * http响应时间 * 因数(5) / 其他web服务器 数量

保证4千万pv的并发连接数:  (40000000pv / 86400秒 * 10个派生连接数 * 5秒内响应 * 5倍峰值) / 6台其他web服务器 = 19290连接数

======================================================================

面试时,面试官问道:1亿个pv,如何确定并发用户数?  一时想不起来具体的公式,就记得80/20原则,就回答了一些。又说了一些原来我们公司会提供峰值的方法,确定最后施压的用户数。  今天上网查相关资料,发现一些有用的内容,抄录下来。

网站流量是指什么? ip和pv呢?  通常说的网站流量(traffic)是指网站的访问量,是用来描述访问一个网站的用户数量以及用户所浏览的网页数量等指标,常用的统计指标包括网站的独立用户数量、总用户数量(含重复访问者)、网页浏览数量、每个用户的页面浏览数量、用户在网站的平均停留时间等。

网 站访问统计分析的基础是获取网站流量的基本数据,根据网上营销新观察的相关文章,网站流量统计指标大致可以分为三类,每类包含若干数量的统计指标。具体的 网站流量统计是通过不同的ip登陆网站来计算的,也就是说。一天内同一台机器登陆网站的次数不论是多少,在流量统计中只记为一次有效登陆,这种计算方法可 以较为科学 的计算出有多少人登陆过该网站,有效的防止了有意的对网站进行刷新从而增加自己网站的点击率。

网站流量指标

网站流量统计指标常用来对网站效果进行评价,主要指标包括:  ·独立访问者数量(unique visitors);  ·重复访问者数量(repeat visitors)  ·页面浏览数(page views);  ·每个访问者的页面浏览数(page views per user);  ·某些具体文件/页面的统计指标,如页面显示次数、文件下载次数等。

ip 是使用不同ip上网的人访问你网站的人数,也就是上面的独立访问者数量。  一般来说是24小时同一ip不重复记录的, 也应该24小时不重复记录。(其实ip也不一定就是独立访问者数量,因为有的用户是公用一个ip的,但大致上可以认为就是今日的独立访问者数量。)

pv 则是上面的页面浏览数,是指这些访问者一共浏览了多少次你网站的页面,他是会重复记录的,你点这个网站10个页面,他就会记录10次。

所以pv一定是>=ip的,如一个网站今天的流量统计是100ip 200pv就是说今天有大致100个独立访问者,一共访问了200次页面,平均每个用户访问页面数量是 pv/ip=2 ,一般来说这个数字越大说明网站内容越吸引用户,但也和网站本身的页面有关。

吞吐量(tps)=活动的用户数/响应时间  活动用户=并发用户*[响应时间/(响应时间+思考时间)]  吞吐量(tps)=并发用户/(响应时间+思考时间)  由此推出:  并发用户=活动用户+吞吐量*思考时间  并发用户=活动用户*(1+思考时间/响应时间)  并发用户=吞吐量*(响应时间+思考时间)

并发连接数与pv的换算公式  oncurrent connections=pv / seconds *(para connect per a page) * (time to react) * (factor) / (web hosts)

pv = concurrent connections * seconds * (web hosts)/ (para connect per a page)/ (time to react)/ (factor)

concurrent connections:并发连接数

seconds: pv统计的总时间,单位秒,要计算一天的pv就是86400秒

para connect per a page: 页面衍生连接次数。一个html页面可能会请求好几次http连接,如外部的css, js ,图片等。可以估算一下

 ,或者用10。可根据实际情况改变

time to react:http响应时间,可以使用1秒或更少。可根据实际情况改变

factor:因数,一般使用5即可。可根据实际情况计算后推出

web hosts:其他web服务器 数量

* para connect per a page,time to react,factor这三个参数要根据实际情况分析计算后,确定一个适合的值

推算一下。单台机器1000并发的情况下,一天是1,728,000的pv(1秒响应,10个衍生连接,因子为5的情况下)

==================================================================================

术语说明:  qps = req/sec = 请求数/秒

【qps计算pv和机器的方式】

qps统计方式 [一般使用 http_load 进行统计]  qps = 总请求数 / ( 进程总数 * 请求时间 )  qps: 单个进程每秒请求服务器的成功次数

单台服务器每天pv计算  公式1:每天总pv = qps * 3600 * 6  公式2:每天总pv = qps * 3600 * 8

服务器计算  服务器数量 = ceil( 每天总pv / 单台服务器每天总pv )

【峰值qps和机器计算公式】

原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间  公式:( 总pv数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(qps)  机器:峰值时间每秒qps / 单台机器的qps = 需要的机器

问:每天300w pv 的在单台机器上,这台机器需要多少qps?  答:( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (qps)

问:如果一台机器的qps是58,需要几台机器来支持?  答:139 / 58 = 3

ps: 在实际情况中,会把这个考虑的更多一点,就是把qps再往多了调一调,以防万

 

ps:下面是性能测试的主要概念和计算公式,记录下:

一.系统吞度量要素:

  一个系统的吞度量(承压能力)与request对cpu的消耗、外部接口、io等等紧密关联。

单个reqeust 对cpu消耗越高,外部系统接口、io影响速度越慢,系统吞吐能力越低,反之越高。

系统吞吐量几个重要参数:qps(tps)、并发数、响应时间

        qps(tps):每秒钟request/事务 数量

        并发数: 系统同时处理的request/事务数

        响应时间:  一般取平均响应时间

(很多人经常会把并发数和tps理解混淆)

理解了上面三个要素的意义之后,就能推算出它们之间的关系:

qps(tps)= 并发数/平均响应时间

        一个系统吞吐量通常由qps(tps)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下降。

决定系统响应时间要素

我们做项目要排计划,可以多人同时并发做多项任务,也可以一个人或者多个人串行工作,始终会有一条关键路径,这条路径就是项目的工期。

系统一次调用的响应时间跟项目计划一样,也有一条关键路径,这个关键路径是就是系统影响时间;

关键路径是有cpu运算、io、外部系统响应等等组成。

二.系统吞吐量评估:

我们在做系统设计的时候就需要考虑cpu运算、io、外部系统响应因素造成的影响以及对系统性能的初步预估。

而通常境况下,我们面对需求,我们评估出来的出来qps、并发数之外,还有另外一个维度:日pv。

通过观察系统的访问日志发现,在用户量很大的情况下,各个时间周期内的同一时间段的访问流量几乎一样。比如工作日的每天早上。只要能拿到日流量图和qps我们就可以推算日流量。

通常的技术方法:

        1. 找出系统的最高tps和日pv,这两个要素有相对比较稳定的关系(除了放假、季节性因素影响之外)

        2. 通过压力测试或者经验预估,得出最高tps,然后跟进1的关系,计算出系统最高的日吞吐量。b2b中文和淘宝 面对的客户群不一样,这两个客户群的网络行为不应用,他们之间的tps和pv关系比例也不一样。

这篇关于ab,qps,服务器性能压力的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/987584

相关文章

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

Nginx屏蔽服务器名称与版本信息方式(源码级修改)

《Nginx屏蔽服务器名称与版本信息方式(源码级修改)》本文详解如何通过源码修改Nginx1.25.4,移除Server响应头中的服务类型和版本信息,以增强安全性,需重新配置、编译、安装,升级时需重复... 目录一、背景与目的二、适用版本三、操作步骤修改源码文件四、后续操作提示五、注意事项六、总结一、背景与

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详