春争日,夏争时,扫码抽取夏日礼包!!! 了解详情
写点什么

探索性能计数器与 F# WMI 类型提供器

  • 2016 年 6 月 12 日
  • 本文字数:858 字

    阅读完需:约 3 分钟

Windows Management Instrumentation(WMI) 是监控 Windows 系统的主要数据来源。考虑到每台机器的性能计数器都不同,所以需要一个工具可以列出所有可用的性能计数器。 WMI 类型提供器就可以给出所有的 WMI 性能计数器。

通过使用 FSI 可以直接从 IDE 查询到 WMI。下面的查询例子输出 IIS worker process 存储与垃圾回收参数:

复制代码
type Local = WmiProvider<"localhost">
let data = Local.GetDataContext()
[for d in data.Win32_PerfFormattedData_NETFramework_NETCLRMemory ->
d.Name, d.Gen0heapsize, d.PercentTimeinGC]
|> Seq.find (fun proc -> proc.Name.Contains("w3wp") )

WMI 参数可以运用于各个方面:数据采集器、Powershell 脚本或是在.Net 代码中。现有的监控工具通常提供与 WMI 性能计数器的集成。需要提供计数器与参数的确切名称来配置工具并监控它们。WMI 类型提供器可以通过准确的名称创建对象,这就代表着它们可以直接从 IDE 中复制粘贴到监控工具或是 Powershell 脚本中。

运行在64 位操作系统上时需要进行一些额外的配置。将32 位进程运行在64 位操作系统上请求数据时,将由32 位WMI 提供器提供服务。这会导致一些数据的丢失,因为32 位WMI 提供器只会返回从32 位进程中收集到的数据。

在Visual Studio 中,FSI 默认运行在32 位中。可以通过简单配置Tools/Options/F# Tools 的选项,改为运行在64 位下,与64 位WMI 提供器连接。在Visual Studio 中,针对 .Net 4.5.* 的应用程序同样默认编译为32 位。想要将应用程序编译为64 位,需要在MsBuild target 中设置prefer32bits 属性为false。

WMI 类型提供器是 FSharp.Management 这个开源项目的一部分,可以在 Github 上获取。项目中还包括了一些其他的类型提供器:文件系统、注册表、Powershell 以及时区。

查看英文原文 Exploring Performance Counters with F# WMI Type Provider


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016 年 6 月 12 日 19:00997
用户头像

发布了 217 篇内容, 共 56.8 次阅读, 收获喜欢 72 次。

关注

评论

发布
暂无评论
发现更多内容

DataOps系列丨DataOps的组织架构与挑战

DataPipeline数见科技

大数据

实现2nm工艺突破,台积电为何能给“摩尔定律”续命?

脑极体

阿里大牛八年打造,编程宝典,从初学到编程进阶—深入学习—实战

Java~~~

Java 阿里巴巴 程序员 架构 编程语言

数字人民币究竟是什么

CECBC

数字货币

结合实战和源码来聊聊Java中的SPI机制?

冰河

Java spi 服务发现

架构师训练营 W05 作业

Geek_f06ede

JVM运行时数据区,你真得好好学一学

Simon郎

JVM Java 分布式

阿里P8架构师吐血整理的《SpringBoot+Vue全栈开发实战》文档资料

Java架构之路

Java 程序员 架构 面试 编程语言

【得物技术】浅谈分布式事务中间件Seata

得物技术

开源 分布式事务 中间件 解决方案 seata

区块链+供应链,双链融合开启新时代

CECBC

区块链 供应链物流

Appium常用操作之「Toast提示信息获取」

无个性不签名

大专学历Java开发7年,从年初被裁到四面美团点评成功上岸,闭关七个月,入职那一天我哭了!

Java架构追梦

Java 阿里巴巴 面试 美团 java架构

五、一致性哈希算法

Geek_28b526

第九周学习性能优化 3 总结

三板斧

极客大学架构师训练营

《迅雷链精品课》第六课:主流区块链数据存储分析(一)

迅雷链

区块链

32核打赢AMD64核 英特尔Ice Lake为HPC提供强劲性能

新闻科技资讯

一周信创舆情观察(11.9~11.15)

统小信uos

架构师训练营 1 期 -- 第九周作业

曾彪彪

极客大学架构师训练营

DataOps系列丨DataOps理念与设计原则

DataPipeline数见科技

大数据

Maven-技术专题-Setting文件结构解析

浩宇天尚

Nacos实战及其源码分析

Fox

Spring Cloud nacos spring cloud alibaba

互联网券商系统搭建建议书

软件开发大鱼V15724971504

国际配售 港股交易系统开发 证券交易系统 IPO系统开发 金融平台搭建

入坑 docsify,一款神奇的文档生成利器!

沉默王二

docsify

微服务手册:高速查询?除了Redis我们还有另外的选择

互联网应用架构

redis 微服务 springboot Caffeine 高速缓存

DataOps系列丨数据的「资产负债表」与「现状」

DataPipeline数见科技

大数据

输入法B端市场转化:百度推动产业智能化的新路径

脑极体

git使用与原理剖析及其私服搭建

Fox

git

3年Java开发经验从阿里、美团、滴滴面试回来,想和Java程序员谈一谈感悟及面经

Java架构之路

Java 程序员 架构 面试 编程语言

石、火、水:从OriginOS透视移动系统进化论

脑极体

消灭微服务的坏味道 之 循环依赖

码猿外

微服务 循环依赖 坏味道

释放数字化活力 高质量建设数字中国

CECBC

数字经济

探索性能计数器与F# WMI类型提供器_.NET_Pierre-Luc Maheu_InfoQ精选文章