博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
搞服务器性能时有感
阅读量:6705 次
发布时间:2019-06-25

本文共 798 字,大约阅读时间需要 2 分钟。

这段时间一直在搞性能,因为要应对高并发的情况,每秒有2000用户的并发。

在这个并发里面,到底有多少请求的,其实要按照用户请求的页面来平均一下,如果说平均每个页面要请求3个接口,那么2000用户并发的话,请求数就是:2000 * 3 = 6000;

服务器要在一秒内解决这6000个并发,换而言之,就是TPS为6000,这时候必须先假设前提条件:

带宽瓶颈

1、假设服务器是8核的,计算能力稳定,没有数据库请求的延迟情况。那么瓶颈在于带宽。如果你请求的接口返回的报文(response)是1k,那么

      服务器的带宽要多大?

      带宽 = 1k * 6000 = 6M

      这个带宽理论上就是你公网流出的带宽大小。但是,我在阿里的ECS里买的带宽是10M。据其文档所说

      很自然地认为,6000个TPS一点问题都没有,当然这是一种很理想的状态下。然而现实很骨感,你公网流出的带宽可能都是显示10M

   

    但是,在真正的测试用,也是用的阿里的性能测试TPS,峰值带宽得出的结果是

     

    这是怎么回事?看阿里的文档

   

       那实际的上下载速度多大呢,嗯……它实际就是符合 128KB x 带宽 = 实际上下载速度。所以,10M的带宽,实际流出(即服务器本身的上传速度)是 128KB/s X 10 = 1.2M。这样就合情合理了。所以,你TPS为6000,理论上来讲需要多大的带宽呢?

      实际ECS需要的带宽是:6000 * 1KB / 128KB = 46.875M。

      这是在CPU无瓶颈情况下,支持6000TPS的带宽需要 46.875M。

 

CPU瓶颈

2、假设带宽无瓶颈的情况下,8核CPU每秒能处理的TPS的量是多大呢?其实是很多因素有影响的,不能单独的只考虑CPU。那么以我的实际ECS来算好了,不同机器不同情况,只做参考!

    

 

 

 

     

转载于:https://www.cnblogs.com/Vam8023/p/9475675.html

你可能感兴趣的文章
【深入剖析Tomcat笔记】第四篇 默认连接器
查看>>
ElasticSearch(1)-入门
查看>>
计算传播学在新闻和公共舆论领域的应用
查看>>
Go语言--基础语法笔记
查看>>
Android 中使用自定义字体的方法
查看>>
[原]RobotFrameWork(一)robotframework(python版)及Ride在ubuntu下安装
查看>>
2018-06-27随想
查看>>
Stream.findFirst的一个疑问
查看>>
深入理解java虚拟机(二)HotSpot Java对象创建,内存布局以及訪问方式
查看>>
PYTHON 模块
查看>>
软件开发模式对比(瀑布、迭代、螺旋、敏捷)
查看>>
css默认被后代inherite的属性列表
查看>>
酷客多郝宪玮:不够小程序化的企业,将错失最近5年的流量红利
查看>>
2017年淘客全新玩法——代理模式
查看>>
《开源安全运维平台OSSIM最佳实践》媒体推荐
查看>>
JavaScript服务器编程(对象属性枚举中应当避免原型污染问题)
查看>>
【ORACLE技术嘉年华PPT】MySQL压力测试经验
查看>>
用using取别名居然不支持泛型…
查看>>
NET也不能忽略基础
查看>>
ROR随想(2009年)
查看>>