Article
使用Flamegraph查看磁盘使用情况
以前有使用FlameGraph做Java程序的堆栈(热点代码)的显示。其实磁盘也可以使用类似的方式来显示查看占用情况,找出没用的数据。
$ git clone https://github.com/brendangregg/FlameGraph.git
#使用管理员权限运行
winse@Lenovo-PC /cygdrive/e/git/FlameGraph
$ ./files.pl /cygdrive/c/ | ./flamegraph.pl --hash --countname=bytes > /cygdrive/r/c.svg
然后浏览器查看即可,主要还是查看占用比。(但是不一定所有文件都包括在SVG里面)。
当然,默认官网提供的 files.pl 是获取所有的目录。我们可以做下层级控制,代码修改如下:
$ git diff
diff --git a/files.pl b/files.pl
index 27654be..5d1012e 100755
--- a/files.pl
+++ b/files.pl
@@ -29,7 +29,16 @@ sub usage {
usage() if @ARGV == 0 or $ARGV[0] eq "--help" or $ARGV[0] eq "-h";
foreach my $dir (@ARGV) {
- find(\&wanted, $dir);
+ find({
+ preprocess => \&preprocess,
+ wanted => \&wanted,
+ }, $dir);
+}
+
+sub preprocess {
+ my $depth = $File::Find::dir =~ tr[/][];
+ return @_ if $depth < 8;
+ return ;
}
sub wanted {

下列的文件夹可以排查下进行处理:
- C:\pagefile.sys C:\swapfile.sys : 系统属性-高级-性能选项-虚拟内存
- C:\hiberfil.sys : powercfg -h -zie 60% ; powercfg.exe /hibernate off
- C:\ProgramData\Package Cache
# 参考
- http://www.brendangregg.com/blog/2016-01-20/ebpf-offcpu-flame-graph.html
- https://support.microsoft.com/en-us/help/920730/how-to-disable-and-re-enable-hibernation-on-a-computer-that-is-running
- http://www.intowindows.com/how-to-reduce-hibernate-file-size-in-windows-7/
- http://www.brendangregg.com/blog/2017-02-05/file-system-flame-graph.html
–END
Related
Related posts
-
笔记本屏幕不够用?那就再加一块:三种简单副屏方案(Windows / 手机 / 平板)
2026-03-12
-
WIN 挂载 S3:像本地文件夹一样用对象存储
2026-02-10
-
Chrome 一个配置,能把 8G 内存立马打到 2G
2026-01-23
-
拯救上一代手机,手机上部署 n8n 服务
2025-12-12