kil*_*wuk 1 iis hyper-v asp.net web-server ramdisk
设置:
Windows Server 2008 R2,托管在分配了 3GB 内存的 HyperV 虚拟机上。
我在此虚拟 Web 服务器上使用ImDisk设置了 RAMDisk(512MB 的容量足以满足我们的要求),并为其分配了 3GB RAM(托管应用程序在重负载下不需要超过 ~768MB)。
最初,WebRoot 目录位于网络共享上,该目录运行良好,但注意到在重负载下,这导致网络共享服务器的 LAN 流量显着增加(我认为该服务器正在访问网络共享以向我的用户提供网页) - 这应该发生吗?)。
由于 VM 托管在故障转移群集中,因此 VM 的 C:\ 驱动器存储在 iSCSI SAN 上,因此将 WebRoot 文件夹保留在 C:\ 驱动器上不会带来性能优势(对此进行了测试)。
因此,我选择将内容放入 RAMDisk,这当然在访问时间方面显示出良好的改进。源内容仍将存储在网络共享上,但每 24 小时同步到 RAM 磁盘。
任何人都有充分的理由相信这会:
A)不值得吗?
或者更重要的是,
B)这是一个彻头彻尾的坏主意!?
赞赏批评,无论是正面的还是负面的!
IIS 不会缓存来自网络共享的内容,这就是性能不佳的原因。但是,当文件存储在本地磁盘上时,它应该缓存文件。事实上,您的服务器是虚拟的并且主机的磁盘存储位于 iSCSI 磁盘上,这一事实不应影响 IIS 缓存文件的能力。
我无法想象 ramdisk 会给您带来优于 IIS 本地磁盘缓存的性能优势,除非在第一个请求后出现任何极端情况。
我反对使用 RAM 磁盘,除非您遇到需要缓存的内容类型不适合 IIS 缓存的极端情况。我喜欢 KISS 规则。;-)