来自 新葡亰服务器 2019-11-13 17:07 的文章
当前位置: 澳门新葡亰app > 新葡亰服务器 > 正文

单位时间内网络上传输的数据量,我们进行的多

多核服务器吞吐性能提升是非常重要的,因为服务器不同于台式机和工作站,它与外界打交道的通道就是网络,无论处理器进行了哪些复杂的计算,其结果都要通过网卡返回给请求对象。从某种意义上讲,网卡就是服务器对外联络和通信的"咽喉"组件,它在某种程度上决定了服务器的整体性能。我们进行的多核服务器吞吐性能提升测试,就是围绕网卡的吞吐能力进行的。

内容参考: 构建高性能WEB站点.pdf

其实很多用户对于多核服务器吞吐性能提升都有疑问-服务器的网卡真的那么重要么?我的笔记本电脑也配置千兆网卡啦!没错,目前主流服务器所配置的都是千兆以太网卡,从指标来看,这两种网卡在性能上没有什么区别,但是面对大数据流的时候,你就会发现服务器的网卡功力之深厚,远非桌面级网卡所能比拟的。

一、吞吐率

我们一般使用单位时间内服务器处理的请求数来描述其并发处理能力。称之为吞吐率(Throughput),单位是 “req/s”。吞吐率特指Web服务器单位时间内处理的请求数。

比如Apache 的 mod_status 模块提供的如下统计

 

图片 1

 

 

另一种描述,吞吐率是,单位时间内网络上传输的数据量,也可以指单位时间内处理客户请求数量。它是衡量网络性能的重要指标。通常情况下,吞吐率“字节数/秒”来衡量。当然你也可以用“请求数/秒”和“页面数/秒”来衡量。其实不管一个请求还是一个页面,它的本质都是在网络上传输的数据,那么用来表述数据的单位就是字节数。

计算机世界实验室的多核服务器吞吐性能提升测试脚本中有两类应用与服务器网卡的性能直接相关,一类是静态Web页面,另一类是基于ASP的Web应用。这两类应用都有同一个特点,即单位时间内并发请求高,而通过专用测试设备可直接向服务器发出海量数据包,服务器吞吐能力的高低即刻就能呈现出来。

二、吞吐量

吞吐量,是指在一次性能测试过程中网络上传输的数据量的总和。

  对于交互式应用来说,吞吐量指标反映的是服务器承受的压力,在容量规划的测试中,吞吐量是一个重点关注的指标,因为它能够说明系统级别的负载能力,另外,在性能调优过程中,吞吐量指标也有重要的价值。如一个大型工厂,他们的生产效率与生产速度很快,一天生产10W吨的货物,结果工厂的运输能力不行,就两辆小型三轮车一天拉2吨的货物,比喻有些夸张,但我想说明的是这个运输能力是整个系统的瓶颈。

  提示,用吞吐量来衡量一个系统的输出能力是极其不准确的,用个最简单的例子说明,一个水龙头开一天一夜,流出10吨水;10个水龙头开1秒钟,流出0.1吨水。当然是一个水龙头的吞吐量大。你能说1个水龙头的出水能力是10个水龙头的强?所以,我们要加单位时间,看谁1秒钟的出水量大。这就是吞吐率。

在常规的Windows Server 2008系统的测试中,我们发现在默认设置下,即便是表现最好的至强5500服务器平台,静态响应指标都很难超越28000TPS,而此时处理器性能还远未发挥出来。表面上服务器的吞吐性能似乎是被VCPU限制了,其实瓶颈在于网卡,因为网卡在默认状态下只能和一个VCPU打交道,而服务器网卡显然不应该只有这点实力。

三、事务,TPS(Transaction Per second)

就是用户某一步或几步操作的集合。不过,我们要保证它有一个完整意义。比如用户对某一个页面的一次请求,用户对某系统的一次登录,淘宝用户对商品的一次确认支付过程。这些我们都可以看作一个事务。那么如何衡量服务器对事务的处理能力。又引出一个概念----TPS

每秒钟系统能够处理事务或交易的数量,它是衡量系统处理能力的重要指标。

点击率可以看做是TPS的一种特定情况。点击率更能体现用户端对服务器的压力。TPS更能体现服务器对客户请求的处理能力。

