压力测试】网卡带宽对压力测试有什么影响?

2021-07-27 13:34发布

14条回答

对于压力较大,或者数据流量较大的服务,比如空间图片服务,可能会出现由于网卡跑满,而压力上不去的现象,此时机器负载较为正常,但压力上不去。

啊伟
3楼 · 2021-07-28 12:08

没什么影响

蓝鲸鱼
4楼 · 2021-07-28 14:12

网卡带宽是会对压力测试结果有着直接的影响的,

如果服务器的资源消耗非常低,由此我们可以看出,服务器远远未达到压力的极限,可以看一下磁盘IO的损耗,如果也较低,可以更换以下网络带宽,这时候一般不是服务器本身的性能问题。尽可能降低网络带宽的限制。


对于压力较大,或者数据流量较大的服务,比如空间图片服务,可能会出现由于网卡跑满,而压力上不去的现象,此时机器负载较为正常,但压力上不去。

这对于测试环境,这是一个比较容易的现象。 比如当机房的出口是百兆的,很容易压满。此时需要根据情况,将压力分布开。

当然也有一些模块,网卡本身就是瓶颈。

了解网卡带宽对压力的影响,也有助于在分析时得出正确的判断


visonx
6楼 · 2021-07-29 10:27

对于压力较大,或者数据流量较大的服务,比如空间图片服务,可能会出现由于网卡跑满,而压力上不去的现象,此时机器负载较为正常,但压力上不去。

这对于测试环境,这是一个比较容易的现象。 比如当机房的出口是百兆的,很容易压满。此时需要根据情况,将压力分布开。

当然也有一些模块,网卡本身就是瓶颈。

了解网卡带宽对压力的影响,也有助于在分析时得出正确的判断。


对于压力较大,或者数据流量较大的服务,比如空间图片服务,可能会出现由于网卡跑满,而压力上不去的现象,此时机器负载较为正常,但压力上不去。

这对于测试环境,这是一个比较容易的现象。 比如当机房的出口是百兆的,很容易压满。此时需要根据情况,将压力分布开。


我是大脸猫
8楼 · 2021-08-05 14:11

