2在“详细信息”窗格中,单击“添加新的 Web 服务扩展”。
3“扩展名”框中,输入Web 服务扩展的名称。 IISBOY网,IISBOYCOM单击“添加”。
4在“文件路径”框中,输入路径,然后单击“确定”。 内容来自>w3wpexe就是你的ASPNET应用宿主,如果你使用了大量的Session、Cache等资源,并且Session超市时间很长,那么内存占用量就比较大。应用池是为增加性能而设的一个特性,但是也消耗很大的内存。另外关掉Windows Server 2003里的大多数Service(那个不用都可以关掉),也可以节省一部分内存
1怀疑在程序中应用的CACHE,
2CACHE中有大量的数据
3频繁刷新CACHE
4没有设计好CACHE的方式
你的问题我以前也遇见过,我以前是用的Session,后我全部改成cook之后就好多了,应该是你的Session或是你的CACHE有问题(CACHE不太懂,但多多少应该是有的)
跟踪下SQL的调用记录,在每次往CACHE或SESSION写入大量数据时记录一下时间,看是否太过频繁
1在win2003里aspnet的进程就是w3wpexe
3优化aspnet程序,就向楼上的说的那样,少用或不用session cache application之类的东西,再有就是是不是有翻页的地方,翻页处理不好也是会占很多内存的。
4限制sql的内存。企业管理器——SQL的属性(一般是local)——“内存”标签
在这里看内存的设置,把最大值改成100M吧。
第四条是最快的方法,可以试一试。
我的一个自开发OA系统也存在这样的问题。
总结上面,大概原因是因为 session 和 cache 的不合理使用造成的。
我的应用程序中,确实用了很多的Session 和 Cache,
在 MSDN 中找到 了 “动态内存分配”这一篇,今天就试看矗�欠裼行Аbr /> 希望有经验的朋友多给些信息,大家也好总结下出现类似错误的原因,谢谢!!
不知道你是什么网站。按理说是不会占用这么大的。如上你用了cache存放了超额的内容。当然。象session这种是不太可能占用这么大的了,或用了application 类似的一些有超长时间或永久保持性的对象来保存大量数据。如利用单例保存数据这些都有可能造成使用大量的内存。
建义2003系统安装至少1G内存。
w3wpexe是2003下的一个iis进程,至于楼主说的sql占用内存,那有可能是因为你的sql没有设置占用内存上限
在IIS6下,经常出现w3wpexe的内存及CPU占用不能及时释放,从而导致服务器响应速度很慢。
解决内存占用过多,可以做以下配置:
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2、设置应用程序池的回收时间,默认为1720小时,可以根据情况修改。再设置当内存占用超过多少(如500M),就自动回收内存。
解决CPU占用过多:
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2、设置应用程序池的CPU监视,不超过25%(服务器为4CPU),每分钟刷新,超过限制时关闭。
根据w3wp取得是那个一个应用程序池:
1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid
2、在命令提示符下运行iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池。(iisapp实际上是存放在C:\windows\system32目录下的一个VBS脚本,全名为iisappvbs,如果你和我一样,也禁止了Vbs默认关联程序,那么就需要手动到该目录,先择打开方式,然后选“Microsoft (r) Windows Based Script Host”来执行,就可以得到PID与应用程序池的对应关系。)
3、到iis中察看该应用程序池对应的网站,就ok了,做出上面的内存或CPU方面的限制,或检查程序有无死循环之类的问题。
1单击开始,指向程序,单击以选择管理工具,然后单击Internet服务管理器。2展开服务器的名称。3在左侧窗格中,右键单击默认网站,指向新建,然后单击虚拟目录。4在“虚拟目录创建向导”的第一个屏幕中,为虚拟目录键入别名或名称(如MyWebData),然后单击下一步。5在第二个屏幕中,单击浏览。定位到为了存放内容而创建的内容文件夹。单击下一步。6在第三个屏幕中,选择读取并运行脚本(如ASP)。请务必清除其他复选框。单击完成以结束向导。7对于ASP内容,您可能希望确认是否创建了一个应用程序。为此,请右键单击新的虚拟目录,然后单击属性。8在虚拟目录选项卡上,确保该虚拟目录的名称列在应用程序设置下的应用程序名框中。如果没有,请单击创建。注意:应用程序名不一定与虚拟目录别名相匹配。9关闭属性对话框。
IIS可以设置定时自动回收,默认回收是1740分钟,也就是29小时。IIS自动回收相当于服务器IIS重启,应用程序池内存清空,所有数据被清除,相当于IIS重启,在度量快速开发平台服务器端,为了减小数据库负担,内存中暂存了很多信息,不适合频繁的回收,因为回收会造成服务器端所有存在内存中的数据丢失,如果没有及时保存到数据库中,可能导致程序出现问题。而如果系统使用高峰时期,并不适合回收,回收可能导致几十秒IIS无响应,对于正在工作的人员来说,是一种很不好的体验,会以为是网络或者掉线等问题。因此,基于以上的分析,我们需要设置IIS在指定的时间内定时回收。
IIS应用程序池回收,找到相应的应用程序池并点击高级设置,就可以看到回收的相关设置(本文以windows2008R2下的IIS7为例,Windows2012类似)。
(图1)
发生配置更改时禁止回收:如果为True,应用程序池在发生配置更改时将不会回收。
固定时间间隔(分钟):超过设置的时间后,应用程序池回收,为0意味着应用程序池不会按固定间隔回收。系统默认设置的时间是1740(29小时)。
禁用重叠回收:如果为true,将发生应用程序池回收,以便在创建另一个工作进程之前退出现有工作进程。
请求限制:应用程序池在回收之前可以处理的最大请求数。如果值为0,则表示应用程序池可以处理的请求数没有限制。
生成回收事件日志条目:每发生一次指定的回收事件时便产生一个事件日志条目,里面的明细设置不一一介绍。
根据度量平台服务端配置情况看,IIS默认设置的1740分钟回收进程的策略并不合理,因为每1740分钟回收,在过程中可能就处于用户使用系统的高峰时段,为避免可能在高峰时段引起非可控问题,我们建议在每周六深夜(例如晚上1点,2点)进行IIS回收。
如果我们在IIS应用程序池的高级设置中,进行回收设置,那么只有两种方式进行,一种是固定时间间隔,一种是手动回收。固定时间间隔设置,并不太好在深夜设置,以保证每周周六深夜执行回收。我们推荐采用windows “任务计划程序”配置一个 *** 作系统定时任务执行脚本程序来实现IIS回收,设置方便,也可以灵活调整。 要通过脚本执行IIS的功能,需要在IIS安装配置的时候,勾选上管理工具中的“IIS管理脚本和工具”(见下图)。
用vbs脚本及批处理文件,结合任务计划程序,保证在每周六深夜1点执行IIS回收。
Recyclepoolvbs 文件内容:
appPoolName = WScriptArguments(0)
Set oWebAdmin = GetObject("winmgmts:root\WebAdministration")
Set oAppPool = oWebAdminGet("ApplicationPoolName='" + appPoolName + "'")
oAppPoolRecycle
set fso=createobject("scriptingfilesystemobject")
if (fsofileexists("d:\appPool\recycleIISPoollog")) then
'1-forreading,2-forwriting,8-appending
set file=fsoopentextfile("d:\appPool\recycleIISPoollog",8,ture)
else
set file=fsocreatetextfile( "d:\appPool\recycleIISPoollog",8,ture)
end if
'write(x)写入x个字符,writeline写入换行,writeblanklines(n)写入N个空行
filewriteline now&" 应用程序池“"&appPoolName &"”已经回收成功。"
fileclose
Recyclepoolbat文件内容:
cscript D:\appPool\recyclepoolvbs platweb
用vbs脚本及批处理文件,结合任务计划程序,保证在每周六深夜1点执行IIS回收。
成功用windows计划任务解决IIS定时回收问题。
电脑->(右键)管理
管理——》服务与系统程序
找到internetinformationservice,点击 。
看到如图界面。连接下的扩展。
右键 -》添加网站。
名字随便写。注意应用程序池,选择classic的那个(已框出)
物理路径 ,可以选择任意一个盘上的文件。我选的是自己的‘我的第一个网站’文件夹。
其余默认。因为这是本地的网站。(当然,别人也可以通过访问你的ip而访问到这个默认的网址的。)
回到计算机管理。可见到网站下有,“我的第一个网站”。选择对应的“目录浏览”
单击,浏览目录后。选择“启用”。
Service
Unavailable是一种系统的警告提示。
出现 Service Unavailable的原因有几个并附上解决方法:
web服务器正在重启症状表现:网站几天到十几天出现一次Service
Unavailable,并且持续时间在1分钟左右后自动恢复!
解决方法:该症状通常是WEB服务器在重启,一般需要1-2分钟,重启完后就会自动恢复,无需要做任何其他 *** 作等待系统自动恢复即可!
IIS连接数不够症状表现:网站频繁出现Service Unavailable,并且出现Service
Unavailable的时候连续刷新几下偶尔又能正常浏览,而且此类问题多出现在网站访问高峰期,比如下午或晚上,到了凌晨时分就很少出现!
解决方法:该症状可先检查是否网站或附件被盗链,最常见的是和其他大流量网站做友情连接时对方直接调用的你的LOGO。可以通过修改或附件的路径、关闭网站下载来解决,或者联系技术员对站点开启防盗连功能,如果还不行可以考虑升级空间来扩展IIS个数!有部分客户在其他地方比如在taobao上大量调用了网站空间里面的占用了大量的IIS导致IIS不够,如果需要在taobao上大量调用建议购买不限制IIS的主机产品!
超出系统分配CPU资源症状表现:网站有时候突然出现Service
Unavailable,然后过1分钟后就自动恢复
解决方法:最常见的是使用采集程序时瞬间CPU占用率超出由于采集和生成HTML需要占用大量的服务器资源,建议在凌晨服务器空闲时候采集生成,另外部分客户的程序由于代码不规范导致CPU瞬间占用过高有时候也会导致这个问题,建议优化代码!
网站程序有问题导致WEB服务应用程序池被系统自动禁用症状表现:网站一直Service
Unavailable
解决方法:此类问题通常是由于网站程序或者和站点同一个应用程序池的其它客户的程序有严重问题,导致应用池自动被禁用,该问题必须联系技术人员帮您更换一个应用程序池!
应用程序池 'DefaultAppPool' 提供服务的进程关闭时间超过了限制服务器经常产生“应用程序池 'DefaultAppPool' 提供服务的进程关闭时间超过了限制。进程 ID 是 '2068'。”的错误,导致iis处于假死状态,经了解是IIS应用程序池的设置问题。解决方法如下:
Internet 信息服务(IIS)管理器->应用程序池->DefaultAppPool->右击属性
一、回收
1、回收工作进程(分钟):选中,值为1740
2、回收工作进程(请求数目):不选(原先设置为35000)
3、在下列时间回收工作进程:不填
4、消耗太多内存时回收工作进程:全不选。(2、3、4项可能避免了在访问量高的时候强制回收进程可能引发的服务器响应问题,导致iis假死不响应)
二、性能
只选中空闲超时20分钟。其他都不选。WEB园最大工作进程数为1(默认)。注意web园这里一定要保持默认,如果填写其他超过1的数字就会导致一些网站程序的后台程序打不开或者刷新不停。
原来的请求队列限制为4000,现在无限制。
三、运行状况
前两项都起用,是原来的默认设置。启动时间限制90秒,关闭时间限制180秒。
启动快速失败保护的钩去掉!
为了避免真的遇到很多错误时没有提示,可以不关闭,只是把快速保护的保护范围加大些,例如失败数50次 时间段5分钟 则关闭对应的程序。
“关闭时间限制180秒”是必须的,因为进程关闭的时间,原来为90秒限制,是默认值,如果进程关闭时间超过90秒,则认为超时,从而出现:进程关闭时间超过了限制 日志,所以,适当延长这个时间,可以避免这种错误>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)