none
关于在windows7下运行IIS 出现的一个情况 RRS feed

  • 问题

  • windows7发布以后,我搞到一个正版,发现机器启动运行都很快,也很稳定,其配置的IIS7.5功能也很强大,就把服务器的系统升级到windows7+sql2005+sitefactory3.1.6 ,运行一段时间后发现,网站有些慢,以为是硬件落后了,又重新升级了服务器,现在服务器已经配置到 至强四核 2G内存,硬盘也搞成两块,系统与数据分离,标准机*房,100M的独享带宽,已经很优越了,可现在出问题了。

    CPU 通常的使用率不到5%,内存2G,使用率在600M左右,网站5分钟内访问人数在20-30人,不是很多,本站大量是生成的Html页面,发现网站在运行一段时间后,变的响应慢,打开网站慢,打开一个网页平均要等20秒,甚至更慢。

    本人的服务器带宽100M, CPU 通常的使用率不到5%,内存2G,使用率在600M左右,网站5分钟内访问人数在20-30人,不是很多,本站大量是生成的Html页面,发现网站在运行一段时间后,变的响应慢,打开网站慢,重启IIS7应用程序池后,网站访问速度有时飞快,有时候还是慢的蜗牛爬,这种情况竟然在本服务器上打开也是一样,后来查找事件日志,在应用程序中发现一个问题,
    windows7程序日志一出现:LoadPerf
    已成功删除 WmiApRpl (WmiApRpl)服务的性能计数器。记录数据含有系统上一个计数器和上一个“帮助”注册表项的新数值。

    已成功加载 WmiApRpl (WmiApRpl) 服务的性能计数器。数据段中的记录数据包含分配给该服务的新索引值。

    只要出现这条信息后,服务器就开始变快,访问网站飞快!可过一段时间,或者30分钟以后,或者一个小时以后,网站访问又开始像蜗牛一样。急切需要高手指导。
     

    2010年4月24日 10:30

答案

  • 此错误是由于处理计数器列表时发生了一个竞争问题。当LoadPerf.dll读取了最后计数器的索引值的同时又有其他计数器被添加,于是新的计数器的索引值比最后计数器的索引值还大,因而LoadPerf.dll认为计数器数值不正确而记录下次事件日志。因为LoadPerf.dll在遇到此错误后会进行重试并成功读取新的计数器,所以这个错误在重试之后不会造成使用上的影响。 
    解决方法是在命令提示符下键入:lodctr /r,自动重建性能计数器字符串表 
    性能计数器信息保存在以下位置: 
    注册表: 
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Perflib\009 
    系统文件夹中的2个文件: 
    %Systemroot%\System32\Perfc009.dat 和 
    %Systemroot%\System32\Perfh009.dat 
    重建计数器值步骤如下: 
    将系统安装盘中的两个文件:DriveLetter:\i386\perfc009.da_ 和DriveLetter:\i386\perfh009.da_ 分别展开成:Perfc009.dat 和Perfh009.dat (DriveLetter代表系统安装盘盘符),然后复制到系统文件夹%Systemroot%\System32\下,替换掉原来的2个文件。展开文件的命令格式为:expand perfc009.da_ Perfc009.dat。 
    打开注册表编辑器,定位到: 
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib项。 
    修改其中的2个子键值,LastCounter 改为十进制的1846,LastHelp 改为十进制的1847 。 
    再定位到HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services项。 
    找到所有的performance子键,如果performance子键内含有以下键值,则删除: 
    FirstCounter 
    FirstHelp 
    LastCounter 
    LastHelp 
    做完以上工作,接下来就是重新添加性能计数器值: 
    1. 打开一个命令提示符窗口。 
    2. 通过输入cd %Systemroot%\System32命令,转入到系统文件夹。 
    3. 通过findstr drivername *.ini命令,找到所有需要加载的驱动。 
    4. 记下查找到的ini文件列表 
    5. 然后对所有找到的ini文件通过loadctr inifile命令重新加载 
    6. 最后重新启动计算机
    2010年4月24日 14:11