王若海

现在的应用程序就像是内存吞噬者,占据消耗着大量的内存,因此内存往往会成为整个服务器系统中最紧缺的部件。而在一个虚拟化的服务器环境中,缺乏足够的物理内存甚至还会影响到整个系统的投资回报率,它成了高密度计算系统木桶中的那块短板。
其中原因在于,每个处理器插槽现在支持不断增长的内核数量,为了最大化效率,每台主机都必须平衡各虚拟机所用的资源。当某台主机的内存资源开始紧缺,大量的虚拟机的运行都会受限,尽管处理器等其它资源还很充沛。

在虚拟环境中应用内存过量使用技术可以缓解这一问题,而通过SSD来处理内存过量使用的成本效益更远高于机械磁盘。

我们来检验一下内存过量使用技术如何解决服务器硬件中的内存限制,以及固态磁盘驱动器(SSD)技术如何更好地解决这个问题

服务器硬件中物理内存的缺陷

服务器内部的内存有两种问题:可用的内存插槽数量以及高密度双列直插式存储模块(DIMM)的成本。虚拟化环境下的服务器硬件要求海量内存以支持其上面运行的数量众多的虚拟机。最新版本的vSphere可以在一台主机上支持高达1TB的内存容量以及每个虚拟机最高255GB的内存容量。而服务器内部的内存插槽数量限制了单台设备的最大内存容量,而是用高密度的DIMM则需要很高的成本。即便你目前有较多的内存插槽,假设你要扩展至最大内存容量,你必须使用大于4GB的DIMM.而8GB或16GB的服务器DIMM价格区间在400美金到1,300美金每根左右,价格差取决于速率,档次和一些其它因素。因此,如果你的虚拟服务器主机要配备128GB的内存,那么光内存的价格就可达6,000美金或20,000美金。

vSphere(不过Hyper-V不支持)具有内存过量使用技术,其使得用户的VMware虚拟机可以使用超过物理主机实际的内存容量。这可以使你配置更少的内存,从而降低内存成本。而且在服务器已经配置最大DIMM内存而其上运行的虚拟机又要求更多内存时,这种技术也相当有用。通过内存过量使用技术,即便物理主机只有8GB的内存,而其上运行的一台虚拟机可以配置高达255GB的内存。当一台虚拟上线时,主机通过使用外部扩展内存,并不是物理内存,而是在磁盘上创建的一种特别的虚拟vswp文件。所创建的vswp文件大小等于分配给虚拟机的内存减去虚拟机启动时的物理内存预留量(默认值是0)。比如一个消耗16GB内存的虚拟机有4GB的预留,那么就会相应创建12GB的。vswp文件。这些文件为虚拟机创建后仅仅在物理主机消耗尽所有物理内存后才会使用。

虽然内存过量使用技术是一项非常优秀的特性,但也有个最根本的问题:机械磁盘的速率较RAM而言是在慢了太多。其结果是,当虚拟机开始使用磁盘作为内存后,其性能直线下降--而这恰恰是我们在许多情况下需要避免的。根据各磁盘总的工作状态,有时一个虚拟机迁移到硬盘后就呈现出几乎是宕机的状态。

通过SSD解决内存过量使用技术中的性能问题

SSD提供了一个全新的解决方案以在很大程度上解决了上述磁盘技术中遇到的性能问题。一块15,000rpm转速的SAS驱动器典型的吞吐速率为180 IOPS,而相对一块SSD的吞吐量则高得多,一块3Gbps SATA SSD驱动器可以提供至少5,000 IOPS的写速率和20,000 IOPS的读速率。通过存储中SSD作为虚拟机的swap文件使得应用内存过量使用时性能不会受到很大影响。虽然SSD的性能较RAM还有一定的距离,但比起机械磁盘而言,它快出很多。

SD基本上可以变成服务器中的另一层RAM,提供给虚拟机。vSphere中的内存资源控制可以保障或限制虚拟机使用的最大物理内存,你可以在虚拟机切换到磁盘时很好地加以控制。设置内存预留可以确保每台虚拟机都可以有一定的物理内存;而设置内存阈值可以限制每台虚拟机可以使用的物理内存。这使得你可以确保关键的虚拟机可以访问到最快速的物理内存,而次重要的虚拟机可以在物理内存耗尽后转向使用SSD层。

     RAM和SSD的成本比较

为了更好地说明使用SSD用于内存过量使用时的成本优势。我们看一下2种HP服务器不同配置的价格比较--第一台配置192GB的内存和一般的磁盘,而第二台配置64GB内存和SSD。

配置一:HP DL385 G7(2颗12内核处理器,192GB内存,72GB 15,000rpmSAS磁盘);成本:$15,065。

配置二:HP DL385 G7(2颗12内核处理器,64GB内存,120GB SSD磁盘);成本:$11,141。

下一页