Questions tagged «virtualization»

虚拟化是一组允许在系统各层之间进行抽象的软件技术。这允许在系统的逻辑层之间进行分离,从而提供隔离,灵活性和/或一次运行多个功能。这不同于大多数传统系统,其中固有地将各个层捆绑在一起。

3
KVM和QEMU之间的区别
我一直在阅读有关KVM和Qemu了一段时间。到目前为止,我对他们的工作有清晰的了解。 KVM支持硬件虚拟化,以为来宾操作系统提供接近本机的性能。另一方面,QEmu模拟目标操作系统。 我感到困惑的是,这两个坐标处于什么水平。喜欢 谁管理RAM和/或内存的共享? 谁安排I / O操作?

7
最上面的虚拟内存大小是什么意思?
我正在运行top以监视服务器性能,并且我的2个Java进程显示了高达800MB-1GB的虚拟内存。那是一件坏事? 虚拟内存是什么意思? 哦,顺便说一句,我有1GB的交换空间,它显示已用0%。所以我很困惑。 Java进程= 1个Tomcat服务器+我自己的Java守护程序服务器= Ubuntu 9.10(karmic)


4
在Xen下,为什么TCP accept()性能如此糟糕?
在Xen下,我的服务器可以接受()新的传入TCP连接的速率确实很差。在裸机硬件上进行的相同测试显示速度提高了3-5倍。 在Xen下怎么这么糟糕? 您可以调整Xen来提高新TCP连接的性能吗? 是否有其他虚拟化平台更适合此类用例? 背景 最近,我一直在研究在Xen下运行的内部开发Java服务器的一些性能瓶颈。服务器使用HTTP并回答简单的TCP连接/请求/响应/断开连接呼叫。 但是,即使在向服务器发送大量流量时,它每秒也不能接受超过7000个TCP连接(在8核EC2实例上,运行Xen的c1.xlarge)。在测试过程中,服务器还表现出一种奇怪的行为,其中一个内核(不一定是cpu 0)的负载超过80%,而其他内核几乎保持空闲状态。这使我认为问题与内核/底层虚拟化有关。 在裸机,非虚拟平台上测试相同的方案时,我得到的测试结果显示,TCP accept()的速率超过35000 /秒。这是在运行Ubuntu的Core i5 4核心计算机上,所有核心几乎完全饱和。在我看来,这种数字是正确的。 再次在Xen实例上,我尝试启用/调整sysctl.conf中几乎所有的设置。包括启用“ 接收数据包控制”和“ 接收流控制”以及将线程/进程固定到CPU,但没有明显的收获。 我知道运行虚拟化时性能会下降。但是到这个程度呢?较慢的裸机服务器胜过虚拟机。8核心减少了5倍? Xen确实是这种预期的行为吗? 您可以调整Xen来提高新TCP连接的性能吗? 是否有其他虚拟化平台更适合此类用例? 重现此行为 在进一步调查并查明问题时,我发现netperf性能测试工具可以模拟我遇到的类似情况。使用netperf的TCP_CRR测试,我从不同的服务器(虚拟服务器和非虚拟服务器)收集了各种报告。如果您想对某些发现做出贡献或查找我当前的报告,请参阅https://gist.github.com/985475 我怎么知道这个问题不是由于软件写得不好? 该服务器已经在裸机硬件上进行了测试,并且几乎饱和了所有可用内核。 使用保持活动的TCP连接时,问题消失了。 为什么这很重要? 在ESN(我的雇主),我是Beaconpush的项目负责人,Beaconpush是用Java编写的Comet / Web Socket服务器。尽管它的性能非常好,并且在最佳条件下几乎可以饱和分配给它的所有带宽,但是它仍然受到新TCP连接建立速度的限制。也就是说,如果用户频繁流失,那么用户来回频繁,则必须建立/删除许多TCP连接。我们尝试减轻这种影响,以使连接尽可能长寿。但是最后,accept()性能才是使我们的内核无法旋转的原因,我们对此并不满意。 更新1 有人将此问题发布到Hacker News,那里也有一些问题/答案。但是,我将不断努力,以我发现的信息来使这个问题保持最新。 硬件/平台我已经在以下方面进行了测试: 实例类型为c1.xlarge(8核,7 GB RAM)和cc1.4xlarge(2x Intel Xeon X5570,23GB RAM)的EC2。使用的AMI分别为ami-08f40561和ami-1cad5275。有人还指出,“安全组”(即EC2防火墙)也可能会受到影响。但是对于此测试方案,我仅在localhost上尝试过消除此类外部因素。我听到的另一个谣言是,EC2实例的推送速度不能超过100k PPS。 两个运行Xen的私有虚拟服务器。在测试之前,一个负载为零,但没有影响。 Rackspace的专用Xen服务器专用。大约有相同的结果。 我正在重新运行这些测试,并在https://gist.github.com/985475上填写报告。如果您想提供帮助,请贡献您的数量。这很容易! (行动计划已移至单独的综合答案中)

