一次网站故障的排除

先说下运行环境:

OS:winserve2012

DB:SQLSERVER

IIS+ASP.NET

最近某网站愈来愈慢,经咨询给出的回复是说网站缓存文件太多导致,需要删除缓存.

@ECHO OFF

iisreset /stop

Echo Deleting x86 Temporary ASP.NET Files

for /d %%i in (“%systemroot%\Microsoft.Net\Framework\v*”) do for /d %%f in (“%%i\Temporary ASP.NET Files\*”) do RD /q/s “%%f”

Echo Deleting x64 Temporary ASP.NET Files
for /d %%i in (“%systemroot%\Microsoft.Net\Framework64\v*”) do for /d %%f in (“%%i\Temporary ASP.NET Files\*”) do RD /q/s “%%f”

iisreset /start

@ECHO ON

操作后,刚开始有效果,后来有效时间越来越短,说明没对症,有联系了不靠谱的网站公司,回应说生成的静态文件也需要删除,由于海量的静态文件生成在一个文件夹中,系统的IO达到瓶颈,听着像是那么回事,于是增加批量删除静态文件操作.但是收效甚微.所以考虑没有找到问题所在,唯一的特征是重启IIS后会快很多.由此出发,重启IIS时,会释放所有的TCP连接,重启应用池.

首先 netstat-ano, IIS刚重启好和网站卡的时候,区别是增加了很多处理close_wait的连接,而且本地应用是HTTP,端口80,初步怀疑是程序的连接没有正常关闭,占用了大量系统资源,导致后续的出先等待.

所以解决方案一.是增大TCP连接数(server2012 默认值为5000),用tcpview发现总连接没有超过500,所以应该不需要增加默认连接数,如果要修改

修改最大TCP连接端口数(MaxUserPort)限制,修改方法:在注册表HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters中添加名为MaxUserPort,类型为DWORD(32-bit),值为65543(10进制)的项目并重启计算机。

方案二,强制关闭等待的连接,(持续观察中)

欢迎访问本网站!
雨木霜月 » 一次网站故障的排除

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据