Log Analytics如何查询指定LUN磁盘的吞吐量并生成图表?
问题解答
该需求可以实现。
你当前的查询缺少对应目标LUN的标识筛选条件,且聚合维度没有携带磁盘实例字段,最终返回的是指定计算机所有逻辑磁盘的吞吐量聚合结果,无法定位单块目标磁盘。
定位目标LUN对应筛选值的方法
LogicalDisk 类型的性能计数器中,InstanceName 字段存储的就是逻辑磁盘/LUN的唯一标识,先执行以下查询可以列出目标计算机下所有上报的磁盘实例:
Perf | where ObjectName == "LogicalDisk" | where CounterName == "Disk Bytes/sec" | where Computer contains "computername" | distinct InstanceName
返回结果里:
- Windows环境下,分配了盘符的磁盘会显示为
C:、D:这类盘符格式,未分配盘符的挂载LUN/卷会显示为HarddiskVolumeX格式的卷标识 - Linux环境下,会显示为
/dev/sdax这类设备路径或者磁盘挂载点路径
从返回结果里找到你目标LUN对应的InstanceName值即可。
修正后的单LUN吞吐量查询语句
将查询中InstanceName的筛选值替换为你前面查到的目标标识,即可得到对应磁盘的吞吐量时序图表:
Perf | where ObjectName == "LogicalDisk" | where CounterName == "Disk Bytes/sec" | where Computer contains "computername" | where InstanceName == "替换为目标LUN对应的InstanceName值" | summarize ThroughputInMBs = (max(CounterValue)/1024/1024) by Computer, InstanceName, bin(TimeGenerated, 5m) | render timechart
补充说明
- 如果你需要查询物理LUN(非逻辑分区)的吞吐量,将
ObjectName的筛选值替换为PhysicalDisk即可,对应InstanceName字段为物理磁盘的编号标识 - 如果需要拆分展示读、写吞吐量,可以新增
CounterName的筛选条件,分别匹配Disk Read Bytes/sec、Disk Write Bytes/sec两个计数器单独计算即可 - 现有逻辑中CounterValue为字节单位,两次除以1024转换为MiB/s单位的计算逻辑正确。
内容的提问来源于stack exchange,提问作者Yackzel
相关产品推荐
相关产品推荐