2
如果容器没有来宾OS,为什么我们在Docker上使用OS Base Image?
我刚刚开始研究Docker,这让我有些困惑。正如我在Docker网站上阅读的那样,容器与虚拟机不同。据我了解,容器只是一个沙箱,在其中运行了整个隔离的文件系统。 我还读到一个容器没有安装来宾操作系统。相反,它依赖于底层OS内核。 一切都很好。我感到困惑的是,有以操作系统命名的Docker映像。我们看到诸如Ubuntu,Debian,Fedora,CentOS等映像。 我的意思是:这些图像是什么?基于Debian映像创建容器与创建虚拟机并安装Debian有何不同? 我以为容器没有安装Guest OS,但是当我们创建映像时,我们将它们基于以一个OS命名的某个映像。 另外,在我看到的示例中docker run ubuntu echo "hello world",似乎我们正在使用Ubuntu来旋转VM,并使其运行command echo "hello world"。 用与我们执行操作相同的方式docker run -it ubuntu /bin/bash,似乎我们正在使用Ubuntu来启动VM,并使用命令行对其进行访问。 无论如何,那些以操作系统命名的映像是什么?使用这些映像之一运行容器并使用相应的来宾OS启动VM会有何不同? 这个想法是我们只与主机操作系统共享内核(因此,我们可以访问底层机器硬件资源,而无需虚拟化硬件),但仍按顺序使用容器上每个不同系统的文件和二进制文件支持我们想要运行的任何应用程序?

5
为什么系统通常默认情况下在BIOS设置中禁用虚拟化?
我还没有看到一个系统的默认配置可以启用MMU和定向I / O虚拟化。通常,这需要重新引导并进入BIOS才能启用它,例如,VM上的64位支持。 如果打开电源并且您没有使用虚拟化,是否会发生某种形式的大量处理器开销?如果不是,那么默认情况下关闭它的原因是什么?

6
我可以安全地为虚拟机使用哪些MAC地址范围?
我想分配我的虚拟机MAC地址,以便可以为它们配置DHCP保留,以便它们始终获得相同的IP地址,而不管它们运行在哪个主机管理程序或运行的操作系统上。 我需要知道的是,我可以使用哪些MAC地址范围,而不必担心有一天某个设备可以通过该MAC连接到我们的网络? 我已经阅读了有关MAC地址的Wikipedia文章,该部分似乎表明,如果我以02-XX-XX-XX-XX-XX的形式创建地址,则该地址被视为本地管理的地址。 我认为这意味着没有硬件制造商会使用以02开头的地址,因此我应该对虚拟机使用以02开头的内容安全吗? 谢谢您的帮助。

7
在虚拟机内部运行数据库有哪些弊端?我该如何克服它们?[关闭]
在虚拟机中运行任何内容都会对性能造成一定程度的影响,但是它实际上对数据库系统的性能有多大影响? 我发现此学术参考论文带有一些有趣的基准,但这仅是使用Xen和PostgreSQL的有限测试。结论是使用VM不会“付出高昂的性能代价”(尽管您可能认为实际数据并非如此)。 在虚拟机中运行数据库有哪些技术,管理和其他缺点? 请发布可以得到客观事实支持的答案,我对投机或任何其他半宗教论据不感兴趣(极客热情在许多方面都很好,但这在这里无济于事)。 话虽如此, 在虚拟机中运行数据库时出现什么问题?(请发表参考) 这些问题重要吗? 它们仅在某些情况下有意义吗? 有哪些解决方法?

10
如何[礼貌地?]告诉软件供应商他们不知道他们在说什么
但这不是一个技术问题,而是一个有效的问题。场景: HP ProLiant DL380 Gen 8,带有2个8核Xeon E5-2667 CPU和256GB RAM,运行ESXi 5.5。给定供应商系统的八个VM。用于测试的四个VM,用于生产的四个VM。每个环境中的四个服务器执行不同的功能,例如:Web服务器,主应用程序服务器,OLAP DB服务器和SQL DB服务器。 已配置CPU份额,以阻止测试环境影响生产。所有存储在SAN上。 我们对性能有一些疑问,供应商坚持认为我们需要为生产系统提供更多的内存和vCPU。但是,从vCenter可以清楚地看到,现有分配没有被触及,例如:主应用程序服务器上CPU使用率的每月视图徘徊在8%左右,奇数峰值高达30%。峰值往往与备份软件的启动相吻合。 RAM上的情况与此类似-服务器上的最高利用率约为35%。 因此,我们一直在使用Process Monitor(Microsoft SysInternals)和Wireshark进行一些挖掘,我们建议该供应商首先对它们进行一些TNS调整。但是,这不是重点。 我的问题是:我们如何让他们确认我们发送给他们的VMware统计数据足以证明更多的RAM / vCPU无效? -更新2014年12月7日- 有趣的一周。我们的IT管理层表示,我们应该更改VM分配,现在我们正在等待业务用户的一些停机时间。奇怪的是,业务用户说应用程序的某些方面运行缓慢(与我所不知道的相比),但是当我们需要关闭系统时,他们会“让我们知道”(抱怨) ,发牢骚!)。 顺便说一句,系统的“慢”方面显然不是HTTP(S)元素,即:大多数用户使用的“瘦应用” 。听起来像是主要财务机构使用的“胖客户端”安装,显然“速度较慢”。这意味着我们现在正在调查中考虑客户端和客户端-服务器的交互。 由于该问题的最初目的是寻求帮助,是沿着“戳”路线,还是只是进行更改,而我们现在正在进行更改,因此,我将使用longneck的答案将其关闭。 谢谢大家的意见; 像往常一样,serverfault不仅仅是一个论坛-就像心理学家的沙发:-)