这两天在为进行过调优后的服务器做性能测试,在对其中一个详情页面进行压力测试的时候,测试结果为110TPS,对于这一结果我们是非常不满意,随后又在多个不同的模块下进行测试,结果都非常的相近,然而在压力测试过程当中,服务器的资源消耗非常低,由此我们可以看出,服务器远远未达到压力的极限,而应用程序应该不会有问题,如果是程序问题,服务器资源绝对不会有那么多空闲。

  问题到底出在哪里呢?我们web服务器的架构为nginx+lighttpd,于是我们一层层进行单独测试,发现结果仍然是一样,4核的服务器CPU资源损耗仅处于20%左右,我们又对单一的静态页面做压力测试,发现结果仍然是差不多,并没有太大的提升。无论动态还是静态页面,结果都一样,这就更加肯定了我们的结论。排除了应用程序的问题,那问题就应该出在IO那块,再通过磁盘监控,发现磁盘IO的损耗也非常的低,但是我们却有一个意外的发现,多次测试的结果中,网络IO的流量都是处于12M左右。

  看到这里,我们心里就豁然开朗了,问题原来是在这里,我们一直都把重心关于于服务器本身的性能调优上,却偏偏忘记了网络带宽的因素,虽然我们测试服务器的网卡是100/1000M网卡,然而我们却是将服务器部署于百兆局域网内,而100M带宽的实际传输速度刚好是介于12M左右,由于我们终于发现瓶颈是在于网络带宽,而非是服务器本身的性能上。于是二话不说,我们立刻将所有的测试服务器以及客户机都连接在同一千兆网内,尽可能降低网络带宽的限制。

  成功搭建好环境之后,再进行测试,结果果然如我们所料,静态页面的测试中,最快的模块测试达到了600TPS上线,而此时的网卡流量已经达到了50M左右,而由于多个模块的页面大小并不相同,TPS的结果也各不相同,但是网卡的流量却都处于50M上下,然而1000M网的理论速度是可以达到120M左右,50M的实际速度远远未到此数,也许达不到理论速度,但是相差应该也不会太多,于是我们尝试从两台服务器之间互相copy大文件测试一下实际速度有多少,而最终的结果也是和我们测试web服务器的结果一样,也是在50M上下,因此又一次证明了IO是一个瓶颈,只是还无法确定是磁盘IO还是网络IO,由于时间比较紧,我们就并未在此问题上多做纠缠,因为这只是对静态页面的测试,实际运行过程当中,真正的瓶颈应该是在应用上,因此我们再次将重心转移到动态页面的请求上。

  再一次对动态页面进行压力测试,这次我们对各个模块测出的平均结果处于200TPS上下,而网络流量仅仅处于30M左右,此时服务器的资源占用率已经处于 80-90%之间,基本已经是处于满负荷状态,纯动态页面200TPS,不算高,程序本身还有很大优化的空间,不过五一过后就要正式上线,此时再进行优化已经来不及,不过对于纯动态请求200TPS的结果,其实我已经相对满意了,因为考虑到实际应用场景,在最有可能出现峰值的情况下,实际大部分用户只会访问比较少数相同的页面,而我们对于同一页面的请求都进行了静态化的处理,实际上除了第一次请求外,其他的请求都是直接访问静态页面,因此实际能承受的压力远远不止于此。

  最后,我们针对实际应用场景,通过loadrunner模拟真实访问情景,结合所有的测试对系统进行综合的测试,对各种情况进行百分比设定,尽量模拟真实情况,测试的结果处于400-500TPS,而网络流量也到了之前测试的上限值,再考虑到实际情况中,客户端对静态资源还会进行缓存,应该还会有相对大的提升,本次的结果相对真实,而我也比较满意,在下一版本中,应该会针对应用程序再次进行优化,相信还会得到一个不小的提升。

  最后,在此对TPS进行一下解释(摘自网上的解释,懒得自己写了,我是个懒人):

  TPS是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,最终利用这些信息来估计得分。客户机使用加权协函数平均方法来计算客户机的得分,测试软件就是利用客户机的这些信息使用加权协函数平均方法来计算服务器端的整体TPS得分。

  注:Loadrunner中还有很多其他的评测参数,不过我个人认为TPS更具代表性,因此只在此用TPS作为评核依据。


yjh
9楼 · 2021-08-12 09:52

在压力测试中,对于压力较大,或者数据流量较大的服务,比如空间图片服务,可能会出现由于网卡跑满,而压力上不去的现象,此时机器负载较为正常,但压力上不去。

这对于测试环境,这是一个比较容易的现象。 比如当机房的出口是百兆的,很容易压满。此时需要根据情况,将压力分布开。



相关问题推荐

  • 回答 3

    要实现百万级服务器并发的话,首选要能够达到足够量的压力源

  • 回答 11

     A、存储压力 B、响应能力压力 C、网络流量压力并发压力是针对服务器的,因为每次并发是一个客户端并发压力只发生在多用户操作的情况下,因为手机本身是对应一个用户操作,并不存在并发压力的可能手机压力测试的方法有:存储压力、边界压力、响应能力压力...

  • 回答 1

    性能测试就是压力测试,手机方面的其实和PC方面的差距不大,重点就是大量手机调用接口对服务器的压力,所以测试的重点还是在服务器上,你可以用Jmeter模拟接口报文,来并发压服务器,看服务器的响应和处理能力。单个手机毕竟是一个人在用,所以一般不用关心手...

  • 回答 3

    是C接口还是java接口。C接口:建一个纯C的loadrunner脚本,然后写调用接口的程序(我也不会,是让开发写的)。或者在linux上安装一个loadrunner agent,在上面新建一个脚本然后也是写C的脚本。java接口:建一个java的loadrunner脚本,导入需要的jar包,然后写...

  • 回答 5

    一、性质不同1、压力测试压力测试是在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(如24小时以上)的稳...

没有解决我的问题,去提问