存储读取缓存

读缓存提高了虚拟机的磁盘性能,因为当从外部磁盘进行初次读取时,数据被缓存在主机的空闲内存中。在许多虚拟机从单个基本虚拟机中克隆出来的情况下,它提高了性能,因为它极大地减少了从磁盘读取的块数量。例如,在Citrix虚拟桌面环境中,MCS (Machine Creation Service)环境中。

每次从磁盘多次读取数据时,都可以看到性能的提高,因为数据缓存在内存中。这种变化在严重I/O情况下发生的服务降级中最为明显。例如,在以下情况下:

  • 当大量终端用户在很短的时间内启动时(启动风暴)
  • 当调度大量虚拟机同时进行恶意软件扫描时(防病毒风暴)。

默认情况下,默认情况下读取高速缓存。

注意:

Citrix Hypervisor高级版客户可以使用存储读缓存。

通过Citrix虚拟应用程序和桌面授权访问Citrix Hypervisor的客户也可以使用存储读缓存。

启用和禁用读缓存

对于基于文件的SR,例如NFS和EXT3/EXT4 SR类型,默认开启读缓存。对所有其他sr禁用读缓存。

使用实例在xe命令行中关闭指定SR的读缓存。

xe sr-param-set uuid = sr-uuid其他 -  config:o_direct = true <! -  callcopy  - >

如果要使用XenCenter禁用特定SR的读缓存,请转到属性对话读缓存选项卡,您可以选择启用或禁用读取缓存。

有关更多信息,请参见改变SR属性

限制

  • 只读缓存仅支持NFS和EXT3/EXT4 sr。其他SR类型不可用。

  • 阅读缓存仅适用于只读VDIS和VDI父母。存在来自“快速克隆”或磁盘快照创建VM的VDI。当许多VM从单个“金色”图像中克隆时,可以看到最大的性能改进。

  • 性能的提高取决于主机的控制域(dom0)中可用的空闲内存数量。增加dom0内存的数量可以给读缓存分配更多的内存。有关如何配置dom0内存的信息,请参见CTX134951

与IntelliCache

IntelliCache和基于内存的读缓存在某些方面是互补的。IntelliCache不仅在不同的层进行缓存,而且在缓存读的同时也缓存写。IntelliCache将从网络读取的数据缓存到本地磁盘。内存中读缓存将从网络或磁盘的读缓存到主机内存中。内存中读缓存的优点是,内存仍然比固态磁盘(SSD)快一个数量级。在引导风暴和其他严重I/O情况下的性能得到了提高。

可以同时启用读取缓存和IntelliCache。在这种情况下,IntelliCache将读取从网络缓存到本地磁盘。从读取缓存中读取本地磁盘中的内存缓存。

设置读cache大小

可以通过向Citrix Hypervisor的控制域(dom0)提供更多内存来优化读缓存性能。

重要的:

建议对池中的所有主机分别设置读cache大小,以达到优化的目的。后续对读缓存大小的任何更改也必须在池中的所有主机上进行设置。

在Citrix虚拟机管理程序服务器上,打开本地shell并以root身份登录。

使用实例设置读cache的大小。

/opt/xensource/libexec/xen-cmdline——set-xen dom0_mem=nnM,max:nnM 

将初始值和最大值设置为相同的值。例如,设置dom0内存为2048 MiB:

/opt/xensource/libexec/xen-cmdline——set-xen dom0_mem=20480M,max:20480M 

重要的:

修改读cache大小后,请重新启动所有主机。

如何查看当前dom0的内存分配情况?

查看当前dom0内存设置,输入:

自由- m < !——NeedCopy >

的输出自由- m显示当前dom0内存设置。由于各种开销,该值可能低于预期。下面的示例表显示了dom0设置为2.6 GiB的主机的输出

| | | | |免费使用总共享/缓存| |缓冲区可用  | |---------------------|--------|------|-------|--------|--------------|-----------| | Mem: | 2450 | 339 | 1556 | 554 | | 2019 | |交换:| 1023 | 0 | 1023年  | | | | 

可以使用哪些值范围?

由于Citrix Hypervisor控制域(dom0)为64位,可以使用较大的值,例如:32768 MiB。然而,我们建议您不减少dom0内存低于1 GiB

XenCenter显示笔记

可以将整个主机的内存视为由Xen hypervisor、dom0、VMs和空闲内存组成。尽管dom0和VM内存通常是固定大小的,但Xen管理程序使用的内存数量是可变的。内存使用量取决于各种因素。这些因素包括主机上任意时刻运行的虚拟机数量以及这些虚拟机的配置方式。限制Xen使用的内存量是不可能的。限制内存数量会导致Xen耗尽内存,并阻止新的虚拟机启动,即使主机有空闲内存。

要查看分配给主机的内存,请在Xencenter中选择主机,然后单击内存选项卡。

“Citrix Hypervisor”字段显示总和分配给dom0的内存Xen的记忆。因此,显示的内存数量可能比管理员指定的高。启动和关闭虚拟机时,内存大小是不同的,即使管理员为dom0设置了固定的大小。

存储读取缓存