Azure虚拟桌面使用 Azure Monitor 日志服务来收集、索引和存储环境生成的数据。 因此,Azure Monitor 的定价模型基于 Log Analytics 工作区每天导入并处理的数据量(以 GB 为单位,也称为“引入”量)。 Log Analytics 工作区的成本不仅取决于收集的数据量,还取决于所选Azure付款计划以及你选择存储环境生成的数据的时间。
本文将介绍以下事项,以帮助你了解 Azure Monitor 中的定价工作原理:
- 在启用此功能之前如何预先估计数据引入和存储成本
- 使用此功能时如何测量和控制引入和存储以降低成本
注释
本文中列出的所有大小和定价只是演示估算工作原理的示例。 若要根据您的 Azure Monitor Log Analytics 的定价模型和 Azure 区域进行更准确的评估,请参阅 Azure Monitor 定价。
估计数据引入和存储成本
建议使用在 Log Analytics 工作区中编写为日志的预定义数据集。 在以下示例估算中,我们将查看默认配置中的计费数据
Azure 虚拟桌面 Insights 的预定义数据集包括:
- 会话主机的性能计数器
- 来自会话主机的 Windows 事件日志
- 来自服务基础架构的 Azure 虚拟桌面诊断
数据引入和存储成本取决于环境大小、运行状况和使用情况。 本文中用于计算预期成本范围的示例估算值,是基于运行状况良好且负载从轻度到高负载不等的虚拟机,并依据我们的虚拟机大小调整指南,用来估算您预期会产生的数据引入和存储成本范围。
我们在本示例中将使用的轻量级使用场景虚拟机包括以下组件:
- 4 个 vCPU,1 个磁盘
- 每天 16 个会话
- 平均会话持续时间为 2 小时 (120 分钟)
- 每个会话 100 个进程
我们将在示例中使用的电源使用情况 VM 包括以下组件:
- 6 个 vCPU,1 个磁盘
- 每天 6 个会话
- 平均会话持续时间为 4 小时 (240 分钟)
- 每个会话 200 个进程
估算性能计数器摄取量
性能计数器显示系统资源的性能。 性能计数器数据引入取决于环境大小和使用情况。 在大多数情况下,对于 Azure 虚拟桌面 Insights,性能计数器应占数据引入量的 80% 到 99%。
在开始估算之前,请务必了解每个性能计数器以特定频率发送数据。 我们设置了默认每分钟采样率 (你也可以在设置) 中编辑此速率,但该速率将应用于不同的乘法系数,具体取决于计数器。 以下因素会影响速率:
对于按每个虚拟机 (VM) 计算的系数,在 VM 运行期间,每个计数器都会按默认的每分钟采样率发送您环境中每个 VM 的数据。 通过将每分钟的默认采样率乘以环境中的 VM 数,然后将该数字乘以每天的平均 VM 运行时间,可以估计这些计数器每天发送的记录数。
总结:
默认每分钟采样率× VM SKU 中的 CPU 核心数× VM 数×每天平均 VM 运行时间 = 每天发送的记录数
对于每 CPU 系数,在您的环境中,只要 VM 正在运行,每个 VM 的每个 vCPU 上的每个计数器都会按默认采样率每分钟发送一次。 通过将每分钟默认采样率乘以 VM SKU 中的 CPU 核心数,然后将该数字乘以 VM 运行分钟数和环境中的 VM 数,可以估计计数器每天将发送的记录数。
总结:
默认每分钟采样率× VM SKU 中的 CPU 核心数× VM 运行的分钟数× VM 数 = 每天发送的记录数
对于每个磁盘因子,每个计数器以默认采样率发送环境中每个 VM 中每个磁盘的数据。 这些计数器每天发送的记录数等于每分钟默认采样率乘以 VM SKU 中的磁盘数,再乘以每小时 60 分钟,最后乘以 VM 的平均活动小时数。
总结:
默认每分钟采样率× VM SKU 中的磁盘数×每小时 60 分钟× VM 数×每天平均 VM 运行时间 = 每天发送的记录数
对于每个会话因子,每个计数器在会话连接时按环境中每个会话的默认采样率发送数据。 通过将每分钟的默认采样率乘以每天的平均会话数和平均会话持续时间,可以估计这些计数器每天将发送的记录数。
总结:
默认每分钟采样率×每天会话×平均会话持续时间 = 每天发送的记录数
对于每个进程因子,每个计数器以默认速率为环境中每个会话中的每个进程发送数据。 通过将每分钟的默认采样率乘以每天的平均会话数,再乘以平均会话持续时间和每个会话的平均进程数,可以估计这些计数器每天将发送的记录数。
总结:
默认每分钟采样率×每天会话数×平均会话持续时间×每个会话的平均进程数 = 每天发送的记录数
下表列出了 Azure 虚拟桌面见解收集的 20 个性能计数器及其默认速率:
| 计数器名称 | 默认采样率 | 频率因子 |
|---|---|---|
| 逻辑磁盘 (C:) \% 可用空间 | 60 秒 | 按每个磁盘计 |
| 逻辑磁盘(C:)\平均磁盘队列长度 | 30 秒 | 每个磁盘 |
| 逻辑磁盘(C:)\平均磁盘秒/传输 | 60 秒 | 每磁盘 |
| 逻辑磁盘 (C:) \当前磁盘队列长度 | 30 秒 | 每个磁盘 |
| 内存(*)\可用兆字节 | 30 秒 | 每台虚拟机 |
| 内存(*)\页错误/秒 | 30 秒 | 每个虚拟机 |
| 内存(*)\页/秒 | 30 秒 | 每个虚拟机 |
| 内存 (*) \% 正在使用的已提交字节数 | 30 秒 | 每个虚拟机 |
| PhysicalDisk(*)\平均磁盘队列长度 | 30 秒 | 每个磁盘 |
| 物理磁盘(*)\平均磁盘读取秒数 | 30 秒 | 每个磁盘 |
| 物理磁盘(*)\平均磁盘秒数/传输 | 30 秒 | 每个磁盘 |
| PhysicalDisk (*) \Avg.Disk sec/Write | 30 秒 | 每个磁盘 |
| 处理器信息 (_Total) \% 处理器时间 | 30 秒 | 每个核心/每个 CPU |
| 终端服务 (*) \活动会话 | 60 秒 | 每个虚拟机 |
| 终端服务 (*) \非活动会话 | 60 秒 | 每台虚拟机 |
| 终端服务(*)\会话总数 | 60 秒 | 每个虚拟机 |
| 每个进程的用户输入延迟 (*) \最大输入延迟 | 30 秒 | 每个进程 |
| 每个会话的用户输入延迟 (*) \最大输入延迟 | 30 秒 | 每次会话 |
| RemoteFX 网络 (*) \当前 TCP RTT | 30 秒 | 每个虚拟机 |
| RemoteFX 网络 (*) \当前 UDP 带宽 | 30 秒 | 每个虚拟机 |
如果估计每个记录大小为 200 字节,则以默认采样率运行轻工作负载的示例 VM 每天将发送大约 90 MB 的性能计数器数据。 同时,运行电源工作负载的示例 VM 每天为每个 VM 发送大约 130 兆字节的性能计数器数据。 但是,记录大小和环境使用情况可能会有所不同,因此部署每天使用的兆字节可能有所不同。
若要详细了解输入延迟性能计数器,请参阅 用户输入延迟性能计数器。
估算 Windows 事件日志数据引入量
Windows 事件日志是由 windows 虚拟机上的 Azure Monitor 代理或 Log Analytics 代理收集的数据源。 可以从标准日志(如系统和应用程序)以及需要监视的应用程序创建的自定义日志中收集事件。
以下是 Azure 虚拟桌面 Insights 的默认 Windows 事件:
- Application
- Microsoft-Windows-TerminalServices-RemoteConnectionManager/Admin
- Microsoft-Windows-TerminalServices-LocalSessionManager/Operational
- System
- Microsoft-FSLogix-Apps/Operational
- Microsoft-FSLogix-Apps/Admin
每当环境满足事件条款时,Windows 事件就会发送事件。 处于正常状态的计算机发送的事件数比处于不正常状态的计算机要少。 由于事件数量难以预测,因此在此次估算中,我们参考健康环境中的示例,采用每台 VM 每天 1,000 到 10,000 个事件的范围。 例如,如果在此示例中估计每个事件记录大小为 1,500 字节,则指定环境每天大约为 2 到 15 兆字节的事件数据。
若要详细了解如何使用 Azure Monitor 代理配置 Windows 事件日志数据收集,请参阅如何使用 Azure Monitor 代理从虚拟机收集事件和性能计数器。
若要了解有关 Windows 事件的详细信息,请参阅 Windows 事件记录属性。
估算诊断数据引入量
诊断服务为用户和管理操作创建活动日志。
以下是诊断计数器跟踪的活动日志的名称:
- WVDCheckpoints
- WVDConnections
- WVDErrors
- WVDFeeds
- WVDManagement
- WVDAgentHealthStatus
每当环境满足创建记录所需的条款时,服务就会发送诊断信息。 由于诊断记录数量无法预测,因此在本次估算中,我们根据健康环境中的示例,采用每台 VM 每天 500 到 1000 个事件的范围。
例如,如果在此示例中估计每个诊断记录大小为 200 字节,则每天每个 VM 的总引入数据将小于 1 MB。
若要详细了解活动日志类别,请参阅 Azure虚拟桌面诊断。
测量和管理性能计数器数据
真正的监视成本取决于环境大小、使用情况和运行状况。 若要了解如何度量 Log Analytics 工作区中的数据引入,请参阅 在 Log Analytics 工作区中分析使用情况。
会话主机使用的性能计数器是 Azure 虚拟桌面 Insights 引入数据的最大来源之一。 此查询将显示已在环境中启用的所有性能计数器,而不仅仅是Azure虚拟桌面见解的默认计数器。 此信息可帮助你了解要针对哪些领域来降低成本。
为 Log Analytics 工作区运行以下自定义查询模板,以跟踪过去一天每个性能计数器引入的频率和兆字节:
注释
请确保将模板的占位符值替换为环境使用的值,否则查询将不起作用。
let WVDHosts = dynamic(['host1.contoso.com', 'host2.contoso.com']);
Perf
| where TimeGenerated > ago(1d)
| where Computer in (WVDHosts)
| extend PerfCounter = strcat(ObjectName, ":", CounterName)
| summarize Records = count(TimeGenerated), InstanceNames = dcount(InstanceName), Bytes=sum(_BilledSize) by PerfCounter
| extend Billed_MBytes = Bytes / (1024 * 1024), BytesPerRecord = Bytes / Records
| sort by Records desc
估算总成本
最后,让我们估算总成本。 在此示例中,假设我们根据前面部分中的示例值得出了以下结果:
| 数据源 | 每天的大小估计 (兆字节) |
|---|---|
| 性能计数器 | 90-130 |
| Events | 2-15 |
| Azure虚拟桌面诊断 | < 1 |
在此示例中,Azure 虚拟桌面 Insights 的总引入数据量在每天每个 VM 92 到 145 MB 之间。 换句话说,每 31 天,每个 VM 引入大约 3 到 5 GB 的数据。
使用 Log Analytics 定价的默认随用随付模式,你可以估算 Azure Monitor 数据收集和存储的每月成本。 根据您的数据引入量,还可以考虑 Log Analytics 的容量预留定价模型。
管理数据引入以降低成本
本部分将介绍如何衡量和管理数据引入以降低成本。
若要了解如何管理工作簿的访问权限和许可,请参阅 访问控制。
注释
删除数据点将影响 Azure 虚拟桌面见解中与之对应的可视化内容。
Log Analytics 设置
下面是优化 Log Analytics 设置以管理数据引入的一些建议:
- 为Azure虚拟桌面资源使用指定的 Log Analytics 工作区,以确保 Log Analytics 仅收集Azure虚拟桌面部署中虚拟机的性能计数器和事件。
- 调整 Log Analytics 存储设置以管理成本。 可以缩短保留期,评估固定存储定价层是否更具成本效益,或者设置可以引入的数据量边界,以限制不正常部署的影响。 若要了解详细信息,请参阅Azure监视日志定价详细信息。
删除多余的数据
默认配置是建议用于Azure虚拟桌面见解的唯一数据集。 始终可以选择添加其他数据点并在“主机诊断:主机浏览器”中查看它们,或为其生成自定义图表,但添加的数据会增加 Log Analytics 成本。 为了节省成本,可以将其删除。
测量和管理性能计数器数据
真正的监视成本取决于环境大小、使用情况和运行状况。 若要了解如何度量 Log Analytics 工作区中的数据引入,请参阅 在 Log Analytics 工作区中分析使用情况。
会话主机使用的性能计数器很可能是 Azure 虚拟桌面 Insights 中摄取数据的最大来源。 以下适用于 Log Analytics 工作区的自定义查询模板可用于跟踪过去一天内每个性能计数器的频率和引入的兆字节数:
let WVDHosts = dynamic(['host1.contoso.com', 'host2.contoso.com']);
Perf
| where TimeGenerated > ago(1d)
| where Computer in (WVDHosts)
| extend PerfCounter = strcat(ObjectName, ":", CounterName)
| summarize Records = count(TimeGenerated), InstanceNames = dcount(InstanceName), Bytes=sum(_BilledSize) by PerfCounter
| extend Billed_MBytes = Bytes / (1024 * 1024), BytesPerRecord = Bytes / Records
| sort by Records desc
注释
请确保将模板的占位符值替换为环境使用的值,否则查询将不起作用。
此查询将显示已在环境中启用的所有性能计数器,而不仅仅是Azure虚拟桌面见解的默认计数器。 此信息可帮助你了解要针对哪些方面来降低成本,例如降低计数器的频率或将其完全删除。
还可以通过删除性能计数器来降低成本。 若要了解如何删除性能计数器或编辑现有计数器以降低其频率,请参阅 配置性能计数器。
管理 Windows 事件日志
当所有主机都正常时,Windows 事件不太可能导致数据引入高峰。 不正常的主机可能会增加发送到日志的事件数,但该信息对于解决主机的问题可能至关重要。 建议保留它们。 若要详细了解如何管理 Windows 事件日志,请参阅 配置 Windows 事件日志。
管理诊断
Azure虚拟桌面诊断应占数据存储成本的不到 1%,因此不建议删除它们。 若要管理Azure虚拟桌面诊断,请使用 Log Analytics 进行诊断功能。
后续步骤
若要详细了解Azure虚拟桌面见解,请参阅以下文章:
- 使用 Azure 虚拟桌面 Insights 监视部署。
- 使用 术语表 了解有关术语和概念的详细信息。
- 如果遇到问题,检查故障排除指南寻求帮助。
- 查看Azure监视成本和使用情况,详细了解如何管理监视成本。