每秒钟用户向web服务器提交的HTTP请求数。这个指标是web 应用特有的一个指标;web应用是“请求-响应”模式,用户发一个申请,服务器就要处理一次,所以点击是web应用能够处理的交易的最小单位。如果把每次点击定义为一个交易,点击率和TPS就是一个概念。容易看出,点击率越大。对服务器的压力也越大,点击率只是一个性能参考指标,重要的是分析点击时产生的影响。

需要注意的是,这里的点击不是指鼠标的一次“单击”操作,因为一次“单击”操作中,客户端可能向服务器发现多个HTTP请求。

从各家服务器网卡芯片的资料和驱动中,我们发现,在新一代服务器网卡配置中,都提供了TOE(TCP Offload Engine)功能。此功能可以将网络层面的一部分工作移至硬件完成,以节约CPU的资源,在高级选项中可以设置是否对Rx/Tx有效。在开启此选项后,可以明显看到VCPU资源得到了相当程度的释放,整机访问性能也上升到了41000TPS,即使面对这样强的数据流,至强5500平台整体CPU占有率依然未超过70%,而且表现还相当平稳。如此成绩令我们兴奋之余,也让我们意识到,处理器还有余力,看来网卡端还有潜力可挖。

四、吞吐量、吞吐率的意义

  • 吞吐量的限制是性能瓶颈的一种重要表现形式,因此,有针对地对吞吐量设计测试,可以协助尽快定位到性能冰晶所在的位置
  • 80%系统的性能瓶颈都是由吞吐量制约
  • 并发用户和吞吐量瓶颈之间存在一定的关联
  • 通过不断增加并发用户数和吞吐量观察系统的性能瓶颈。然后,从网络、数据库、应用服务器和代码本身4个环节确定系统的性能瓶颈。

没错,下面就开始介绍本次测试的重点-RSS(Receive-Side Scaling),拥有RSS功能的网卡不少,但是能在RSS基础上提供队列支持的就太少了,我们最终在英特尔i82576网卡上看到了最多支持8条队列的特性,而它同时支持1/2/4/8条队列的功能也让我们更深入地了解了不同队列数量对于新一代多核服务器吞吐性能的意义。

五、吞吐率和压力测试

单从定义来看,吞吐率描述了服务器在实际运行期间单位时间内处理的请求数,然而,我们更加关心的是服务器并发处理能力的上限,也就是单位时间内服务器能够处理的最大请求数,即最大吞吐率。

所以我们普遍使用“压力测试”的方法,通过模拟足够多数目的并发用户,分别持续发送一定的HTTP请求,并统计测试持续的总时间,计算出基于这种“压力”下的吞吐率,即为一个平均计算值

!!注意

  • 在Web服务器的实际工作中,其处理的HTTP请求通常包括对很多不同资源的请求,也就是请求不同的URL, 比如这些请求有的是获取图片,有的是获取动态内容,显然服务器处理这些请求所花费的时间各不相同,而这些请求的不同时间组成比例又是不确定的。这就是实际情况下的吞吐率。

  • 所以,我们 对于同一个特定有代表性的请求进行压力测试,然后对多个请求的吞吐率按照比例计算加权平均值。

  • Web服务器并发能力强弱的关键便是在于如何计算针对不同的请求性质来设计最优并发策略。在一定程度上使得Web服务器的性能无法充分发挥,这很容易理解,就像银行对不同业务设立不同的窗口一样,这些窗口的服务员分别熟悉自己的窗口业务。可以未不同的客户分别快速办理业务,但是如果让这些窗口都可以办理所有业务,也就是客户可以去任何窗口办理任何业务,那会是怎么样呢?没有几个银行业务员会对所有业务都轻车熟路,这样势必会影响到整体的业务办理速度。

RSS队列的精华功能是将网卡的数据分流到运行在不同VCPU的并行协议栈上,因此在实际测试中,我们发现,在设置两条队列时,服务器的性能就获得了极大的提升,53000TPS的性能远远超出了最初的预想,而此时服务器整体CPU占有率也超过了90%。而随着4条队列的引入,即便是双路至强 5500平台的16颗VCPU,也都能调动起95%以上的计算能力,而此时性能几乎达到峰值-57600TPS,再引入8条队列,也基本如此了。因此我们初步判断,要提升服务器的Web接入、数据库访问、网络游戏前端等强调TPS指标的应用模型时,RSS队列是一个必须要关注的设置点。它配合TOE,可以充分发挥多核时代服务器的吞吐性能。

