我一直在阅读关于KVM
和Qemu
一段时间。到目前为止,我已经清楚地了解他们的工作。
KVM 支持硬件虚拟化,为客户操作系统提供接近本机的性能。另一方面,QEmu 模拟目标操作系统。
我感到困惑的是这两个协调到什么水平。喜欢
我正在运行top
以监控我的服务器性能,我的 2 个 java 进程显示高达 800MB-1GB 的虚拟内存。那是一件坏事?
虚拟内存是什么意思?
哦顺便说一句,我交换了 1GB,它显示使用了 0%。所以我很困惑。
Java 进程 = 1 个 Tomcat 服务器 + 我自己的 Java 守护进程服务器 = Ubuntu 9.10 (karmic)
我刚刚开始学习 Docker,有些东西让我很困惑。正如我在 Docker 的网站上所读到的,容器不同于虚拟机。据我所知,容器只是一个沙箱,在其中运行整个隔离的文件系统。
我还读到容器没有安装来宾操作系统。相反,它依赖于底层操作系统内核。
所有这些都很好。我感到困惑的是,有一些以操作系统命名的 Docker 镜像。我们看到像 Ubuntu、Debian、Fedora、CentOS 等镜像。
我的观点是:这些图像是什么,真的吗?基于 Debian 映像创建容器与创建虚拟机并安装 Debian 有何不同?
我认为容器没有安装来宾操作系统,但是当我们创建映像时,我们将它们基于某个以一个操作系统命名的映像。
此外,在我看到的示例中,我们docker run ubuntu echo "hello world"
似乎正在使用 Ubuntu 启动 VM 并使其运行命令echo "hello world"
。
以同样的方式,当我们这样做时docker run -it ubuntu /bin/bash
,似乎我们正在使用 Ubuntu 启动虚拟机并使用命令行访问它。
无论如何,这些以操作系统命名的图像是关于什么的?使用其中一个映像运行容器并使用相应的来宾操作系统启动 VM 有什么不同?
我们只是与主机操作系统共享内核的想法(因此我们可以访问底层机器硬件资源,而无需虚拟化硬件),但仍然按顺序使用容器上每个不同系统的文件和二进制文件支持我们想要运行的任何应用程序?
我在 CentOS KVM 主机上设置了一个 Ubuntu 来宾,最初有 6GB 的磁盘空间。如何从命令行增加 Ubuntu 来宾的磁盘空间?
编辑 #1:我正在使用磁盘映像文件 (qemu)。
我想分配我的虚拟机 MAC 地址,以便我可以为它们配置 DHCP 预留,以便它们始终获得相同的 IP 地址,无论它们在哪个主机管理程序或操作系统上运行。
我需要知道的是我可以使用什么范围的 MAC 地址而不必担心有一天某些设备可能会使用该 MAC 连接到我们的网络?
我已经阅读了关于 MAC 地址的维基百科文章,这部分似乎表明,如果我使用 02-XX-XX-XX-XX-XX 格式创建地址,那么它被认为是本地管理的地址。
我认为这意味着没有硬件制造商会使用以 02 开头的地址,所以我应该可以安全地为我的虚拟机使用以 02 开头的任何内容?
谢谢您的帮助。
我的服务器可以接受()新传入 TCP 连接的速率在 Xen 下非常糟糕。对裸机硬件的相同测试显示速度提高了 3-5 倍。
最近,我一直在研究在 Xen 下运行的内部开发的 Java 服务器的一些性能瓶颈。服务器使用 HTTP 并回答简单的 TCP 连接/请求/响应/断开连接调用。
但即使在向服务器发送大量流量时,它每秒也不能接受超过 7000 个 TCP 连接(在 8 核 EC2 实例上,运行 Xen 的 c1.xlarge)。在测试期间,服务器还表现出一种奇怪的行为,其中一个内核(不一定是 cpu 0)负载超过 80%,而其他内核几乎保持空闲。这让我认为问题与内核/底层虚拟化有关。
在裸机、非虚拟化平台上测试相同场景时,我得到的测试结果显示 TCP accept() 速率超过 35 000/秒。这是在运行 Ubuntu 的 Core i5 4 核机器上,所有内核几乎完全饱和。对我来说,这种数字似乎是正确的。
再次在 Xen 实例上,我尝试启用/调整 sysctl.conf 中的几乎所有设置。包括启用接收数据包控制和接收流控制以及将线程/进程固定到 CPU,但没有明显的收益。
我知道运行虚拟化时性能会下降。但到这个程度?速度较慢的裸机服务器优于 virt。8 核乘以 5?
在进一步调查并查明问题时,我发现netperf性能测试工具可以模拟我遇到的类似场景。使用 …
我还没有看到默认配置启用 MMU 和定向 I/O 虚拟化的系统。如果需要,这通常需要重新启动并进入 BIOS 以启用它,例如,在您的 VM 上支持 64 位。
如果打开它并且您没有使用虚拟化,是否会发生某种大量的处理器开销?如果没有,那么默认情况下它关闭的原因是什么?
AWS EC2 为 Ubuntu Linux EC2 机器提供两种类型的虚拟化 - PV 和 HVM。
光伏:
HVM:
这些类型之间有什么区别?
有没有办法知道我正在使用的 Windows 机器是虚拟的还是物理的?(我正在使用 RDP 连接到机器。如果它是虚拟机,它正在工作并由 VMWare 处理)。
在虚拟机中运行的任何事情都会有性能损失的一定水平,但需要多少真正影响数据库系统的性能?
我发现这篇学术参考论文有一些有趣的基准测试,但它是仅使用 Xen 和 PostgreSQL 的有限测试。结论是,使用虚拟机“不会以很高的性能成本”(尽管您可能认为实际数据并非如此)。
在虚拟机中运行数据库有哪些技术、管理和其他缺陷?
请发布可以得到客观事实支持的答案,我对猜测或任何其他半宗教论点不感兴趣(极客的热情在很多方面都很好,但这对我们没有帮助)。
话虽如此,
- 在虚拟机中运行数据库时会出现什么问题?(请发参考资料)
- 这些问题重要吗?
- 它们仅在某些情况下才有意义吗?
- 有哪些解决方法?
virtualization ×10
linux ×3
amazon-ec2 ×2
cloud ×1
database ×1
docker ×1
mac-address ×1
memory ×1
oracle ×1
performance ×1
postgresql ×1
pv ×1
qemu ×1
sql-server ×1
top ×1
ubuntu ×1
windows ×1
xen ×1