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

系统性能优化的八大误区

一、吞吐量和响应时间

系统的吞吐量反映了系统的容量。,负担得起的负荷,很多系统都以这样一个指标来衡量系统的性能。响应时间往往更容易被忽略。。我认为吞吐量更多地取决于系统在某一预条件下的稳定性。,响应时间可以更好地描述系统性能。。请求响应时间不能满足需要。,系统的高吞吐量是没有意义的。。例如,普通网页。,如果客户的请求可以在200毫秒内响应,,那很好。,如果它能在2秒内做出反应,没关系。,但是如果你必须在20秒内做出反应,,没有人希望使用它。。局域网应用,例如,营业厅的收费操作,如果响应时间为2秒,销售人员显然将不复存在。。

二、忽视制度环境差异

我们经常很好地执行离线性能测试吗?,在线性能不佳,或者环境是好的。,B环境性能不佳。这主要是系统环境的差异。,例如,两个环境硬件是不同的。,配置参数是不同的。,数据大小不同。,缓存命中率不同。。在执行性能测试时,我们需要分析各种数据DETA。,然后在进行性能测试时进行仿真。。

三、性能测试无用理论

性能测试是一项非常复杂的任务。,这也是对人类计算机技能的考验。,性能测试并不仅是学习如何使用loadrunner或jmeter之类的工具,更多的是分析用户和业务场景。,系统性能容量的估计与验证,识别性能瓶颈并解决它们。熟练使用测试工具可以提高工作效率。。之所以有些人会提出性能测试无用理论,主要是因为他认为正式的环境太复杂了。,无法有效地模拟形式环境的瓶颈。。事实上,这也是性能测试的难点。,如何模拟不同环境下的性能瓶颈。如果是通用测试工程师,据估计,性能测试环境将建立一致。,文中还给出了测试结果。。如果是高级测试工程师应该清楚系统架构、应用逻辑、业务场景、数据分布、硬件性能等,最后,对模拟场景和数据进行了有意义的性能测试。。

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

缓存命中率对性能测试结果有较大影响。,大概10次。,甚至数万次。。常用作CPU 高速缓冲存储器,硬盘数据的内存缓存,DB数据的缓存缓存,浏览器本地远程缓存。我们需要仔细分析正式缓存命中数据的性能证明。,然后模拟最坏值。、正常值、最佳评价价值,最后,分析了高速缓存命中率对实际性能的影响。。

四、缺乏绩效量化

性能量化指的是TH的性能指标计算。,例如,查询请求的所有成本计算。,包括网络开销,应用服务器开销,数据库服务器开销等。,或者更详细的CPU开销。,内存开销,IO开销等。性能度量还包括系统使用的硬件规范。,包括CPU性能,存储容量与性能,硬盘带宽和IOPS,网络带宽和时延等。。没有这些基本数据,很难量化性能。,否则,只能做简单的表面性能测试。,给出了一些感知数据。,不可能准确地评估总体性能和产能。。没有基本的性能来量化基础数据。,目前还不清楚每一个环节的逻辑成本。,性能优化只能通过感觉或体验来完成。。

五、硬件成本

在人们看来,硬件的成本是非常高的。,软件的成本很低,甚至可以忽略不计。,因为硬件需要购买。,基本上,没有免费的硬件。,软件可以是开源的。,或者自己开发。,甚至使用盗版。。因此,面对性能问题,程序员首先想到的是优化器。。但是劳动力成本正在上升。,硬件成本下降,硬件性能或摩尔容量的发展年龄,我们还应该重视硬件优化。。

如果服务器网络瓶颈,千兆位接口升级到千兆位,千兆位升级到多端口千兆甚至万亿,这种升级可以快速解决性能问题。。单块SATA硬盘的吞吐量是不够的。,你可以选择改变SAS。 15K硬盘,吞吐量增长了1倍。,如果不够,可以选择多个硬盘驱动器进行RAID。,在一个数量级内实现接近线性的吞吐量增加,如果硬盘IOPS很低,您可以选择替换SATA的SSD硬盘。,IOPS可以增加10倍以上。,如果请求更高,您可以选择更改PCI的SSD硬盘。,IOPS可增加100次以上。。内存不足会增加内存容量。,当前单4G,8G具有良好的存储性能和良好的价格性能。。CPU升级通常是繁琐的。,由于CPU体系结构的影响。,CPU的开发速度更快。,成本较高,所以很少这样做。,对于旧的服务器,CPU通常会被直接淘汰。,回购新。

