我使用 perfmon 的“PhysicalDisk\% Idle Time”来确定磁盘何时被大量使用。问题是,缩小磁盘使用范围的最佳/最快捷方法是什么?
我知道以下性能计数器,但它们都存在问题:
- Memory\Pages/sec:如果磁盘使用是由于分页引起的,则很有用,否则毫无用处。
- Process\IO 数据字节/秒:包括非磁盘 IO(例如网络),不包括 perfmon 设置后启动的进程,并且将进程与其 perfmon id 匹配可能很耗时。
资源监视器的“磁盘”选项卡提供了非常有用的信息,但不幸的是它不提供历史记录。它无法告诉我为什么,例如,“% 空闲时间”在上午 10 点有 20 秒为 0。
我想要的信息是:
- 哪些进程使用磁盘最多?
- 他们正在访问什么文件?
答案1
安装朋友,运行一天,让它分析捕获的数据。
答案2
微软 sysinternals 的进程监视器将实时执行此操作,或者您可以根据需要让它运行。您还可以保存配置,整个程序都可以轻松编写脚本。
http://technet.microsoft.com/en-us/sysinternals/bb896645
顶部有 5 个按钮,除了看起来像文件柜的按钮外,其他都关闭。(文件系统访问)
您可以右键单击列表中的程序名称并告诉程序排除该项目,这样您就可以忽略 DLLHost 等系统进程。
任何访问该驱动器的程序都会立即显示在该列表中。
祝你好运。!
或者,在计划任务中使用以下批处理文件记录一段时间然后关闭。
set Delaytime=3
start Procmon.exe /quiet /accepteula /minimized /backingfile log.pml
ping 127.0.0.1 -n %Delaytime% -w 1000 > NUL
start Procmon.exe /quiet /accepteula /minimized /terminate
只需将 Delaytime 更改为您想要记录的秒数,然后打开 log.pml。