网站问题处理过程



1.程序问题。
换程序,还原的网站是不是旧的,能否查看具体报错信息,拿一台机器,现场调试?

2.数据库问题
(数据库链接没关闭,数据库服务器cpu占用100%,查询数据库是否有死锁)。数据库查询时间太长了

3.网络问题
 如果断了网,链接还是这个问题就是程序的问题了,和访问量没关系
 换网段。 压力测试?

4.病毒 检查页面是否被修改

5.代码

其他配置修改:
1.改大上传数
<system.web>
< httpRuntime maxRequestLength = "40960" useFullyQualifiedRedirectUrl="true"/>
< /system.web>
2.如果是1.1的话appRequestQueueLimit 改大点 1000
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG下,先备份machine.config再修改,
修改对应站点归属应用程序池的“请求队列限制” ,这个的默认值是4000,  改为10000
maxWorkerThreads="20"  改为 "40"
maxIoThreads="20"  改为 "40"
appRequestQueueLimit="100"  改为 "400"
有可能连接数超了。修改一下IIS数据库文件。
%windir%\system32\inetsrv\MetaBase.xml
修改AspRequestQueueMax值,服务器配置高的话,可以加多多的。

3. 工作进程数,请求队列数,网站属性页-性能 网站连数数不要设得太小设置高一点
应用池右键属性-性能 核心请求队列限制为:10000

4.还原的网站是不是旧的

5.观察程序池是否溢出,满了?怎么观察


死锁的存储过程
CREATE procedure sp_who_lock  
as    
begin    
   declare @spid int    
   declare @blk int    

   declare @count int    

   declare @index int    

   declare @lock tinyint     

   set @lock=0     

   create table #temp_who_lock     

 (     

  id int identity(1,1),     

  spid int,     

  blk int    

 )     

 if @@error<>0 return @@error     

 insert into #temp_who_lock(spid,blk)     

 select 0 ,blocked      

 from (select * from master..sysprocesses where blocked>0)a     

 where not exists(select * from  master..sysprocesses where a.blocked =spid and blocked>0)     

 union select spid,blocked from  master..sysprocesses where blocked>0     

 if @@error<>0 return @@error     

 select @count=count(*),@index=1 from #temp_who_lock     

 if @@error<>0 return @@error     

 if @count=0     

 begin    

  select '没有阻塞和死锁信息'    

  return 0     

 end    

 while @index<=@count     

 begin    

  if exists(select 1 from #temp_who_lock a where id>@index and exists(select 1 from #temp_who_lock where id<=@index and a.blk=spid))     

  begin    

   set @lock=1     

   select @spid=spid,@blk=blk from #temp_who_lock where id=@index    

   select '引起数据库死锁的是: '+ CAST(@spid AS VARCHAR(10)) + '进程号,其执行的SQL语法如下'    

   select  @spid, @blk   

   dbcc inputbuffer(@spid)     

   dbcc inputbuffer(@blk)     

  end    

  set @index=@index+1     

 end    

 if @lock=0      

 begin    

  set @index=1     

  while @index<=@count     

  begin    

   select @spid=spid,@blk=blk from #temp_who_lock where id=@index    

   if @spid=0     

    select '引起阻塞的是:'+cast(@blk as varchar(10))+ '进程号,其执行的SQL语法如下'    

   else     

    select '进程号SPID:'+ CAST(@spid AS VARCHAR(10))+ '被' + '进程号SPID:'+ CAST(@blk AS VARCHAR(10)) +'阻塞,其当前进程执行的SQL语法如下'    

   dbcc inputbuffer(@spid)   

   dbcc inputbuffer(@blk)     

   set @index=@index+1     

  end    

 end    

 drop table #temp_who_lock     

 return 0     

end          

GO

exec sp_who_lock

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值