回收存储空间:大swap文件浪费了宝贵的SSD空间

日期: 2014-08-20 作者:Brian Kirsch翻译:张冀川 来源:TechTarget中国 英文

计算机内存向来不便宜,多年来操作系统一直在设法处理内存不足的问题。大多数现代操作系统会使用硬盘空间创建一个交换或页面文件来扩展物理内存。 预留在硬盘上的空间用于将不经常被使用到的数据从内存交换到访问速度更慢、成本更低的磁盘上。应用需求以及数据存储从未停止增长,但内存以及存储并未线性增加。

尽管内存大小在缓慢增加,但硬盘在容量上却呈爆炸式增长。 虚拟化的引入使计算机内存能够承载十几台虚拟机。存储这些虚拟机数据的磁盘空间很充足,但是物理磁盘的性能可能跟不上。单块硬盘已经被多块磁盘所组成的RAID组所取代,RAID组中磁盘的数量远比容量重要。

问题是磁盘大小非常大,构成数TB的存储空间非常容易,但受限于……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

计算机内存向来不便宜,多年来操作系统一直在设法处理内存不足的问题。大多数现代操作系统会使用硬盘空间创建一个交换或页面文件来扩展物理内存。

预留在硬盘上的空间用于将不经常被使用到的数据从内存交换到访问速度更慢、成本更低的磁盘上。应用需求以及数据存储从未停止增长,但内存以及存储并未线性增加。尽管内存大小在缓慢增加,但硬盘在容量上却呈爆炸式增长。

虚拟化的引入使计算机内存能够承载十几台虚拟机。存储这些虚拟机数据的磁盘空间很充足,但是物理磁盘的性能可能跟不上。单块硬盘已经被多块磁盘所组成的RAID组所取代,RAID组中磁盘的数量远比容量重要。问题是磁盘大小非常大,构成数TB的存储空间非常容易,但受限于存储IOPS,你无法高效使用这些存储空间。

对很多企业来说,SSD成为解决方案。无活动部件,性能与内存访问速度相似,唯一的缺点是比机械磁盘的成本高很多。性能特征使得SSD成为虚拟化的理想选择,问题在于容量,大多数SSD容量以GB而非TB计算。这使得高效使用磁盘空间变得尤为重要。由于SSD磁盘空间非常珍贵,将其用于高IO功能并限制用于存储静态数据是很有必要的。不幸的是,交换文件代表的是关键但却很少会用到的磁盘空间。考虑在虚拟化平台中使用SSD时,我们需要找到节省空间的创造性方法。

举一个简单的例子,一台Windows虚拟机配置了四个处理器、16GB的内存、20GB的操作系统以及另外50GB的存储空间。我们将会发现该虚拟机实际需要110GB的存储空间。这比配置的空间增加了36%,也就是40GB。这些额外的空间来自哪里,为什么看起来我们的存储空间消失在了百慕达神秘三角中?让我们深入研究一下并找出是谁在秘密使用这些存储空间。

Windows一直在使用pagefile.sys文件,用于将内存页按需交换到磁盘中。在桌面中页大小是动态的,但是在服务器中页大小往往是固定的。默认的大小取决于应用及角色,但通常是内存容量的1.5倍。如果服务器内存是2GB,那么将会预留3GB的磁盘空间用于页面文件。在之前我们所举的例子中,16GB的内存,页面文件应该是24GB,这是一块很大的空间,但是还有更糟糕的事儿。VMware将会在数据存储上创建一个大小与虚拟机内存容量相同的页面文件,发生虚拟机内存交换时会用到该页面文件。在我们的示例中,页面文件的大小为16GB。加上Windows创建的24GB的页面文件,一共是40GB。但我们希望永远不要用到这些文件。

针对单台虚拟机,这已经是一个不小的数字,如果有100台虚拟机,那么潜在的死亡空间将是4TB。这将会浪费大量的资源,尤其是使用SSD时更是如此。因此,让我们一起了解一些能够有助于减少死亡空间的选项。

Windows交换文件:尽管可以重新配置服务器不使用任何交换空间,但这有悖于微软的最佳实践。减少交换文件能够回收部分空间,但在发生宕机时你将无法收集完整的内存dump信息。稍微激进的选择是在价格更为廉价的磁盘空间中创建一个单独的虚拟磁盘,将Windows交换文件转移到该虚拟磁盘中。然而,除非交换文件位于系统磁盘中,否则将无法捕获内存dump信息。

VMware交换文件:VMware基于虚拟机的交换文件要比Windows的分页文件更难发现。其通常是基于为每台虚拟机预留的内存容量。因此在我们的例子中,如果为虚拟机预留8GB的内存,那么VMware的页面文件将只有8GB。如果为虚拟机预留16GB的内存,那么将不需要预留任何的磁盘空间,但是必须要舍弃内存过量分配功能—这并非理想的选择。VMware还允许你将交换文件迁移到其他存储层。尽管这有益于提高磁盘空间的使用效率,但却需要管理并备份位于多个位置的虚拟机文件,所以这可能并非理想的选择。

尽管看起来并没有简单的解决方法,折衷的选择可能有助于减轻存储之苦。尽管惯例以及微软建议页面文件是安装的内存容量的1.5倍,但很多管理员默认将其设置为4GB,很少会超过6GB。毕竟,只有在对操作系统进行故障诊断时才需要完整的dump文件。除非有问题,否则干嘛浪费宝贵的SSD空间呢?对于VMware交换文件来说,内存预留是一个无法忽略的巨大优势。然而,大多数管理员过量分配的内存值不会超过50%,但更接近安全范围的内存值是20%到30%。这意味着虚拟机50%的内存预留值针对可能出现的问题保留了足够多的开销,同时还能够减少存储空间的占用。

通过将Windows页面文件减少到12GB、VMware交换文件减少到8GB,很轻松地就回收了20GB的存储空间。浪费的存储空间从36%减少到了18%,进行了一些较小的调整并不会明显增加风险。当然,增加VMware预留值或者减少Windows交换文件并不适用于所有的工作负载,一定要在业务需求与风险之间有效地平衡存储的使用。

翻译

张冀川
张冀川

TechTarget中国特约专家,任职于某国企信息中心,负责数据中心硬件基础设施及信息系统运维管理工作,对虚拟化及云计算技术有浓厚兴趣,并在工作中积极应用

相关推荐