您的位置:首页 > 其它

高手对话:有关ESXi的主机缓存问题,值得收藏!

2015-02-09 22:05 691 查看
JAR提问:

大家都知道esxi 5支持用ssd盘做主机缓存,今天简单实验了一下,我用一块三星830 ssd盘,发现能够识别出驱动器类型为SSD。

并且用这块盘顺利启用了SSD主机缓存。

我的理解是,当Host内存不够,需要动用vm交换文件的时候,会先使用SSD主机缓存,当SSD主机缓存空间也不够用的时候再使用虚拟机的交换文件。

SSD缓存一旦设置后,使用的时候完全透明,不影响vm或host的交换文件设置。

由于我的生产环境目前还是4.1, 所以无法实际验证效果。

欢迎各位达人指正。

TiGi回答:

我当初买第三台R710的时候,曾经打算尝试一下主机缓存的,为此专门配置了SSD硬盘,但是接在H700卡上,VMware ESXi认不出这是SSD,.........。

不过按照VMware的KB,可以强行指定某块硬盘是SSD。

winxp2000回答:

能不用缓存尽量不用,速度不会提高;

当然,如果你内存总是溢出的情况,还是配备一个比较安全

另外要注意的是,默认情况下,虚拟机的缓存=你配备给你这个虚拟机的内存

而且默认情况下也会放在虚拟机的文件目录,需要手工指定

TiGi回答:

是的,后来我曾经考虑过,买新机的时候64GB内存和128GB内存,差价不到1万,而买个企业级SSD,价格也不便宜 —— 如果出于数据可靠性考虑,一旦需要买两个做镜像的话........。

还是CacheCade比较合算。

JAR回答:

我测试这台机器是台式机,ssd直接接主板,没有raid卡。

我估计ssd如果接在raid卡上,主机就无法获得ssd的硬件信息而判断不出是ssd了。

jar补充回答:

我这里有些esxi不是跑关键应用,是用来给很多项目跑测试应用的,数量比较多,内存溢出经常能到10G, 这个时候能明显看到cpu负荷和存储io都比较高。

如果把ssd作为交换文件的存储指定,其实很浪费,需要的容量至少得是所有vm的指定虚拟内存的总和。而且因为这些vm都是分散管理的,管起来很麻烦。

SSD主机缓存可以避免上面的问题,设置上去后就不用管了,swap文件基本仍然还建立在原来的存储上,但只要内存溢出不超过SSD的容量,比如128G, 实际硬盘或共享存储上的swap文件永远也不会用到。

比如我的服务器现在最大溢出内存基本不超过10G, 如果用个64G SLC SSD做主机缓存应该能改善很多

hokings回复winxp2000:

为什么说尽量不用呢?ESXi5中会有两个地方涉及到缓存问题:

1)ESXi的主机缓存(在Host Cache Configuration 中设置)

2)每个虚机的交换文件缓存(虚机设置-Option-Swapfile Location中设置),台湾虚拟先生网站建议把Swapfile放到SSD上去,说会提高速度。

把1)和2)同时都放到SSD上好吗?

TiGi回答:

如果内存不大,SSD一般 —— 例如32GB内存、120GB SSD,因为主机内存不太大,因此上面的VM总内存不会太多,这时候,主机缓存以及将交换文件一起放到SSD上有意思/意义。

如果内存很大,SSD不大 —— 例如128GB内存、100GB SSD,怎样使用,那时候就要综合考评一下了(估计还是作为主机缓存更有利)。

——————————————

总体而言,有SSD总是好事。

jar回复hokings:

我认为如果启用了主机交换缓存,就没有太大必要再把交换文件再放在ssd上了。

拿我这里运行中的一台服务器为例,物理内存是96G, 上面有81个vm, 合计置备内存总和差不多190G, 也就是说,如果这些vm都开启的话至少需要190G的交换文件。

目前运行中的vm有47个,合计置备内存为110G, 此时可以从性能图上看到虚拟增长大约在10G, 交换操作占用内存大概是3.5G, 也就是说,有个32G SSD做主机缓存就可以吸收掉原本所有需要动用交换文件的IO, 交换文件几乎根本不需要使用。

如果把交换文件建在SSD上,这个SSD至少要有190G空间,而且几乎没有任何IO, 完全成摆设了。

对于不支持主机缓存的ESXi 4.1, 把交换文件建在SSD上就是唯一的选择了。

sifeng回答jar:

你提到的47个vm,置备110G内存,虚拟增长10G,交换文件3.5G,我的理解就是:物理内存+虚拟增长+交换文件=置备内存,那其中的虚拟增长是否就是内存溢出,这10G的大小目前应该就是占用的SSD盘的主机缓存吧,那如果没有配置主机缓存的话,这个10G是占用的哪里的资源呢,是交换文件的么?

mengduo提问:

我设置了主机缓存,然后虚拟机的交换文件没有改变位置,还在原存储上。两个问题请教:

1。 按上面dx的解释,虚拟机会自动使用主机缓存做交换,只有内存溢出的时候才会使用虚拟机在原存储上的交换文件。没溢出就不会用,是否这样理解?? 但通过观察虚拟机目录里面文件日期,发现实际每次虚拟机目录里面的交换文件日期都是最新日期的,这是否可以证明还是在使用这些交换文件??

2。设置主机缓存大小实际就应该大致等于主机物理内存大小??? 再大也基本没啥用? 考虑虚拟机内存设置基本也不会超出物理机内存大小太多?

回答:

1. 交换文件的日期被更新不能代表是否被使用了,vmware有可能会自动更新交换文件的一些记录信息。比较可靠的判断,应该从存储性能图里观察用于保存交换文件的存储上面是否有发生IO, 如果指定一个专用LUN来保存交换文件比较容易说明问题。

2. 主机缓存的大小和物理内存大小没啥关系,最好大于所有VM的置备内存总和,这样基本某个vm的虚拟内存即便全部swap out, 也够保存在主机缓存里,就可以保证不会动用到iop低的交换文件存储了。

本对话整理自 http://bbs.vmsky.com/thread-39499-1-1.html
另外 http://bbs.vmsky.com/thread-39869-1-1.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