Application Virtualization 5.0 性能指南
应用到: Application Virtualization 5.0, Application Virtualization 5.0 SP1, Application Virtualization 5.0 SP2, Application Virtualization 5.0 SP3
了解如何配置 App-V 5.0 以获得最佳性能、以及如何优化虚拟应用包并利用 RDS 和 VDI 提供更好的用户体验。
实现多种方法可帮助提高最终用户体验。但是,你的环境可能并非支持所有方法。
阅读本文档前,你应当阅读并了解以下信息。
备注 |
---|
根据外部来源和上下文,本文档中使用的部分术语可能具有不同含义。有关本文档中所使用的带星号 * 的术语的信息,请查看本文档的 <token xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">APPV_vernasshort_vnext</token> 性能指南术语 部分。 |
最后,本文档将向您提供配置运行 App-V 5.0 客户端的计算机及最优性能环境的信息。用排序器优化你的虚拟应用程序包的性能,并了解如何利用用户体验虚拟化 (UE-V) 或其他用户环境管理技术,通过 App-V 5.0,在远程桌面服务 (RDS) 和非持久虚拟桌面基础结构 (VDI) 中提供最佳用户体验。
为帮助决定哪些信息与你的环境相关,你应当查看每部分的简要概述和适用性清单。
有状态*非持久部署中的 App-V 5.0
本部分提供关于一种方法的信息,这种方法能帮助确保用户在登录后几秒内访问所有虚拟应用程序。这只能通过解决通常长时间运行的 App-V 5.0 发布刷新得以实现。你会发现本方法的基础,即最快速发布刷新,是无需进行任何实际操作的。必须满足若干条件,遵循若干步骤才能提供最佳用户体验。
利用以下部分中的信息,了解更多:
使用方案 - 查看这两个方案时,请记住它们是极端方法。根据使用要求,你可以选择将这些步骤应用于一个子集的用户和/或虚拟应用程序包。
性能优化 – 为了提供最佳体验,你可以让基本映象中包含一些 App-V 虚拟应用程序包。已讨论了该要求和其他要求。
存储优化 – 如果你担心对存储的影响,遵循该方案将有助于解决你的顾虑。
准备你的环境
准备基本映象的步骤 – 无论是在非持久 VDI 环境中,还是在 RDSH 环境中,只需对基本映象完成几个步骤就能启用该方法。
将 UE-V 2.0 作为 App-V 方法的用户配置文件管理 (UPM) 解决方案 - 该方法的基础是 UEM 解决方案能够保存少数几个注册表和文件位置的内容。这些位置构成用户集成*。请确保查看针对 UPM 解决方案的特定要求。
用户体验浏览
浏览 – 这是对 App-V 和 UE-V 操作及用户可能持有的预期的按步浏览。
结果 – 此部分描述了预期结果。
对包生命周期的影响
通过性能优化调整增强 VDI 体验
适用性清单
部署环境
非持久 VDI 或 RDSH。 |
|
用户体验虚拟化 (UE-V),其他 UPM 解决方案或用户配置文件磁盘 (UPD)。 |
预期配置
已启用 App-V 用户状态模板的用户体验虚拟化 (UE-V) 或用户配置文件管理 (UPM) 软件。非 UE-V 的 UPM 软件必须能够在登录(或进程/应用程序启动)和退出登录时触发。 |
|
App-V 共享内容存储 (SCS) 已配置或可配置。 |
IT 管理
管理员可能需要定期更新 VM 基本映象以确保最优性能,或管理员需要为不同用户组管理多个映象。 |
使用方案
查看这两个方案时,请记住它们是极端方法。根据您的使用要求,您可以选择将这些步骤应用于一个子集的用户或虚拟应用程序包,或这两者。
性能优化 | 存储优化 |
---|---|
为了提供最佳用户体验,此方法利用 UPM 解决方案的能力,并且需要额外的映像准备,会产生一些额外的映像管理开销。 以下内容描述了有状态非持久部署的许多性能改善。更多信息,请参阅“优化发布性能包的序列化步骤”并参考本文档“另请参阅”部分中的“App-V 5.0 排序指南”。 |
上一方案的大体预期在此依然适用。但是,请记住 VM 映象通常存储在非常昂贵的阵列中;已对此方法略作改动。不要在基本映象中预配置面向用户的虚拟应用程序包。 本文档的“用户体验浏览”部分对该改动的影响进行了详述。 |
准备你的环境
下表展示了准备基本映像和 UE-V 或该方法的其他 UPM 解决方案的所需步骤。
准备基本映像
性能优化 | 存储优化 |
---|---|
|
|
“配置” - 了解关键 App-V 客户端配置,以及更多上下文和方法,请查看以下信息:
配置设置 | 它有什么作用? | 我如何使用它? |
---|---|---|
共享内容存储 (SCS) 模式
|
运行共享内容存储时,只有发布数据存储于硬盘中;其他虚拟应用程序资产存储于内存 (RAM) 中。 这有助于保存本地存储并降低每秒磁盘 I/O (IOPS)。 |
当 App-V 客户端终结点和 SCS 内容服务器 (SAN) 之间可用低延迟连接时,推荐该方法。 |
PreserveUserIntegrationsOnLogin
|
如果你尚未预配置 (Add-AppvClientPackage) 一个特定包且此设置还未配置,则 App-V 客户端将取消集成* 持久的用户集成,然后重新集成*。 对所有符合上述条件的包而言,发布/刷新期间将有效地完成双倍工作。 |
如果您不打算在基本映像中预配置每一个可用用户包,请使用此设置。 |
MaxConcurrentPublishingRefresh
|
此设置用于确定可同时执行发布刷新/同步的用户数。默认设置是没有限制。 |
限制并发发布刷新数可防止 CPU 的过度使用,从而避免影响计算机性能。建议在 RDS 环境中使用此限制,在此环境中,多个用户可同时登录到同一台计算机并执行发布刷新同步。 如果达到并发发布刷新阈值,那么发布新应用程序所需的时间以及在最终用户登录后将这些新应用程序提供给最终用户所需的时间可能不确定。 |
为 App-V 方法配置 UE-V 解决方案
我们建议使用 Microsoft 用户体验虚拟化 (UE-V) 为特定用户捕获并集中应用程序设置和 Windows 操作系统设置。然后这些设置应用于用户访问的各种计算机,包括台式计算机、便携式计算机和虚拟桌面基础结构 (VDI) 会话。UE-V 已针对 RDS 和 VDI 方案进行了优化。
更多信息,请参阅 User Experience Virtualization 2.0 入门
本质上而言,只需安装 UE-V 客户端并从 Microsoft 用户体验虚拟化 (UE-V) 模板库 下载以下 Microsoft 授权的 App-V 设置模板。注册模板。有关 UE-V 模板的更多信息,请参阅 获取并注册模板的 UE-V 特定资源。
备注 |
---|
如果不进行额外的配置步骤,Microsoft 用户环境虚拟化 (UE-V) 将无法在目标计算机中同步开始菜单快捷方式(.lnk 文件)。默认排除 .lnk 文件类型。
UE-V 将只支持在 RDS 和 VDI 方案的排除列表中删除 .Ink 文件,这两种方案中,每位用户的设备都将在相同位置安装相同的应用程序,且每个 .lnk 文件均对所有用户的设备有效。例如,UE-V 当前不支持以下 2 个方案,因为最终结果将是快捷方式在一台设备上有效,而不是在所有设备上有效。
|
重要
本主题描述如何使用注册表编辑器更改 Windows 注册表。如果不正确更改 Windows 注册表,将可能会导致可能要求你重新安装 Windows 的严重问题。在更改注册表之前,你应建立注册表文件(System.dat 和 User.dat)的备份副本。Microsoft 无法保证在更改注册表时发生的问题可得到解决。用户须自行承担更改注册表的后果。
要使用 Microsoft 注册表编辑器 (regedit.exe),导航到 HKEY_LOCAL_MACHINE\Software\Microsoft\UEV\Agent\Configuration\ExcludedFileTypes 并从已排除的文件类型中删除 .lnk。
为 App-V 方法配置其他用户配置文件管理 (UPM) 解决方案
在有状态的环境中的预期是:已实施 UPM 解决方案,可支持用户数据跨会话和在登录间的保持。
UPM 解决方案要求如下。
为启用优化的登录体验,例如面向用户的 App-V 5.0 方法,解决方案必须能够:
保持以下用户集成,作为用户配置文件/角色的一部分。
在登录(或应用程序启动)时触发用户配置文件同步,可保证所有用户集成在发布/刷新开始前得到应用,或
连接和分离用户配置文件磁盘 (UPD) 或包含用户集成的类似技术。
在退出登录会话前,获取对构成用户集成的位置的更改。
使用 App-V 5.0,当您添加发布服务器(“Add-AppvPublishingServer”)时,您可以配置同步,例如在登录期间和/或特定刷新间隔后进行刷新。两种情况下均会创建计划任务。
在 App-V 5.0 的早期版本中,两种计划任务都使用将启动用户和全局刷新的 VBScript 进行配置。使用 Application Virtualization 5.0 SP2 的修补程序包 4,用户登录刷新通过“SyncAppvPublishingServer.exe”启动。引入此改变以为 UPM 解决方案提供一个触发过程。该过程将延迟发布/刷新,以允许 UPM 解决方案应用用户集成。发布/刷新一旦完成,它就将退出。
用户集成
注册表 – HKEY_CURRENT_USER
路径 - Software\Classes
不包括:本地设置、ActivatableClasses、AppX*
路径 - Software\Microsoft\AppV
路径 - Software\Microsoft\Windows\CurrentVersion\App Paths
文件位置
根 – “Environment Variable” APPDATA
路径 – Microsoft\AppV\Client\Catalog
根 – “Environment Variable” APPDATA
路径 – Microsoft\AppV\Client\Integration
根 – “Environment Variable” APPDATA
路径 - Microsoft\Windows\Start Menu\Programs
(为保持所有虚拟和非虚拟桌面快捷方式)
根 - “KnownFolder” {B4BFCC3A-DB2C-424C-B029-7FE99A87C641}FileMask - *.lnk
Microsoft User Experience Virtualization (UE-V)
此外,我们建议使用 Microsoft 用户体验虚拟化 (UE-V) 为特定用户捕获并集中应用程序设置和 Windows 操作系统设置。然后这些设置应用于用户访问的各种计算机,包括台式计算机、便携式计算机和虚拟桌面基础结构 (VDI) 会话。
更多信息,请参阅 User Experience Virtualization 1.0 入门和与 UE-V 模板库共享设置位置模板。
用户体验浏览
以下内容为对 App-V 和 UPM 操作及用户可能持有的预期的按步浏览。
性能优化 | 存储优化 |
---|---|
在 VDI/RDSH 环境中实施该方法后,在首次登录时,
在之后的登录中:
1发布操作“Publish-AppVClientPackage”为用户目录增加条目,将权限映射到用户,确认本地存储,并通过完成所有集成步骤完成发布。 |
在 VDI/RDSH 环境中实施该方法后,在首次登录时,
在之后的登录中:
|
结果 | 结果 |
---|---|
|
由于添加/刷新必须将所有虚拟应用程序重新配置到 VM,每次登录的发布刷新时间将延长。 |
对包生命周期的影响
升级包是包生命周期的一个重要方面。为帮助确保用户能访问相应的已升级(已发布)或已降级(已取消发布)的虚拟应用程序包,建议你升级基本映像以反映这些更改。了解原因,请查看以下部分:
App-V 5.0SP2 介绍了挂起状态的概念。过去,
如果管理员更改了权限或创建了新版的包(已升级),且在发布/刷新过程中此包已在使用,取消发布或发布操作将各自失败。
如今,如果包正在使用,则操作将被挂起。将在服务重启时,或发出其他发布或取消发布命令时,执行取消发布和发布挂起操作。在后一种情况中,如果虚拟应用程序正在另有使用,则虚拟应用程序将仍然处于挂起状态。对全局发布的包而言,通常需要重启(或服务重启)。
在非持久环境中,不可能处理这些挂起的操作。挂起的操作,例如任务在 HKEY_CURRENT_USER\Software\Microsoft\AppV\Client\PendingTasks 下被捕获。尽管该地址已被 UPM 解决方案保存,但如果没有在登录前将它应用于环境,它将不被处理。
通过性能优化调整增强 VDI 体验
以下部分包含列表,列表带有关于在优化你的环境性能时可能有用的 Microsoft 文档和下载的信息。
.NET NGEN 博客和脚本(强烈推荐)
关于 NGEN 技术
Windows Server 和服务器角色
服务器性能调整准则,用于
服务器角色
Windows 客户端(来宾 OS)性能调整指南
优化包发布性能的后续步骤
App-V 5.0 和 App-V 5.0 SP2 以各自的版本提供重大价值。多种功能可简化新方案或已启用的新客户部署方案。以下功能可以影响发布和启动操作的性能。
步骤 | 注意事项 | 优势 | 权衡 |
---|---|---|---|
无功能块 1(FB1,也被称为主 FB) |
无 FB1 表示应用程序将立即启动并在启用过程中对故障进行流处理(应用程序需要文件、DLL,且必须在网络上拆毁)。如果存在网络限制,则 FB1 将:
|
流处理故障将降低启动时间。 |
配置有 FB1 的虚拟应用程序包需要重新排序。 |
删除 FB1
删除 FB1 不需要原始应用程序安装程序。完成以下步骤后,建议你将运行排序器的计算机恢复为干净的快照。
“排序器 UI” - 创建一个新的虚拟应用程序包。
完成“自定义”->“流处理”之前的所有后续步骤。
在流处理步骤中,不要选择“优化包,以便部署于慢速或不可靠网络”。
如果希望,可以前进至“目标 OS”。
修改现有虚拟应用程序包
完成后续步骤,直到流处理。
不要选择“优化包,以便部署于慢速或不可靠网络”。
移动至“创建包”。
“PowerShell” - 升级现有虚拟应用程序包。
打开一个提升的 PowerShell 会话。
导入-模块“appvsequencer”。
“Update-AppvSequencerPackage” - “AppvPackageFilePath”
"C:\Packages\MyPackage.appv" -Installer
"C:\PackageInstall\PackageUpgrade.exe empty.exe" -OutputPath
"C:\UpgradedPackages"
备注 该 cmdlet 需要一个可执行的 (.exe) 或批文件 (.bat)。您必须提供一个空白的(未进行任何操作)可执行文件或批文件。
步骤 | 注意事项 | 优势 | 权衡 |
---|---|---|---|
发布时无 SXS 安装(预安装 SXS 程序集) |
虚拟应用程序包无需重新排序。SxS 程序集可保留在虚拟应用程序包中。 |
SxS 程序集依赖关系不会在发布时安装。 |
必须预安装 SxS 程序集依赖关系。 |
在排序器上创建一个新的虚拟应用程序包
如果在排序器监控阶段,一个 SxS 程序集(例如一个 VC++ 运行时)作为应用程序的一部分进行了安装,将自动检测 SxS 程序集并将它包含于包中。将通知管理员并可以选择排除 SxS 程序集。
“客户端侧”:
发布虚拟应用程序包时,App-V 5.0 SP2 客户端将检测所需 SxS 依赖关系是否已安装。如果依赖关系在计算机上不可用且包含于包中,则将启动 SxS 程序集的传统 Windows Insataller (.msi) 安装。如前面所记载的,只需在运行客户端的计算机上安装依赖关系,即可确保不会发生 Windows Installer (.msi) 安装。
步骤 | 注意事项 | 优势 | 权衡 |
---|---|---|---|
选择性地使用动态配置文件 |
App-V 5.0 客户端必须分析并处理这些动态配置文件。 注意文件的大小和复杂性(脚本执行、VREG 包含/排除)。 众多虚拟应用程序包可能已经拥有用户特定或计算机特定动态配置文件。 |
如果有选择地使用或未使用这些文件,则发布次数将增加。 |
虚拟应用程序包可能需要单独重新配置,或通过 App-V 服务器管理台进行重新配置,以删除相关的动态配置文件。 |
使用 PowerShell 禁用动态配置
对于已经发布的包而言,您可以使用
Set-AppVClientPackage –Name Myapp –Path c:\Packages\Apps\MyApp.appv
,而无需“-DynamicDeploymentConfiguration”参数
同样,利用
Add-AppVClientPackage –Path c:\Packages\Apps\MyApp.appv
添加新包时,不要使用“-DynamicDeploymentConfiguration”参数。
有关“如何应用动态配置”的文档,请参见:
步骤 | 注意事项 | 优势 | 权衡 |
---|---|---|---|
在包的生命周期内,负责同步脚本执行。 |
如果脚本并行已嵌入包中,添加 (PowerShell) 可能显著变慢。 在虚拟应用程序启动期间运行脚本(StartVirtualEnvironment、StartProcess)和/或“添加并发布”将影响一个或多个此类生命周期运作中的感知性能。 |
使用异步(非阻塞)脚本将确保生命周期操作能高效地完成。 |
该步骤需要所有带嵌入式脚本并行的虚拟应用程序包的应用知识,它拥有相关的动态配置文件,异步引用和运行脚本。 |
将外部虚拟字体从包中删除。 |
App-V 产品团队调查的大多数应用程序包含较少数量的字体,通常少于 20 种。 |
虚拟字体影响发布刷新的性能。 |
期望的字体将需要在本机启用/禁用。如需说明,请参见“安装或卸载字体”。 |
确定包中存在哪些虚拟字体
复制包。
重命名 Package_copy.appv to Package_copy.zip
打开 AppxManifest.xml,定位于:
<appv:Extension Category="AppV.Fonts">
<appv:Fonts>
<appv:Font Path="[{Fonts}]\private\CalibriL.ttf" DelayLoad="true"></appv:Font>
备注 如果有标记为“延迟加载”的字体,则这些字体将不会影响首次启动。 </appv:Fonts>
从包中排除虚拟字体
使用最适合用户范围的动态配置文件 – 为计算机上的所有用户部署配置,为特定用户或多个用户部署用户配置。
- 利用部署或用户配置禁用字体。
字体
-->
<Fonts Enabled="false" />
<!--
App-V 5.0 性能指南术语
描述与 App-V 5.0 性能优化相关的概念和操作时,使用了以下术语。
“复杂性” – 指一个或多个包的特性,可能在预配置(“Add-AppvClientPackage”)或集成(“Publish-AppvClientPackage”)时影响性能。一些示例特性包括:清单大小、虚拟字体数量、文件数量。
“取消集成” – 删除用户集成
“重新集成” – 应用用户集成。
“非持久,已共用” – 创建一个每次登录时运行虚拟环境的计算机。
持久,个人 – 运行虚拟环境的计算机,每次登录保持不变。
有状态 - 就本文档而言,指用户集成保持在会话间,用户环境管理技术与非持久 RDSH 或 VDI 一起使用。
无状态 – 代表会话间未保持用户状态时的方案。
触发 – (或本机动作触发)。UPM 使用这些类型的触发器来启动监控或同步操作。
用户体验 - 在 App-V 5.0 上下文中,用户体验就数量而言是以下部分的总和:
从用户登录那一点开始,到他们能够控制桌面为止。
从桌面可以交互的点开始,到使用 App-V 5.0 全服务器基础结构时,发布刷新开始的点(在 PowerShell terms, sync 中)。单独实例中,它是指启动“Add-AppVClientPackage”和“Publish-AppVClientPackage Powershell”命令时。
从发布刷新的开始到完成。在单独实例中,是指从第一个到最后一个发布的虚拟应用程序。
从虚拟应用程序可以从快捷方式启动的点开始。或者,是从文件类型关联已注册并将启动一个指定的虚拟应用程序的那一点开始。
“用户配置文件管理” – 管理与环境相关的用户组件的受控和结构化方法。例如,用户配置文件、首选项和政策管理、应用程序控制和应用程序部署。你可以根据需要,使用脚本或第三方解决方案配置环境。
想对 App-V 提建议?
在此处添加建议或参与投票。有关 App-V 的问题,请使用 App-V TechNet Forum(App-V TechNet 论坛)。
另请参阅
概念
Microsoft Application Virtualization 5.0 管理员指南
-----
你可以在 TechNet Library(TechNet 库)中详细了解 MDOP、在 TechNet Wiki 上搜索疑难解答,或者在 Facebook 或 Twitter 上了解我们的最新动态。
-----