操作系统为WINDOWS SERVER2003 SP1, IIS6以及DC都在这台机器上。ASP.NET的程序,在主页面初始化的时候,CPU使用率有90%左右(w3wp.exe以及lsass.exe占用)。此时主要做的工作是从AD中查询用户数据并验证登陆用户的信息是否合法。ASP.NET程序使用的是windows验证方式。目前使用Directory.Services类访问操作AD,从AD中search信息时,已经设置了DirectorySearcher的PropertiesToLoad属性。AD中数据大概有6000-10000条另外,如果把AD query的相关功能关闭掉,只在Web.config里设置Authorization的内容并使用Windows验证,以及把Authorization下的内容去掉,allow all,并关闭windows验证,其间CPU的利用率相差10左右;前者为36%,后者为23%。已经尝试过把IIS和DC分在2台机器上,问题仍然存在。
因为程序不是我写的,大概的情况就是如此,不知道大家对这种情况有什么看法?是程序里面写的有问题呢?还是系统的局限性呢?

解决方案 »

  1.   

    补充一下,程序并不会挂起,也不会崩溃,进程也不会被IIS回收。过了这一块一切就正常了。
      

  2.   

    當您的網頁在進行大量數據,或占cpu的操作時,會占用大量的cpu使用率的,這跟WinForm是一樣的,
    如果您不希望出現這種狀,你就可以建立獨立的應用程序池,設置cpu使用率限制,  這樣IIS會自動調度
    cpu的, 當然,這樣程序運行會更慢,甚至出現應用程序池異常終止,出現 Service Unable....(這個單詞記不太清了,常見的)
      

  3.   

    放到一个独立的应用程序池里可以针对性的设置CPU、内存的各种限制以及回收条件,不过也确实会提高了出现Service Unavailable的概率,这个要根据你的服务器的软硬件条件设置恰当的值。
      

  4.   

    建一个新的应用池。。限制CPU使用率