在UNC服务器上配置IIS6

网站某频道web server是一台IIS6+.net3.0的机器,随着流量逐渐的提升而渐显得力不从心,CPU占用率平均在60+,峰值常上到100%,IIS日志里频繁出现"Server too busy"记录(凭个人经验觉得这点流量可以从程序上进行优化降低机器负载的,不过该开发人员已经尽力了...).那剩下的当然就是咱SA做的事啦。

    设想的有效的办法就是在现有windows域环境里添加一台web server,并把站点的目录以网络共享的方式成为新web server的网站目录,这样可不修改程序就能快速完成搭建,最后在DNS server里增加一条关于此域名的A记录,自动进行轮询。

    不过在实施过程中碰到一个问题:通过网络共享的形式来搭建IIS站点,老是出现访问错误"System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral",查询资料好像是权限问题引起的,但一直没找到原因,希望有高人指点迷津:-)

    只好退而求次,把站点程序复制一份到另一机上。但程序需要一个目录的内容是共享的。那把原机A上的目录adir设为共享,B机上更改web.config文件指向需要使用这个共享目录\\A\adir,并新建一个名adir的虚拟目录并指向\\A\adir\。
   
    还有特别重要的两点是,把两台WebServer上的应用程序池以相同的域用户身份来运行,且此域用户必须加入到各自机器上的“IIS_WPG”用户组。

    建好后先做hosts指向测试B机,OK,正常,增加DNS一条A记录指向新的web server--B,完成。

    但是,B机上线后马上发现,页面可以正常load出来,但目录adir里的内容经常会load不出来,出现“ 已达到网络 BIOS 命令限制。” 报错。网上查阅资料,原来是windows出于安全考虑,通过网络共享,即使用SMB(Server Message Block)协议的每个客户端连接是默认限制是50个,即B连接A的共享目录adir并发连接数是50个。但以此频道的流量来算50个明显是太少了,按MS官方资料同时修改client-server两端的连接数,新建两个DWORD值。
注册表设置 默认值 最大值

HKLM\System\CurrentControlSet\Services\LanmanWorkstation
\Parameters\MaxCmds

50

65535

HKLM\System\CurrentControlSet\Services\LanmanServer
\Parameters\MaxMpxCt

50

65535 (Windows 2000 SP2+; max 125 on Windows 2000 pre-SP2)


    考虑我的实际环境,client-B机改为500,server-A机改为1000,这两个数值应该是足够大的了.重启两台机器的"Server"和“Workstation”服务。

    再测试,A、B机的CPU平均占用率下降到30%左右,属正常范围,OK!


    因时间仓促,描述上可能有误,欢迎各位指正!

附:MS关于出现" 已达到网络 BIOS 命令限制"的说明http://support.microsoft.com/kb/810886/zh-cn

使用在UNC服务器上的远程存储内容及NAS设备部署和配置 Internet信息服务(IIS) 6.0
http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/webapp/iis/remstorg.mspx

posted @ 2009-05-09 15:04  冰封的心  阅读(278)  评论(0)    收藏  举报