gpt4 book ai didi

linux - 获取一段时间内目录中所有文件系统操作的计数

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:20 26 4
gpt4 key购买 nike

我正在尝试优化一个项目,并希望通过查看 I/O 来分析该项目的效率。 该项目只影响本地目录中的文件和目录,这让事情变得简单了一些。假设 I/O 操作的数量越少(暂时让我们这样做)越好,有没有一种方法可以监视或简单地获取从进程 A 开始到进程 A 结束时所有文件系统操作的计数?有没有工具可以让你这样做?我在 MacOS 上,但希望能在 *nix 或 MacOS 上工作。

如何正确执行此操作?如何基于本地文件系统 I/O 分析应用程序的性能?

这恰好是一个 node.js 应用程序(虽然不是服务器)

最佳答案

是的,该工具存在。是strace .

在 OSX 上,等效工具似乎是 dtruss .

stracedtruss 都支持-c 开关。在 strace 上,此开关报告“每个系统调用的时间、调用和错误,并报告程序退出时的摘要”。在 dtruss 上,它“打印系统调用计数”。

-c 开关可能会为您提供所需的一切,但无论如何都要研究手册页;它们也可能会激发您查看其他数据。

例子:

strace -o /tmp/strace.out -e trace=file,open,close,read,write /bin/echo hello
grep -c '^write' /tmp/strace.out
$ strace -c -e trace=file,open,close,read,write /bin/echo hello
hello
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
36.47 0.000031 10 3 open
21.18 0.000018 6 3 3 access
17.65 0.000015 15 1 write
11.76 0.000010 2 5 close
7.06 0.000006 6 1 execve
5.88 0.000005 5 1 read
------ ----------- ----------- --------- --------- ----------------
100.00 0.000085 14 3 total

关于linux - 获取一段时间内目录中所有文件系统操作的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40822843/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com