AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 388278
Accepted
killercowuk
killercowuk
Asked: 2012-05-12 07:25:18 +0800 CST2012-05-12 07:25:18 +0800 CST 2012-05-12 07:25:18 +0800 CST

在 VM Web 服务器上使用 RAM 磁盘为 IIS ASP.net 提供服务是否有益?

  • 772

设置:

Windows Server 2008 R2,托管在 HyperV 虚拟机上,分配了 3GB 内存。

我已经在此虚拟 Web 服务器上使用ImDisk设置了一个 RAMDisk(容量 512MB 足以满足我们的要求)并为其分配了 3GB RAM(托管应用程序在重负载下不需要超过 ~768MB)。

最初 WebRoot 目录位于网络共享上,性能足够,但在重负载下注意到这导致网络共享服务器的 LAN 流量显着增加(我相信它正在访问网络共享以向我的用户提供网页- 这应该发生吗?)。

由于 VM 托管在故障转移群集中,因此 VM 的 C:\ 驱动器存储在 iSCSI SAN 上,因此将 WebRoot 文件夹保留在 C:\ 驱动器上没有性能优势(对此进行了测试)。

所以我选择将内容放到 RAMDisk 上,这当然在访问时间方面表现出了很好的改进。源内容仍将存储在网络共享中,但会每 24 小时同步到 RAM 磁盘中。

任何人都有充分的理由相信这会:

A) 不值得?

或者更重要的是,

B)是一个彻头彻尾的坏主意!?

批评赞赏,无论是积极的还是消极的!

hyper-v iis asp.net web-server ramdisk
  • 2 2 个回答
  • 1797 Views

2 个回答

  • Voted
  1. Best Answer
    Bad Dos
    2012-05-12T09:11:06+08:002012-05-12T09:11:06+08:00

    IIS 不会缓存来自网络共享的内容,这就是您性能不佳的原因。但是,当文件存储在本地磁盘上时,它应该缓存文件。您的服务器是虚拟的并且主机的磁盘存储在 iSCSI 磁盘上这一事实不应影响 IIS 缓存文件的能力。

    我无法想象 ramdisk 会为您提供超过 IIS 的本机磁盘缓存的性能优势,除非在第一次请求后出现任何极端情况。

    我会反对使用 ram 磁盘,除非你有一个边缘情况,你需要缓存的内容类型不适合 IIS 的缓存。我喜欢 KISS 规则。;-)

    • 4
  2. Jake Oshins
    2012-05-12T09:08:08+08:002012-05-12T09:08:08+08:00

    在 VM 中使用 RAM 磁盘与在物理机中使用 RAM 磁盘几乎是一样的。

    Windows(以及几乎所有其他操作系统)将使用任何额外的可用 RAM 进行文件缓存。它会尽可能长时间地保留您最近使用的文件,平衡内存需求和文件访问时间。

    当您使用 RAM 磁盘时,您实际上是在说您先验地知道哪些文件需要非常快地可用,并且它们不会是最近使用过的文件。如果它们实际上是最近使用的文件,那么通过使用 RAM 磁盘,您将失去更灵活地使用内存的机会,可能会提高其他方面的性能。

    从 VM 中的实际存储(而不是 RAM 磁盘)读取文件所需的时间可能比在没有虚拟化的同一台机器中读取文件所需的时间要长一些。所以你需要问自己这个问题:

    我是在使用功能强大的 VM 主机和非常好的存储子系统,还是在使用用于 IIS 但现在虚拟化 IIS 服务器的同一台机器?

    如果是第一个,那么文件读取延迟可能无关紧要。如果是第二种,VM 中的文件读取延迟会更大,因此 RAM 磁盘可能更有意义。

    此外,您还需要问自己另一个问题:

    我是在此服务器上仅托管一个虚拟机,还是与多个工作负载共享此主机?

    如果您正在共享主机,那么您需要考虑您为 RAM 磁盘提供给 IIS VM 的 RAM 是否可以被其他 VM 更好地使用。如果您在 VM 中打开了动态内存,那么它将被随机分配到当前需要它的 VM 中。如果允许在当前实际需要的地方使用 RAM,而不是先验地决定应该使用它来降低 IIS 的文件访问延迟,那么您可能会完成更多的工作。

    • 1

相关问题

  • Hyper-V 企业许可 - 包含的 CAL 是否应用于每个 VM 或每个 VM?[复制]

  • Hyper-V 和 Drobo Pro

  • 小型企业的服务器虚拟化/RAID 配置

  • 交换服务器 2003 在 hyper-v 上

  • 在同一台机器上将域控制器作为 1 个 VM 和一个 RODC 作为另一个 VM 运行,它会工作吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve