单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。
系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间
QPS(TPS):每秒钟request/事务 数量
并发数: 系统同时处理的request/事务数
响应时间: 一般取平均响应时间
(很多人经常会把并发数和TPS理解混淆)
理解了上面三个要素的意义之后,就能推算出它们之间的关系:
QPS(TPS)= 并发数/平均响应时间
一个系统吞吐量通常由QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下降。
决定系统响应时间要素
我们做项目要排计划,可以多人同时并发做多项任务,也可以一个人或者多个人串行工作,始终会有一条关键路径,这条路径就是项目的工期。
系统一次调用的响应时间跟项目计划一样,也有一条关键路径,这个关键路径是就是系统影响时间;
关键路径是有CPU运算、IO、外部系统响应等等组成。区别:TPS是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。QPS是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。理解:系统整体处理能力取决于处理能力最低模块的TPS值。QPS是每秒的响应请求数,也即是最大吞吐能力。
TPS即每秒处理事务数,包括:”用户请求服务器”、”服务器自己的内部处理”、”服务器返回给用户”,这三个过程,每秒能够完成N个这三个过程,TPS也就是3。QPS基本类似于TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS,但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入QPS之中。
访问一个页面会请求服务器3次,一次放,产生一个“T”,产生3个“Q”。
要说可以支持多少用户,是无法得到一个准确答案的。用户支持的数量由许多因素组成,例如使用的语言、架构、处理的业务类型 数据大小等。这是一个需要连续调整优化过程的。
第一需要确定业务类型
1、不同的服务有不同的特性,有些CPU占用比较高,有些内存比较高,还比如数据处理,有些需要大量带宽,例如网络爬虫,有些磁盘很高,例如和数据库类。
2、同一配置的机器运行不同的业务,效果会有所不同,而且未使用的资源将大大浪费。
3、根据自己的业务类型调整机器的资源比率是节省资金和改善支持的好方法。
第二确定数据大小
1、网络传输的数据大小决定了带宽占用。尺寸越小,带宽越大,每单位时间可以访问和处理的用户请求越多。
2、然后,减少无效数据传输并减小请求分组的大小是必须考虑的地方以改善用户访问能力。
第三连续测算和调整
1、支持的TPS数量,是不断监控并不断调整的。很多时候,小参数调整可以带来多重性能提升。几十秒的业务请求,可能会在几十毫秒内完成调整。
2、真正的在线服务,持续监控和持续调整是一个长期的过程的。
第四使用恰当的语言架构
1、设计良好的系统,与随便设计的系统,终端能力是全然有所不同的。
2、克服资源浪费问题,可使用Docker之类的容器化,微服务化,能精确的提高资源使用率,减少服务器压力。
3、使用Nginx或是Tengine、打开NIO、打开压缩、及设立静态与局部缓存等,减少服务器负载。
4、使用MongoDB、NoSQL数据库,减少数据查询压力提升响应速度。
总之,减少前端无效请求,后端请求在靠近用户侧解决掉,避免业务过长,堆积在后端底层。
扩展资料:
1、服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。
2、服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
3、在网络环境下,根据服务器提供的服务类型不同,分为文件服务器、数据库服务器、应用程序服务器、WEB服务器等。
参考资料来源:百度百科–服务器
tps是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。要满足500tps的要求,最少需要的并发量大概是500–1000个,这取决于应用程序的复杂程度、服务器的性能和网络的带宽。
为了确保应用程序能够达到500tps的目标,应该考虑服务器性能提升,比如使用更快的硬盘,更好的CPU,更多的内存,更快的网络等。同时,应该优化程序代码,减少请求的延迟,降低响应时间,并且要使用更有效的数据存储和索引技术,以更好地支持大量的并发请求。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)