六、压力测试的前提

吞吐率性能测试的前提

  • 并发用户数
  • 总请求数
  • 请求资源描述

压力测试的描述一般包括两个部分,即并发用户数和总请求数,也就是模拟多少用户同时向服务器发送多少请求。

请求性质则是对请求的URL所代表的资源的描述,比如1KB大小的静态文件,或者包含10次数据库查询的动态内容等。

1、 并发用户数

并发用户数就是指在某一时刻同时向服务器发送请求的用户总数。

假如100个用户同时向服务器分别进行10次请求,与1个用户向服务器连续进行1000次请求。两个的效果一样么?

一个用户向服务器连续进行1000次请求的过程中,任何时刻服务器的网卡接受缓存区中只有来自该用户的1个请求,而100个用户同时向服务器分别进行10次请求的过程中,服务器网卡接收缓冲区中最多有100个等待处理的请求,显然这时候服务器的压力更大。

经常有人说某个Web服务器能支持多少并发数,除此之外没有任何上下文,这让很多人摸不着头脑,人们常常把并发用户数和吞吐率混淆,他们并不是一回事。

一个服务器最多支持多少并发用户数呢?

 

图片 2

 

 

我们可以说,这个柜台支持的最大并发数为10,因为恰好在这个并发数下,柜台业务开展的非常成功。顾客们都对服务时间非常满意,而此时代表业务办理次数的柜台吞吐率也比较高,商场和顾客们实现双赢。

可见,通常所讲的最大并发数是有一定利益前提的,那就是服务器和用户双方所期待的最大收益,服务器希望支持高并发数及高吞吐率,而用户不管那么多,只希望等待较少的时间,或者得到更快的下载速度。

所以得出最大并发数的意义,在于了解服务器的承载能力,并且结合用户规模考虑适当的扩展方案。

对于同一域名下URL的并发下载数是有最大限制的,具体限制视浏览器的不同而不同。 一个真实的用户可能会给服务器带来两个或更多的并发用户的压力,一些高明的用户还可以通过一些方法来修改浏览器的并发数限制。

 

图片 3

 

 

 

图片 4

 

 

2、请求等待时间

  • 用户平均请求等待时间
  • 服务器平均请求处理时间

用户平均请求等待时间主要用户衡量服务器在一定并发用户数的情况下,对于单个用户的服务质量 服务器平均请求处理时间与前者相比,则用户衡量服务器的整体服务质量,它其实就是吞吐率的倒数。

  1. 性能,功能两方面入手概述服务器测试方法
  2. 简述服务器测试中的性能基准测试的工具
  3. 用Avalanche进行服务器测试

七、压力测试

Apache 附带的ab,ab可以直接在web服务器本地发起测试请求。

 

图片 5

 

 

1、吞吐率随并发用户数变化的曲线图

图片 6

 

 

2、服务器平均请求处理时间随并发用户数变化的曲线图
当并发用户数超过150 之后,请求的平均等待时间大幅度增加,当并发用户达到200后,等待时间开始急剧增加。

 

图片 7

 

 

3、用户平均请求等待时间随并发用户数变化的曲线图

图片 8

 

 

...

八、总结

针对,吞吐量,吞吐率,TPS的测试,都需要指明单位时间。

以上测试忽略服务器硬件配置,所以性能测试结果也不侧重于它的绝对值意义,我们的目的是探讨如何测量性能以及如何根据不同的场景来优化性能。

以上测试使用硬件为

CPU: Intel(R) Xeon(R) CPU 1.60GHz 内存:4GB 硬盘转速: 15kr/min

以上几个指标的测试,主要是为了提升服务器的处理效率,为构建高可用的Web站点做准备。

本文由澳门新葡亰app发布于新葡亰服务器,转载请注明出处:单位时间内网络上传输的数据量,我们进行的多

关键词: