该有的矜持---域控CPU长期飙60-80%问题源头确认过程

背景:

很早就发现域控的CPU长期飙在60-80%之间,日志服务是CPU占用大头,改小日志的最大大小也没有用,域控使用了paloalto和 SXF的单点登陆功能,因此我虽然肯定确定是两个的其中一个,可是一直没有实锤。windows

使用Stack Trace我只能确认是日志查询致使的ide

该有的矜持---域控CPU长期飙60-80%问题源头确认过程

因为日志的查询是经过WMI进行的,因此在找到一些WMI TRACE相关的信息后,我抓了一小段时间WMI TRACE为ETL文件,而后使用windows message analyzer 把须要的字段提取出来,生成一个CSV,而后在EXCEL里面进行查看。ui

该有的矜持---域控CPU长期飙60-80%问题源头确认过程

  1. 白色背景的查询1,彷佛没有太规则的规律,查询间隔时间最小彷佛是1s,可是大的间隔也有5s ,2s左右居多。
select __RELPATH, InsertionStrings from Win32_NTLogEvent where ((Logfile = "security" AND (((EventCode = 672 OR EventCode = 4624) OR EventCode = 540) OR EventCode = 4768)) AND RecordNumber > 939574642)
  1. (Yellow)色背景的查询2 (唉,这博客的关键词太优(cu)雅(fang)),查询间隔大概是14-15s.
select __RELPATH, EventIdentifier, InsertionStrings, TimeGenerated from Win32_NTLogEvent where (((((((((EventIdentifier = 4624 OR EventIdentifier = 4768) OR EventIdentifier = 4769) OR EventIdentifier = 4770) OR EventIdentifier = 540) OR EventIdentifier = 672) OR EventIdentifier = 673) OR EventIdentifier = 674) AND LogFile = "Security") AND TimeGenerated >= "20190906013740.751000+000")

找到真凶

是的上面的查询1,频率很高,多是真凶,可是这个查询是谁发出的呢?可否跟到IP地址?日志

使用netsh trace 进行抓包,使用Windows Message Analyzer进行分析,先筛选WMI,而后点中其中一条,点最前面的加号,一直跟到ip 模块,而后把SourceAddress 显示成列,把strquery 单独显示成一列,大体以下图。真凶找到。code

该有的矜持---域控CPU长期飙60-80%问题源头确认过程

后记

觉得在网页上把下面的设置禁用,删除配置的域控列表,就能够禁用日志查询了,结果抓包后不是这样的,SXF 是坚持要干活,AD的日志查询仍是一直在继续,估计釜底抽薪的办法,只能把SXF用的帐号给改个密码或者把帐号禁用了。server

该有的矜持---域控CPU长期飙60-80%问题源头确认过程

我验证了个人想法,而后发现确实有效,我只想说,作人真的要矜持。。。。。。。。。。。blog

禁用了SXF用的AD帐号一段后,又开启后,DC的CPU表现图以下:ip

该有的矜持---域控CPU长期飙60-80%问题源头确认过程

附加下Palo Alto的查询配置(可更改的)ci

该有的矜持---域控CPU长期飙60-80%问题源头确认过程

第二周后,我获取了补丁文件,按照原来的建议,把频率改为25s,不过是写死在程序中的,这响应还算是快捷了(Tou)(Lan), 搞个配置文件,能够修改频率不行吗?对比下palo,只能呵呵了.......windows-server

虽然不少叹息,不过该高兴的是,这个问题持续一年多终于解决了...

该有的矜持---域控CPU长期飙60-80%问题源头确认过程

参考连接

network tracing using ETW

WMI Tracing

相关文章
相关标签/搜索