9
从物理机在VirtualBox中创建虚拟机
有什么方法可以创建虚拟机,从而可以通过已安装的物理安装在VirtualBox中使用?例如,如果我在物理计算机上安装了Windows XP,并且希望在另一台计算机上具有该计算机的虚拟版本。通过不必重新安装和重新配置整个操作系统,可以节省大量时间。 我认为微软的许可会有问题。但是,即使Windows无法实现,也可以使用一台物理Linux机器并为其创建VirtualBox版本吗?是否有其他桌面虚拟化软件提供此功能?


2
vSphere教育-配置RAM过多的VM有何弊端?
VMware内存管理似乎是一个棘手的平衡行为。有了群集RAM,资源池,VMware的管理技术(TPS,热气球,主机交换),来宾内的RAM利用率,交换,预留,份额和限制,存在很多变量。 我处于客户端使用专用vSphere群集资源的情况。但是,他们就像在物理硬件上一样配置虚拟机。反过来,这意味着标准的VM构建可能具有4个vCPU和16GB或更多的RAM。我来自一个小学校(1个vCPU,最小的RAM),检查实际使用情况并根据需要进行调整。不幸的是,许多供应商的要求和不熟悉虚拟化的人们要求的资源比必要的要多。我对量化此决定的影响很感兴趣。 来自“问题”集群的一些示例。 资源池摘要-看起来几乎4:1过量使用。注意大量增加的RAM。 资源分配-最坏情况分配列显示这些VM在受限条件下只能访问其配置RAM的不到50%。 上面列表中顶级VM的实时内存利用率图。分配了4个vCPU和64GB RAM。平均使用量不到9GB。 同一VM的摘要 在vSphere环境中过度使用和过度配置资源(特别是RAM)有哪些弊端? 假设VM可以在更少的RAM中运行,是否可以公平地配置具有比其实际需要更多的RAM的虚拟机? 反驳参数是什么:“如果VM分配了16GB的RAM,但仅使用4GB,那有什么问题? ”?例如,是否需要告知客户虚拟机与物理硬件不同? 应该使用什么特定指标来度量RAM使用率。跟踪“活动”与时间的峰值?看“已消费”? 更新:我使用vCenter Operations Manager对此环境进行了配置,并获得了有关上面列出的群集统计信息的一些详细信息。虽然事情肯定是过量的,但VM实际上配置得过多了不必要的RAM,以至于实际的(微小的)内存占用量在群集/主机级别上都没有显示任何内存争用... 我的收获是,虚拟机的大小应该确实合适,并具有用于操作系统级缓存的一些缓冲区。出于无知或供应商“需求”而过度使用导致出现此处出现的情况。内存膨胀似乎在每种情况下都是不好的,因为这会影响性能,因此正确调整大小可以帮助防止这种情况。 更新2: 其中一些虚拟机开始崩溃: kernel:BUG: soft lockup - CPU#1 stuck for 71s! VMware将其描述为过度使用内存过多的症状。所以我想这回答了问题。 vCops“超大型虚拟机”报告... vCops“可回收废物”图...

2
Xen PV,Xen KVM和HVM之间的区别?
我知道Xen通常比OpenVZ更好,因为提供商不能在Xen中超额销售。然而,是什么区别Xen PV,Xen KVM和HVM(我正想通过这个供应商的规格?哪一个是为了什么目的,为什么好? 编辑: 对于仅将托管网站的最终用户,哪个更好?从效率或其他角度来看,一个相对于另一个有什么优势吗?


12
虚拟机是否比基础物理机慢?
这个问题很笼统,但是最具体地说,我想知道运行Ubuntu Enterprise Cloud的虚拟机是否比没有任何虚拟化功能的同一物理机慢。多少(1%,5%,10%)? 有没有人衡量Web服务器或数据库服务器(虚拟VS物理)的性能差异? 如果取决于配置,让我们想象一下运行64位ubuntu企业服务器的两个四核处理器,12 GB内存和一堆SSD磁盘。最重要的是,只有1个虚拟机允许使用所有可用资源。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.