[ZT]关注系统性能


<script> function StorePage() { d=document; t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():''); void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes')); keyit.focus(); } </script>

一个系统要有的好的性能,有某些基本要素:

  • 系统各个环节都要拥有最好的性能。这代表着有高素质的开发团队,好的系统架构。好的程序撰写技巧等等。而有任何一环弱,系统就有瓶颈存在,就可能有性能问题。要有好的开发团队绝非一蹴而就,而要有长时间的培养,每个成员都有充足的培训、经验,彼此有充分的合作默契,如此长能生产出性能良好的系统。
  •  另外,用户的培训教育也非常重要。当用户的操作习惯不好时,例如在运行的尖峰时刻做数据库的完整备份(时常碰到这样的情况),喜欢在服务器运行非常炫丽的屏幕保护程序,让系统一切进屏幕保护程序就耗费大量的CPU资源去计算屏幕保护要显示的图案。或是在服务器安装小游戏,或利用它来上网,甚至是不当的使用,让服务器成为计算机病毒的大本营。抑或是喜欢动动这个,设设这个;看到RAID磁盘阵列,就会插拔一下,试试它的异常处理;看到双电源,就踢掉一个电源试试(类似的好奇心旺胜的菜鸟系统管理员还不在少数)。种种不当的操作行为都应该要让用户知道后果的严重性,并让大家者有性能的基本常识,避免你一直在找出乎意料的原因。
  • 性能问题在开发的过程中就需要注意,尤其是数据库的设计,数据库的性能是一个系统性能的非常重要部份,可能牵动整个程序架构。(N层系统的后台性能问题很多时候都出在数据库上)整个应用程序的开发最好快整速建立测试系统(Prototype),让用户在开发过程中一再测试,以循环递增的方式屡次修正问题,如此可以提早发现潜藏的性能问题,在开发过程中解决性能问题要比系统完成、交付后才发现性能问题,而后需要大改来得好。
  • 在开发流程中做压力测试时,应该超过用户的标准,因为你无法预期用户是否会正常使用系统,最好一直加压到系统无法承受,试出系统的各种边界,例如最高容许多少人同时上线,数据容量最大是多少,最少需要多少内存,最差等级的CPU什么。是否会出现网络阻塞等等。将系统加压到挂了为止,记录各阶段相关的数据,以及什么资源不足时,整体系统会显示的状况为何,让真实系统在早期出现警报时,你能迅速做出正确的判断,化解其后将可能发生的性能灾难。
  • 当数据量大、商业逻辑要执行很久的时候,尽量让用户有部分的响应。用传统的Visual Basic编写的程序这比较不容易,但利用.Net Framework撰写的程序,则可以利用默认的异步模型,或是自行撰写多线程程序,以提高与用户的互动性,减少枯等的情况发生,否则若用户等不及,以为程序当掉而关闭再重新执行,甚至是硬件重启动,这还会增加系统处理的复杂性,因为一般服务器端的系统都是一段时间才检查一下前端程序是否还健在,而从前端系统新启动到服务端检查发现的间隔时间中,该前端所使用的资源都无法释放,更有可能当该用户又重新登录,还会搅乱商业逻辑。

---------------------------------------------------------------------------节选自《Microsoft SQL SERVER 性能调较》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值