1. CPUSTRES

CPUSTRES是从微软官网找到的,Sysinternals系列工具之一。通过按钮创建多个线程,每个线程默认Affinity列的每个位都是1,每一位对应一个CPU核,也就是允许运行在所有CPU核。对应下面Windows API 中dwProcessAffinityMask变量。

1
2
3
4
BOOL SetProcessAffinityMask(
  [in] HANDLE    hProcess,
  [in] DWORD_PTR dwProcessAffinityMask
);

cpustress

模拟CPU占用时开启多个线程,逐个运行即可,再到任务管理器中看看CPUSTRES进程实际占用率,如果不符期望,再去调整线程数量,以及通过选中线程后鼠标右键或Thread菜单来编辑Activity负载程度。

我把把某个线程Affinity指定到CPU 0,Activity改为Maximum负载100%,回到线程列表中看到她的Affinity值对应1,Ideal CPU显示为0。

cpustress_affinity

此时运行该线程后任务管理器中看到第一个CPU核的占用升高到100%,想一想,还可以用这个占用率的变化来表达特定含义。

cpu0

2. HeavyLoad

支持模拟CPU、文件读写、TreeSize检测文件系统变化、内存、GPU,并实时绘制占用图。通过Test Options菜单和工具栏,选择模拟种类。

heavyload

下图模拟了CPU占用率

heavyload_run

通过Tools->Options->CPU,可选择使用几个逻辑CPU,假设1个物理CPU有12个核,这里填写2,使得HeavyLoad占用16%的CPU,填写3,HeavyLoad将会占用25%的CPU。注意仅仅是HeavyLoad软件,而不是整个电脑CPU占用比。

option_cpu

如果你选择了TreeSize,很有趣,会为每个分区弹出一个GUI,刷新显示分区每个文件夹占用空间。

treesize