我们正在对应用程序进行压力测试,并注意到一个奇怪的案例,即 Windows 内核接管了压力测试的执行。压力测试下的应用程序使用类似于这个passthrough 驱动程序的minifilter 驱动程序获取系统范围的 IO 事件,主要是文件的 CRUD 。
在一个特定 VM 上使用spddisk进行压力测试期间(Windows Server 2019 1809 17763.864,未安装外部 AV 或其他安全软件),我们注意到System
具有保留 pid 的进程4
正在“接管”压力负载执行。一个简单的批处理脚本似乎也发生了同样的情况(循环创建、读取、删除文件)。我从未在任何其他系统上看到过这样的事情,我们无法在其他任何地方重现这种行为,只能在该单个 VM 上。
“接管”发生在执行压力测试几秒钟后,并以下列方式表现出来:
- 进程 id 更改为系统保留 pid 4
- 线程 id 更改为另一个
tid
- 用户 SID 从 更改
S-1-5-21-2874696658-2485333267-3621126573-500
为S-1-5-18
- 用户从更改
win-saacuiping\administrator
为NT AUTHORITY\SYSTEM
我们已经在procmon中捕捉到了这一点
这感觉像是某种沙盒,但我以前从未真正见过这种情况。用于压力测试的简化命令是这样的
diskspd.exe -c100b -b1K -t2 -d60 -w50 -W0 -Sh f1.tmp
谁能解释一下,为什么执行突然从一个进程传递到 Windows 内核系统 4?