硬件升级可以很快解决系统性能问题。,对于一个可预测的系统容量价格,它是好的。。但是顶级匹配或新硬件太贵了。,最新的硬件经常有一些未知的bug。,所以硬件升级一般不选择新的架构。,通常选择超过2年的硬件价格会更高。。但是硬件升级往往有上限。,性能最高或性能最高的硬件通常成本很低。,所以在硬件升级解决问题后同时需要分析业务增长导致更多硬件成本的问题。选择软件优化或硬件优化是一项技术成本,有时软件也需要针对硬件做特定的优化。

六、缓存功率

缓存是一件好事。,基本上90%的系统架构优化都是在围绕着如何利用好缓存。缓存无处不在。,浅谈硬件,硬盘缓存,磁盘卡缓存,存储缓存,主存,NUMA特性,CPU L3-L2-L1等。。看软件体系结构,全局数据缓存,私有数据缓存,连接池,应用服务器缓存,Web服务器缓存,CDN缓存,客户端文件缓存,客户端内存缓存等。。基本上,大型系统会有很多级别的缓存。,否则,需要非常高的硬件输入来解决这个问题。。硬件缓存通常更智能化。,或者99%,我们不需要修改配置。,即使修改带来的性能提升一般也不会太多,除非你的软件有明显的缺陷。,你对硬件和你的软件特性已经了解得非常深入。 软件缓存体系结构提高性能,这也带来了负面的问题。,如架构复杂化,数据同步多,数据不实时,高维护成本,系统调试复杂等。,因此,对于软件体系结构上的任何缓存结构,,有必要对其进行必要的深入分析。。我想如果你添加一层缓存体系结构,至少提高5倍以上。,否则,我们应该分析成本。。 中小型系统,不推荐使用复杂的缓存体系结构。,因为使系统更快速比提供贝特更有意义。,杂项缓存架构通常需要更多的人力成本。。

七、客户第一

我不知道谁把顾客放在第一位。,但这个词不能从字面上理解。,否则,它将带领我们走向错误的道路。。首先,谁是我们的客户,谁是我们的直接客户?,谁是我们的最终客户?,我们付钱给客户吗?1型客户之间的利益冲突,我们应该先拿谁?。如何处理重要客户与大多数客户I之间的冲突。这些看似无关的系统性能优化主题。,但是它经常影响我们系统设计的各个方面。。我们做的工作有没有为了个别客户去优化他的界面流程或性能而让大部份用户认为系统更复杂或更难使用。

八、过度优化

我们都知道性能优化的重要性。,因此我们很多经历都是在做伟德体育,这也使得我们有时会犯一些过度优化的错误。。有人说他的性能优化增加了10倍。,100次,1000倍,但有时我们不需要这样做。,这种事情更多的是关于优化技能的研究。。优化时,我们应该问更多的问题。 :你的优化是如何改变系统的?:

你的优化使系统更复杂了吗?,以后的高维护成本了一些?

优化对大多数业务场景有效吗?,抑或只是放缓或使企业的其他部分变得复杂?

你的优化有客户体验的感觉吗?

你的优化方法是可持续有效的吗?,或者在业务逻辑上有轻微的变化吗?

。。。。。。

我认为伟德体育一定要有一个目标,而不仅仅是提高性能。,因为性能优化会带来或多或少的系统复杂性。。系统性能优化以满足需求。,我们需要开始测量系统架构是否会更大。,或者系统的稳定性变差。,维护性差等。。

叶正盛
2012-03-20
我的新浪微博:

发表评论

电子邮件地址不会被公开。 必填项已用*标注