`
javamonkey
  • 浏览: 171204 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

性能设计:要响应还是要吞吐量

阅读更多

   衡量系统性能有俩个指标,分别是响应和吞吐量。通常企业应用系统更看重的是吞吐量,即能否支持更多的用户访问,或者能处理更多的报文。记得JDK Concurrent API的一个主要设计目的就是可扩展性-在单CPU的情况下,性能不及synchronized.耗费的资源多于synchronized(创建了很多对 象,但synchronzied可用任何对象作为锁)。但在多CPU或者其他更多的资源下,JDK Concurrent API 能充分利用CPU资源,从而使你的应用有较大的吞吐量。譬如,Hashtable 读写都会锁,而ConcurretnHashMap在读的时候就不会,自然会提高吞吐量。

   响应和吞吐量有时候并不能同时获得,譬如,为了提高响应,你可以做一个Cache,如果你的Cache只是JVM内的话,那要是进行集群以提高吞吐量,那 么你的Cache就有问题了。所以性能设计,一定要考虑到响应和吞吐量这来个因素。

   上面说了,企业应用更看重吞吐量。那如何设计一个高吞吐量的系统了。我觉得主要是俩个方法。

    一是系统是否支持扩展:如果系统实在是提高不了,我能否增加硬件来提高? 这种方式又通常有三种做法。

    1 增加主机CPU,内存,更换更好的磁盘.系统不需要改变

    2 增加新的主机,这也叫集群。 这种方式能极大的增加吞吐量,但扩展性还是有限。而且系统需要根据集群做特定的设计

   3 增加新的主机,水平扩展。特定的业务,访问特定的系统。就好比门户网站新闻,社会生活的访问一台好机器,而冷僻的健康类访问令一台机器。这应该是种终极的 扩展方式。再比如短信查询业务通过平台派发到4,5台机器里,而缴费请求少,可以派发到1,2台机器上。当然,最通常的情况是随机派发

      水平扩展难点不同于集群,不用关心如何实现,水平扩展需要在系统最初设计的时候就要考虑。搞不好可能实现不了。涉及到到用户会话以及流程的需求,都需要仔 细考虑,因为请求和响应数据可能在流程中位于不通的主机。对于简单会话来讲,可以在cookie中保存特定的信息,但对于复杂的流程,一次会话有多个请求 和响应,如何进行水平扩展,则很麻烦。


     上面的方法都很粗,如果系统实现了集群或者水平扩展,则即使系统设计的很差,那也能满足要求,要客户多掏钱升级硬件或者多买机器就是了(也碰到过系统实在 有问题,16个CPU,在压力测试下只用到了俩个,这样就没有办法扩展)

    另外增加吞吐量的方法就是对应用精益求精了 ,小到用ConcurentHashMap代替 Map,Stringbuilder代替StringBuffer,大到用Cache,优化JDBC ,SQL等等了。总之,少用系统资源,又能充分利用系统资源,这就是个好系统,不过这涉及到设计和编码,还是有(管理)难度的,客户,项目经理,甚至是架 构师其实都不看重这个方法,因为完成好太累,还不如集群或者水平扩展

分享到:
评论

相关推荐

    系统吞吐量(TPS)、用户并发量

    在设计系统时,需要对系统吞吐量进行预估,以确保系统能够在预期的工作负载下正常运行。评估系统吞吐量的方法通常包括: 1. **确定系统的最高TPS和日PV**:通过分析历史数据或进行压力测试来获取这些关键指标。 2. ...

    系统吞吐量(TPS)、用户并发量、性能测试概念和公式1

    本文将深入探讨系统吞吐量(TPS)、用户并发量以及性能测试中的相关概念和计算公式。 系统吞吐量(TPS,Transactions Per Second)是指系统每秒能处理的事务数量,是衡量系统性能的关键指标。它受到CPU消耗、外部...

    找出系统性能瓶颈:企业级系统性能分析实践 v3.0.pdf

    频繁的GC可能表明内存分配不当或存在内存泄漏,这会严重影响系统的性能,尤其是响应时间和吞吐量。 #### 5. 测试场景资源监控 资源监控是性能分析的重要组成部分,包括对CPU、内存、磁盘I/O、网络带宽等关键资源的...

    TCP吞吐量测量方法研究

    总结来说,TCP吞吐量测量方法的研究旨在理解和优化网络性能,通过深入理解TCP的工作机制和影响因素,我们可以设计出更高效的数据传输策略,提升网络的整体效率。同时,这一领域的研究也对网络工程、系统优化以及未来...

    深入探索数据库性能分析:策略、工具与实践

    首先,数据库性能分析的目的主要包括:提高响应速度、提升吞吐量、优化资源利用率、确保数据安全合规以及预防和解决性能瓶颈。为了实现这些目的,通常需要执行以下步骤:定义性能指标、监控和收集数据、分析数据、...

    响应时间、并发用户数、吞吐量、思考时间的计算.docx

    响应时间、并发用户数、吞吐量和思考时间是软件性能测试中的四个核心概念,它们在衡量系统性能和用户体验上起着至关重要的作用。 响应时间是指用户发起请求到系统返回结果给用户所经历的时间,包括网络传输时间、...

    系统吞吐量(TPS)、用户并发量、性能测试概念和公式终稿.pdf

    在性能测试中,关注点不仅限于吞吐量和并发数,还包括响应时间。用户关注的是操作的响应时间,这直接影响用户体验。管理员则需要考虑系统在高负载下的稳定性和资源利用率,以及故障恢复时间等。作为性能测试工程师,...

    MATLAB仿真平台下的AODV与LEACH自组网网络性能对比:吞吐量、时延、丢包率及节点能量消耗的综合分析,matlab的AODV,leach自组网网络平台仿真,对比吞吐量,端到端时延,丢包率,剩余

    MATLAB仿真平台的引入使得研究人员能够在控制变量的情况下,对比分析AODV和LEACH协议在网络吞吐量、时延、丢包率以及节点能量消耗等方面的性能差异。通过仿真实验,研究人员能够获取大量数据,对这两种协议的适用...

    LoadRunner进行Web测试时吞吐量和点击量深入研究.pdf

    进行深入研究时,需要注意的是,单独的吞吐量和点击量数据并不能全面反映Web应用的性能,它们需要结合具体的业务场景、用户行为、响应时间以及资源使用等其他数据综合评估。另外,不同的测试阶段可能关注的指标侧...

    提高FPGA系统数据吞吐量.pdf

    FPGA技术广泛应用于高性能计算、通信、工业控制等领域,其灵活性和高性能特性使其在数据吞吐量要求较高的应用场景中显得尤为关键。 文档描述提到,随着中档放映系统播放3D影片的码率需求从70Mbps提升至80Mbps,解密...

    软件性能测试:性能测试概述 性能测试步骤 性能测试指标 压力测试

    性能测试是为了评估软件系统在特定工作负载下的响应时间、吞吐量和资源利用率等性能特性。它不仅关注软件在正常情况下的运行效率,还关注在极限条件下的表现,比如大量用户同时访问或处理大数据量。通过性能测试,...

    性能测试-用例设计

    4. 定义性能指标:确定要监控的关键性能指标,如响应时间、吞吐量、错误率、资源利用率(CPU、内存、网络带宽等)。 5. 创建测试脚本:利用自动化工具(如JMeter、LoadRunner)编写性能测试脚本,确保脚本能准确...

    性能需求与设计

    性能指标的定义、性能需求的分析、以及性能测试和压测等环节,都与性能设计紧密相关,任何一个环节的失误都可能导致系统上线后出现性能问题。 首先,性能需求的定义需要基于系统的实际业务场景。在设计性能需求时,...

    并发用户数、吞吐量、思考时间的计算公式

    吞吐量的计算公式为F=VU* R / T,其中 F 为吞吐量,VU 表示虚拟用户个数,R 表示每个虚拟用户发出的请求数,T 表示性能测试所用的时间。 思考时间是软件性能测试中的另一个重要概念,它是指用户进行操作时每个请求...

    性能测试报告-demo模板

    * 吞吐量(Throughput):评估软件系统的处理能力。 * 资源利用率(Resource Utilization):评估软件系统对资源的利用率。 * 错误率(Error Rate):评估软件系统的错误率。 五、性能测试的工具 常用的性能测试...

    01丨性能综述:性能测试的概念到底是什么?.pdf

    这些目标包括但不限于响应时间、吞吐量、资源利用率等关键指标。 ##### 2. 负载测试 负载测试是一种通过模拟不同级别的用户负载来评估软件系统性能的方法。它的主要目的是确定系统在正常或高峰使用情况下能否正常...

    性能测试相关文章集合

    - 响应时间和吞吐量:在没有性能瓶颈的情况下,增加并发用户数会提高吞吐量,但响应时间可能会增加,因为服务器需要处理更多的请求。门的概念可以形象地解释这种关系,比如电梯门打开后,可以快速连续地载人,但若...

Global site tag (gtag.js) - Google Analytics