基于.NET应用系统性能优化研究与实践
- 格式:doc
- 大小:25.50 KB
- 文档页数:6
基于.NET应用系统性能优化的研究与实践
摘要:本文从程序设计优化、web服务器优化、数据库服务器优
化三方面综合阐述了如何对基于.net平台的web 应用系统进行优
化的技术方法和实践经验。
在系统的生命周期内做好综合优化工作,从而达到提高web系统的性能,推迟硬件的升级,降低应用系统的开发成本的目的。
关键词:.net;性能优化;web 程序;web服务器;iis;数据库服务器
中图分类号:tp393.09 文献标识码:a文章编号:1007-9599 (2013) 05-0000-02
随着技术的发展,有丰富的技术方法来开发基于网络的应用系统。
作为主流的.net平台,则作为首选的开发技术。
一个好的web 应用系统,除了具备易于操作的界面,华丽的页面,更应该注重其网页检索数据的速度是否够快、是否出现数据丢失现象,是否出现乱码或者无法登陆而需重启iis,甚至某些功能突然无法使用。
而
一个web应用系统的性能表现,不仅仅是一系列的参数,而应作为应用系统的一项功能。
所以在进行系统设计时,就需要把性能问题考虑进去。
而不是在整个应用系统开发完毕再对其性能进行优化,这样做会付出更多的时间、成本等代价。
本文将从程序设计优化、web服务器优化、数据库服务器优化三方面来阐述web应用系统的
优化问题。
1程序设计优化
微软的.net平台作为新一代的web系统开发平台有着非常卓越的性能。
但要在此基础上开发出专业水准的、符合生产标准的、受用户欢迎的web系统,还需要开发人员从程序设计的角度在数据展示、并发控制、技术方案等多方面进行优化处理,以提高web系统的总体性能。
合理的数据展示方式:避免一次性从数据库中查询大量的数据进行展示,可采用分页、延迟加载等形式。
合理控制并发数量:大数据量、长时间的处理程序,要考虑进行并发数量的控制,避免产生大量的排队、超时现象。
合理的技术方案:大文件的上传需要考虑web服务器的压力,采用传统的上传方式容易造成web服务器负载过重,必须控制上传的并发量,或者采用专用的上传控件。
有效的各层缓存:把一些页面层公用的资源,比如权限对应的url 就可以放在application对象中,减少频繁地通过数据库访问来验证当前用户的权限信息;将底层类实例或者sql语句通过静态变量缓存起来,每次使用时从缓存中调出即可,不用重新构建占用资源。
合理控制会话时长:要合理设定session 的时间,避免过长时间的会话,否则对iis产生不必要的压力;由于系统程序上的问题不能使用 server,所以在webconfigure里将session的时间设为120(原来系统设置的是480)。
合理的数据操作方式:根据实际测试发现update操作的效率明显不如insert,因此同样操作尽量使用完整的insert语句,而不
要采用“短insert+ update”的方式。
web应用系统通过从程序设计的角度进行优化,有利于系统的稳定运行,节省了成本。
对于每一个系统开发人员来说,利用有限的硬件条件,提高了程序的性能,不失为明智的选择。
2web服务器优化
web服务器性能是整个web系统的关键环节,提高web服务器的性能也是长久以来人们一直关注的课题。
实际上管理员在安装、配置iis的时,没有对其进行优化或者配置错误;随着运行的服务种类,以及访问人数的增加,服务器原有的硬件配置已不能满足要求了,这就需要提高硬件配置。
这就导致了安装缺陷和缺乏维护的问题。
这里从iis优化开始,为web服务器进行减负。
2.1禁止多余的web服务扩展。
对iis进行设置时,用到什么扩展就启用什么扩展,不需要的扩展则关闭。
对于web服务器运行时用不到的扩展,它们占用了iis资源,对web服务器的性能有很大的影响,某些攻击者会利用这些扩展存在的漏洞对系统进行攻击,例如“所有未知cgi扩展”、“在服务器端的包含文件”等应进行关闭。
2.2删除不必要的iis扩展名映射。
用不到的扩展名如:asa,.cer 等会加重web服务器的负担,很可能发生一定的安全隐患。
所以需要根据程序的需要,把不必要的应用程序映射删除,比
如.shtml,.shtm,.stm等。
2.3取消访问记录。
iis默认开启了web访问记录功能,这会记
录下web的访问情况。
这样,大量的磁盘空间被这些记录占用,还很大程度的影响了web服务器的性能。
提升5%到8%的应用系统性能,就需要停止访问记录。
所以,对于一般中小型的web应用系统建议关闭它。
2.4对访问流量进行限制。
默认情况下iis6.0对于访问量是没有限制的,当用户并发数超过了网络负载则会发生网络拥堵,甚至导致服务器宕机。
因此需要控制web访问的流量,来对用户的访问进行限制。
2.5让web负载自由伸缩。
若不进行设置,iis则对web提供全负荷的服务,这种方式使得web服务器有很大的负载。
iis6.0的web园就能解决这一问题,指定用于应用程序池的工作进程的数量,就能隔离web服务器的各个站点,使其能够自动地根据负载变化自动调节工作进程。
2.6配置应用程序池。
对于虚拟主机的一台服务器上有很多web 站点的情况,iis则可以支持多个web服务。
若一个web站点发生问题,则会影响到其他应用。
因此,我们需要将各个应用系统进行独立,需要通过为不同的应用进程指定应用程序池的方法来解决这个问题。
尤其是服务器上有多个版本的framework时,应用程序池独立尤为重要。
(1)创建:在iis管理器中可新建应用程序池,也可以将现有应用程序池作为模板。
(2)指派:为站点指派应用程序池。
若不可指派,则创建应用程序名,然后指派网站的应用程序池。
(3)回收:利用“回收”功能,可以设置如何恢复系统资源,进
行iis资源使用的灵活定制。
2.7管理iis日志。
一般情况下iis都是默认“启用日志记录”的,但是由于长期累积,日志文件会非常大,必然会使iis压力过大,从而影响系统速度,所以可以对iis日志文件进行相应的管理。
首先选中某个站点,然后右键单击选择属性,在“网站”选项卡中,可以将“启用日志记录”勾选掉,或者点击“活动日志格式”后的属性,对日志进行进一步的设置,进入页面,在“常规”选项卡的“新日志计划”中选择最后一项,“当文件大小达到20兆”时启用新日志计划,即避免了单一日志文件过大,影响系统运行速度的情况。
在“高级”选项卡中也可以进一步进行设置。
2.8总结。
通过对iis的优化设置,web服务器就实现了“减负“,性能将得到较大的提升。
当然,只仅依靠软件设置是不能从根本上改善web性能的。
此外,还要对其进行硬件改造。
只有软硬皆施才是最完美的解决方案。
3数据库服务器优化
应用系统的响应速度是其性能表现的一项十分重要因素。
通常web应用系统通过数据库来存储数据,利用.net等主流技术建立于数据库的连接,从而形成动态交互的web应用系统。
其性能表现除了以上论述的程序设计、web服务器已经软硬件配置相关外,数据库服务器也是不可忽视的。
3.1数据库设计优化
数据库的性能直接影响到应用程序的性能,因此在web应用程序
设计时就要把数据库设计的性能问题考虑进去。
表是数据库中最基本的元素,在进行数据库表的设计时,一般的规范化标准是第三范式。
但在实际工作中,若将表按照规范拆分为多个表,查询时进行多表连接,反而降低了查询的响应时间。
所以,需要根据实际情况突破规划化标准的限制来对表进行分割,保留一些冗余的列、增加派生列等来提升对各个表的查询速度。