评论

收藏

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

服务系统 服务系统 发布于:2021-06-30 19:57 | 阅读数:449 | 评论:0

背景:

  很早就发现域控的CPU长期飙在60-80%之间,日志服务是CPU占用大头,改小日志的最大大小也没有用,域控使用了paloalto和 SXF的单点登录功能,所以我虽然确定肯定是两个的其中一个,但是一直没有实锤。
  使用Stack Trace我只能确认是日志查询导致的

DSC0000.jpg

  • 白色背景的查询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)

  • (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 单独显示成一列,大致如下图。真凶找到。

DSC0001.jpg
  我验证了我的想法,然后发现确实有效,我只想说,做人真的要矜持。。。。。。。。。。。
  禁用了SXF用的AD账号一段后,又开启后,DC的CPU表现图如下:

DSC0002.jpg
  第二周后,我获取了补丁文件,按照原来的建议,把频率改成25s,不过是写死在程序中的,这响应还算是快捷了(Tou)(Lan), 搞个配置文件,可以修改频率不行吗?对比下palo,只能呵呵了.......
  虽然很多叹息,不过该高兴的是,这个问题持续一年多终于解决了...
关注下面的标签,发现更多相似文章