系统性能优化的常见八大误区

发表于:2012-3-23 10:17

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:叶正盛    来源:51Testing软件测试网采编

  一、吞吐量与响应时间

  系统的吞吐量反映了一个系统的容量,可承受的负载,很多系统都以这样一个指标来衡量系统的性能。而响应时间往往更容易忽视。我认为吞吐量更多是衡量一个系统在特定压力下的稳定性,而响应时间可以更好的形容系统性能。一个请求响应时间满足不了需求,那系统再高的吞吐量是没有意义的。比如普通的网站页面,如果客户的一个请求都能在200ms以内响应,那是非常不错,如果能在2秒内响应,那也还行,但如果都要在20秒响应,估计没人使用。而对于局域网内的应用,如营业厅收费操作,这种响应时间如果是2秒都会让营业员有明显的不爽。

  二、忽视系统环境差异

  我们是否经常出现线下性能测试非常好,线上性能很差问题,或者是A环境好,B环境性能差。这种情况大部份是系统环境的差异,如两个环境硬件不一样,配置参数不一样,数据规模不一样,缓存命中率不一样等等。在做性能测试时需要深入分析正式环境的各种数据细节,然后在做性能测试时有针对性的去模拟。

  三、性能测试无用论

  性能测试是一个非常复杂的工作,也是最考验人计算机功底的工作,性能测试并不仅是学习如何使用loadrunner或jmeter之类的工具,更多是要分析用户及业务场景,估算并验证系统性能容量,找出性能瓶颈并解决。精通测试工具可以更好的提高工作效率。之所以有些人会提出性能测试无用论,大部份因为他认为正式环境太复杂,无法有效模拟出正式环境的瓶颈。其实这也是性能测试的难点,如何在不同的环境中模拟出性能瓶颈。如果是普通测试工程师,估计只会根据业务逻辑搭建性能测试环境,并给出测试结果。如果是高级测试工程师应该清楚系统架构、应用逻辑、业务场景、数据分布、硬件性能等等,最后给出有意义的性能测试模拟场景和数据。

  性能测试最容易忽视的是数据分布与缓存命中率。正式环境的数据分布可以通过线上数据抽样,没有正式数据只能根据业务评估。比如工作流应用中个人平均待办工单是多少?电子商务应用中热销商品的评价记录会有多少?这些数据分布对性能测试的结果有非常大的影响。

  缓存命中率对性能测试结果的影响更恐怖,可能有10倍,甚至上万倍都不为过。常用如CPU cache对内存的缓存,内存对硬盘的数据缓存,memcached对db数据的缓存,浏览器本地对远程的缓存。我们做性能测试需要仔细分析正式的缓存命中数据,然后模拟最差值、正常值、最好值去评测,最后分析出缓存命中率对真实性能的影响。

  四、缺少性能量化

  性能量化是指对系统功能或硬件的主要指标进行性能指标计算,比如一个查询请求的所有开销计算,包括网络开销,应用服务器开销,数据库服务器开销等等,或者是更细化的CPU开销,内存开销,IO开销等。性能量化还包括系统所使用的硬件指标,包括CPU性能,内存容量及性能,硬盘带宽及IOPS,网络带宽及延时等等。没有这些基础数据是很难做性能量化,否则只能做简单的表面性能测试,给出一些感性数据,准确的系统整体性能容量评估也无从谈起。没有扎实的性能量化基础数据,搞不清楚一个逻辑在各个环节开销,那做性能优化只能是凭感觉或经验走。

  五、硬件成本

  在IT人的眼里硬件的费用是很高的,软件成本是很低的甚至可以忽略,因为硬件需要购买,基本上没有免费的硬件,而软件可以选择开源免费的,或者自己开发,甚至使用盗版。因此在遇到性能问题是程序员首先想到的优化软件性能。但在这个人工成本上升,硬件成本下降,硬件性能或容量随摩尔定率的发展的时代,我们也应该重视硬件的优化方法。

  如果是服务器网络瓶颈,百兆接口升级到千兆,千兆升级到多口千兆甚至是万兆,这种升级都可以快速解决性能问题。单块SATA硬盘吞吐量不够,可以选择换SAS 15K硬盘,吞吐量就提升1倍,如果还不够可以选择多块硬盘做RAID,实现一个数量级内近线性的吞吐量提升,如果是硬盘IOPS低,可以选择换SATA的SSD硬盘,能提升10倍以上的IOPS,如果要求更高可以选择换PCIe的SSD硬盘,可以提升100倍以上的IOPS。内存不足可以增加内存容量,当前单根4G,8G容量的内存性价比都不错。CPU升级一般比较麻烦,因为受到CPU架构的影响,且CPU的发展较快,成本较高,所以很少做,对于老的服务器CPU不足一般会选择直接淘汰,重新采购新的。

  通过硬件升级可以快速解决系统性能问题,对于可预估的系统容量性价很好。但顶配或者新出来的硬件贵得离谱,最新的硬件往往也会存在一些未知的BUG,所以硬件升级一般不会选择1年内出来的全新架构的设备,而通常选择2年以上比较成熟的硬件性价比会更好。但是硬件升级往往会有上限,顶配或者最高性能的硬件往往性价比不好,所以在硬件升级解决问题后同时需要分析业务增长导致更多硬件成本的问题。选择软件优化还是硬件优化是一种技术成本平衡决策,有时软件也需要针对硬件做特定的优化。

21/212>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • yzylion
    2012-3-25 22:06:21

    对文中的第一个问题有不同的意见,其他的都觉得说的很赞,特别是结尾提到的性能在达到了需求之后,我们的优化要考虑带来的性能提升对整体架构的影响,后期的可扩展?可维护是怎么样的?对周边的,其余的用户业务是否有影响?优化带来的稳定性如何?

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号