Product Documentation

部署虚拟内存优化

Sep 14, 2015

通过使用 Citrix 内存优化服务来改进虚拟内存使用情况,可以提高系统速度,增强系统性能以及可扩展性。该服务可改进 DLL 在服务器上运行的各应用程序之间的共享方式,从而节省了虚拟内存和实际内存。该服务会更改单个 DLL 在内存中加载的位置,以增加可共享的量。此过程称为重定位。

当用户需求量超过可用 RAM 并导致场性能降低时,内存优化尤其有用。在负载高峰时段,即用户在多个会话中运行大量占用内存的应用程序时,系统性能可能会降低。

由于各种原因,并非所有应用程序都能成功优化。可以将无法优化的应用程序添加到排除列表,以绕过优化。无需在仅托管经过签名或认证的应用程序的场或服务器上启用内存使用管理,因为这些场或服务器无法优化。XenApp 只能检测到某些经过签名或认证的已发布应用程序。

内存优化功能包括两方面:设置 DLL 重定位计划的功能以及从 DLL 重定位中排除特定应用程序的功能。重定位由两部分组成:扫描组件和重写组件,前者用于查找要重定位的备选组件,后者用于执行优化。如果您启用了内存优化,扫描组件会在服务器上定期运行。但是,重写组件仅在安排之后才能运行。

启用内存优化

配置用于内存/CPU > 内存优化的 Citrix 计算机策略设置,以启用此功能。

继续执行操作,创建用于确定服务器何时重定向 DLL 的内存优化计划以及无法优化的应用程序的排除列表(如有需要)。要创建该列表,请在测试服务器上测试该功能。

部署之前测试内存优化

  1. 使用托管已发布应用程序的测试服务器启用内存优化。
  2. 安排内存优化。
  3. 内存优化完成后,运行所有已发布应用程序。
  4. 将无法运行的应用程序添加到排除列表。

创建应用程序的排除列表

并非所有应用程序都可成功优化。此过程会自动排除某些应用程序。但是,如果启用并运行内存优化之后,已发布应用程序仍无法运行,请将这些应用程序添加到排除列表,以将其从内存优化中排除。

无法优化的某些应用程序类型包括:

  • 驻留在网络共享上的应用程序(自动排除)。
  • 包含数字签名组件的应用程序。
  • 由 Windows 权限管理保护 DLL 的应用程序。例如,Office 2003 等应用程序无法从此功能受益。
  • 加载后其可执行文件以编程方式检查 DLL 的应用程序。
  • 需要固定 DLL 地址的应用程序。

一般来说,如果某个应用程序可以运行,但在启用此功能后停止运行,请将其添加到排除列表,并查看是否可以解决该问题。

在内存优化处于启用状态时,要排除其他应用程序,可通过添加应用程序的完整路径以及可执行文件的名称,来配置 Citrix 策略设置内存/CPU > Memory optimization application exclusion list(内存优化应用程序排除列表),例如:

C:\\%Program Files%\ProgramName.exe

其中 %Program Files% 为应用程序的完整路径。

创建内存优化计划

启用虚拟内存优化后,服务器在启动时会自动重定位 DLL。服务器重定位时,会更改单个 DLL 在内存中加载的位置,以增加可共享的量。

可以另外再创建一个虚拟内存优化计划,用于确定服务器为提高操作效率而重定位 DLL 的其他时间。最佳做法是,安排在服务器负荷最低时执行虚拟内存优化。

当内存优化功能处于启用状态时,配置用于内存/CPU 的以下 Citrix 计算机策略设置:

  • 内存优化间隔。将频率间隔设置为“每日”(默认值)、“每周”、“每月”或“仅在重新启动服务器时”。如果选择每周或每月运行一次程序,请指定星期或月中某日。
  • Memory optimization schedule: day of month(内存优化计划: 月中某日)(默认为 1 日)。输入月中某日(使用 1 至 31 之间的值)。请注意,如果给定月份中没有指定的日期(例如 6 月 31 日),则在该月中不运行内存优化。此设置仅在将间隔设置为“每月”时使用。
  • Memory optimization schedule: day of week(内存优化计划: 星期)(默认为星期日)。选择内存优化在一周中的哪一天运行。此设置仅在将间隔设置为“每周”时使用。
  • Memory optimization schedule: time(内存优化计划: 时间)(默认为 3:00 AM)。此设置仅在将间隔设置为“每日”、“每周”或“每月”时使用。