应该给Xen Dom0和DomU配置多大的内存?
Xen Dom0 需要多大内存来支持各个 DomU 的正常运行要看具体情况,没有一个 magic formula (神奇公式)可以参考;而 Xen DomU 需要多大内存能正常运行则主要取决于运行在 DomU 上的 Guest OS 及应用的需求。
DomU
给 DomU 安排内存较简单,主要看什么样的 Guest 操作系统以及上面跑什么样的应用,复杂的图形桌面系统、还是简单的 Web 服务器,这里有一些操作系统厂商提供的推荐配置:
- 根据 Ubuntu 官方文档 , 运行 Ubuntu 9.04 Desktop 版本和 GNOME/KDE 等完整桌面图形系统,最小建议 384MB,我试过 256MB,可以运行,速度也可以,但是可用内存剩下不多,已经开始频繁 swap 了;如果使用中量级窗口管理器,像 xfce,最小建议 192MB;使用类似 fvwm/fluxbox/twm/icewm 等轻量级窗口管理器或者完全使用命令行,最小建议 64MB. 运行 Ubuntu 9.04 Server 版本,不用 GUI,最小安装,完全当作服务器使用,最小可以小到 32MB,不过 VPSee 才可以运行一个由 mysql/php/nginx 支持的小网站、博客。
- 运行 CentOS 5.3 需要的内存要多一些,不用 GUI,最小安装,完全当作服务器使用,RedHat 推荐最小内存是 256MB;VPSee 推荐最小建议 128MB,我试过 64MB 虽然可以运行,但是明显感到慢,使用 yum 升级就能感觉到,就不用提 mysql/php/nginx 了,就算能运行起来也没多大实际意义。
- Debian 5.0 的内存需求和 Ubuntu 类似,稍微可以偏低一些。
- Gentoo 官方推荐最小 64MB,但是每次升级系统都需要编译,即使可以在 64MB 下安装运行意义也不大,因为每次升级软加包都需要下载代码编译,编译需要消耗大量 CPU 和内存。这也是 VPSee 不推荐在小 VPS 上使用 Gentoo 的原因。
- Freebsd 官方推荐最小 24MB,同样的主要看应用,对于一个 mysql/php/nginx 应用,VPSee 推荐 64MB.
Dom0
为 Dom0 配置内存要稍微复杂一些,配置多了 DomU 可使用的内存就少了,配置少了就会担心 Dom0 不够用。有效限制 Dom0 的内存大小还有助于安全。假设 Dom0 本身不做任何其他的应用(当然也不包括 GUI)。如何分配内存让 Dom0 的内存最小而且又能最有效的管理那些 DomU 呢? 这本书介绍了一些有用的经验,给 Dom0 分配多大内存没有一般公式可循,只能提供一些经验参考:
- 首先看 Dom0 上运行的 OS 对内存的需求怎么样,比如:Dom0 上如果跑的是 CentOS,这样 Dom0 通常最低需要 128MB,如果是 Debian 可能最低需要 64MB;
- 再看看需要一些什么样的服务,比如可能会在 Dom0 上运行 DNS/DHCP/SSH 之类的服务来支持 DomU;
- 可能需要在 Dom0 上做一些日常维护,比如:备份、管理 DomU、升级、运行一些 shell script、检查日志等,这会需要一些内存运行;
- DomU 与外界网络通信需要与 Xen 虚拟出来的网卡打交道,比如:bridge,routing,firewall 什么的,Dom0 要管理这些需要消耗一些内存;
- 为了保障安全,最好最小化 Dom0 的功能,最小化安装,只启动必须的服务,让 Dom0 只负责管理 DomU,最小化的策略还可以增加整个服务器的安全性。
举个实例,对于一个 2G 的双核机器来说,如果 Dom0 只是用来管理 DomU,给 Dom0 配置 128/256MB的内存就可以了,剩下的内存可以分出10-15个 128MB 的 DomU.