kvi*_*sta 16 virtualization virtual-machines central-processing-unit cpu-architecture
我正在寻找好的经验法则来了解何时不虚拟化机器。
例如,我知道使用接近 100% 的完全受 CPU 限制的进程虚拟化可能不是一个好主意,但是运行在大多数时间利用 CPU 的“大量”(比如 40或 50%)?
另一个例子:如果我虚拟化 1000 台机器,即使它们只是轻度或中度使用,在只有 4 个内核的主机上运行它们也可能是不好的。
与主机资源相比,有人可以根据机器工作负载或来宾机器的绝对数量总结有关虚拟化的提示吗?
我通常使用 VirtualBox 或 VMWare 在 Windows 主机上进行虚拟化,但我假设这是一个非常通用的问题。
Cak*_*mox 16
我永远不会放入虚拟机的东西:
任何使用无法虚拟化的特定硬件的东西:通常是图形、相当多的硬件安全模块、任何带有定制驱动程序的东西(例如专用网络驱动程序)。
有许可证问题的系统。一些软件按物理 CPU 或内核收费,无论您分配给 VM 的数量有多少。如果您拥有在 32 核服务器上的 VM 中运行的单核许可的软件,您就会在审计中受到打击。
我不鼓励放入虚拟机的事情:
已经努力使用商品硬件中的所有资源的软件。像 hadoop 这样作为“大数据”工作的一部分工作的机器通常被设计为在裸机上运行。
任何将被微调以利用资源的东西。当您真正开始调优数据库时,争用资源的虚拟机真的会给工作带来麻烦。
任何已经有很大瓶颈的东西。它已经不能很好地与自己相处,也不太可能与他人相处得很好。
有一些东西非常适合放入虚拟机:
任何花费大量时间闲置的东西。像邮件和 DNS 这样的实用主机很难在现代硬件上产生足够的负载来保证专用服务器。
本身不能很好(或容易)扩展的应用程序。遗留代码经常属于这一类。如果应用程序不会扩展以占用服务器,请使用大量小型虚拟服务器。
从小规模开始但不断增长的项目/应用程序。与在裸机上开始相比,向 VM 添加资源(以及迁移到更新、更大的硬件)要容易得多。
此外,我不确定您是否夸大了将大量 VM 放在单个主机上的说法,但如果您正在尝试获得较大的 VM:HW 比率,您可能需要考虑 ESX、Xen、KVM。你会比在 Windows 上使用 VMware 或 virtualbox 好得多。
Ant*_*ölä 13
磁盘子系统。这通常是最不可共享的资源。记忆,当然,但那是显而易见的。
磁盘子系统限制以两种方式起作用。如果系统使用大量磁盘 I/O,其他来宾会减慢速度。如果此访客正在生产中,它可能需要对 Web 查询进行快速响应。这可能非常令人沮丧,也是不租用虚拟硬件的一个重要原因。您可以通过使用专用磁盘来最小化此问题。
在来宾中仅使用 512 MB 内存会将所有磁盘缓存放在主机上。它在客人之间并不是平均分配的。
不用担心 CPU IO。通过这种方式,虚拟化非常有效,通常与仅在同一系统上运行的多个进程相关。我很少看到多至强系统在 CPU 上运行 100%。
编辑:错别字