前提条件
当我们观察到SF中某一个节点出现CPU不正常的情况,但是由于不能肉眼长期观察,所以可以通过开启Performance Monitor的方式来获取每一个进程的%Processer Time的方式来进行分析。
- 已经又Service Fabric运行且节点为Windows操作系统
- 可以RDP到节点中
操作步骤
以下是开启Performance Monitor及设置抓取进程的方式:(第5,第7步为比较重要的设置)
1)RDP到节点问题节点中,打开开始菜单输入“Performance Monitor” 。
2)在Performance Monitor中,选择 Data Collector Sets -> User Defined -> New
3)定义收集器的名字,并选择 “Create manually”, 然后Next
4)目前只需要收集Performance counter的数据
5)非常关键的一步,收集所有Process的 Processor Time,并且设置收集时间为每10秒收集一次(PS: 收集间隔时间可以根据实际情况进行修改)
在添加Performance counter是选择为:Process 中的 % Processor Time,在Instances of selected object中选择all instances
6)选择文件保存的位置,点击Finish 完成。
7)在左侧目录结构中选择刚刚创建好的Data Collector Set, 然后在DataCollector01右键选择Properties,进入如下页面.
- 由于收集的进程数太多,所以如果默认选择Binary的Log Format的情况下,日志中只显示了_Total信息,对分析进程没有帮助,所以图中的第3处需要选择Comma Separated,用CSV的格式来保存数据。
8)已上修改好之后,就可以把新创建的Data Collector Set修改为开始状态。当收集到足够长的时间后(至少包含一次规律性CPU变化的周期),停止并保存数据。
9)当获取完成后,最后生成的文件格式如下,可以通过分析文件中单个进程在时间点中的变化情况。