资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

Asp.net(带负载平衡)程序还是慢,请有此经历的同学指点

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

曾经问过这个问题(http://community.csdn.net/Expert/topic/3281/3281276.xml?temp=.8477594  
  ),后来不知怎么着,好了。因为我碰不到公司的服务器,所以也不知道怎么解决的,总之以前的问题访问量增加后,突然任何asp.net页面都没有反应了,应该是asp.net的进程死掉了。因为asp页面正常。  
   
  最近又有一个新的问题出现,我们又完成一个新的网站。(改造旧网站),在我自己的开发机器上win2000+ii5   ,看起来还好。但是正式发到我们公司带负载平衡的机器上(win2003+iis6),   Host.dll(好像是这个名字)那个进程占用内存不断攀升,然后死机。匆忙中转移到开发服务器上,避免了影响正常服务器上其它程序的运行。  
   
  我实在不知怎么回事,因为这回的程序我保证  
  1.绝对每次关闭连接  
  2.访问数据库一个页面里只有一次,应该和数据库连接不是极频繁。(这个理由欠妥)  
   
  在移到开发服务器上后,因为这个服务器上没有其它的网站运行,所以就是它自己,据硬件部门反馈移过来后内存由7M攀升到300多M.  
  后来的几分钟内我给我的一个连接数据库的用户控件加了一个5分钟的cache,因为这个用户控件每页都有。upload后。机器没出现立即死机现象。运行一个下午正常,但是这时候无法知道是我加的cache起的作用还是这台服务器上的其它程序少起的作用。但是因为这台服务器已经开始正式工作,所以无法再断开测试。  
   
  晚上,死了一回。  
   
  第二天,第三天,因为设置成了IIS每隔一小时reset,所以问题似乎没再出现。  
   
  但是今天公司也不知道哪来的软件做了个测试,尽管asp.net的网站没问题,但是速度上比公司其它的asp网站要慢。  
   
  所以,要向各位请教。  
   
  asp.net应该没道理比asp慢,我的页面基本上都是静态的,只是每页有一个usercontrol,每次与数据库进行一条SQL语句的查询,后台数据库是一个Oracel(8.1.7),运行在一个unix上。我后来单独给这个控件加入一个5分钟的cache后,效果确实有改善。  
   
  运行IIS服务器的硬件配置   win2003,   512M以上内存(我也不是很清楚,应该只多不少)  
   
  我的分析:应该机器硬件或者负载平衡的问题。因为那个发布服务器上同时运行着另外4、5个网站,全是asp的,只有一个asp,net的(以前我说慢的那个)。但是又似乎不可能,因为虚拟主机服务商的机器上应该至少运行10个以上网站吧。  
   
  请有经验的各位指点如何分析和找到问题所在。那个服务器的访问量大概在3000次/天,不同IP大概   500-1000/天。  
   
  问得有点啰嗦,请您费心。  
  感谢。

网友回答:

发表者:yingshis

up

发表者:chnama

拟主机服务商的机器不可能只是512m的内存的

发表者:gshope

影响效率的因素非常多。。。。  
  既然你是负载均衡,你是否用了<sessionState   mode="SQLServer"。。。。  
  这样会严重影响速度。  
 

发表者:lql9935

不会吧。

发表者:cancersyf

影响效率的因素很多,有开发的、部署的等等,开发方面你可以参考--  
   
  Developing   High-Performance   ASP.NET   Applications:  
  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconDevelopingHigh-PerformanceASPNETApplications.asp  
   
  个人对部署不是很了解,如gshope提到的,如果你使用的是out-of-process方式的session,会影响一定的性能,另外如防火墙等的配置不当也会导致性能下降。。。

发表者:popu2

感觉是你遇到dll   hell,或写的程序不会自释放,建议你换win2003   IIS6,将此应用单开一个程序池,如果没有条件换server,在2000机器里寻找machine.config,改动相关配置,使其cpu或内存超限制就重起.

发表者:listhome

都是高人呀,学习中

发表者:gao_771123

用垃圾收集试试

发表者:105910556

你在2003下开发     怎么还在2000下开发?     不同的机器某些方面一定不同  
  你最好在2003下编译一次

发表者:magicmaster

processModel项是用来配置asp.net进程管理的,这些设置只能在machine.config中完成,其用于机器上的所有asp.net应用程序  
   
  其配置共有14个选项(注意大小写):  
  enable   ="true|false"   是否起启用单独的asp.net进程  
  timeout   ="infinite|munute"   进程超时后重启asp.net进程  
  idleTimeout="infinite"   自动终止进程  
  shutDownTimeout="000:05"   从容结束进程   在asp.net   kill进程前从容结束进程  
  requestQueueLimit="5000"   在N个请求之后重新运行进程  
  restartQueueLimit="10"   排队的请求达到N个之后重新启动asp.net进程  
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  memeoryLimit="60"   内存消耗过多后重新运行进程  
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  webGarden="false"   支持多工作进程,只有在多处理器上支持  
  cpuMask="0xffffffff"    
  userName=""  
  password=""  
  logLevel="Errors"  
  clientConnectedCheck="0:00:05"检查客户端是否保持连接  
   
   
  另外不要将大量数据存放在dataset中,一般情况下,datareader就够用了,一台普通服务器一天3WIP也没问题,程序中注意异常处理,同样可以捕获错误,不要用debug模式  
 

发表者:siugwan

gz

发表者:wjcking

up


 

 
热门推荐笔记本: NETBOOK笔记本
相关文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved