应用程序可以识别每个用户应用程序所使用的系统磁盘带宽百分比吗?

应用程序可以识别每个用户应用程序所使用的系统磁盘带宽百分比吗?

我总是(主观地)觉得我的电脑太慢了(不管它有多快),所以我一直在寻找方法来测量和了解我的电脑实际上在做什么,这让我觉得它“慢”。据我观察,我的软件开发人员的工作量通常受磁盘限制(我正在等待磁盘 I/O),而不是受 CPU 限制。更糟糕的是,我使用的公司的 PC 有内存主动扫描防病毒软件,我无法控制,还有一些 IT 部门强制服务似乎占用了大量可用的硬盘带宽。

我见过的最好的工具(在 Windows 7 中)是资源监视器,我通常通过任务管理器中的按钮访问它。但是,磁盘 IO 页面似乎将磁盘活动标记为非常低的级别(例如,显示卷影存储,它正在刷新显然是由 VSS 本身以外的其他程序写入的信息,然后写入 Pagefile.sys,这显然是由于某些应用程序中的虚拟内存故障造成的)。

我想知道的是,是否存在一个实用程序,它可以将所有用户级进程的直接磁盘输入和输出加在一起,或者找到导致 VM 或 VSS 活动的进程或服务。通过这种方式,我希望您可以真正了解计算机宝贵的磁盘子系统带宽中有多少归因于特定应用程序。

以下是一个场景:

  1. MyApp.exe直接写入100k/s,读取100k/s。
  2. VSS 最终又写入了 100k/s。
  3. MyApp.exe 内部发生的页面错误又引发了 100k/s 的写入。

因此,在一段时间内(假设为 1 秒),MyApp.exe 运行的总“成本”为 400k/s,而在资源监视器中您只能直接观察到其中的一半。

是否有更智能的磁盘 IO 监视软件可供使用?

答案1

查看系统内部套件。它有多种工具可以帮助您,其中包括一个名为 ProcMon 的工具,它可以显示与磁盘相关的所有内容。

相关内容