微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Perf输出不能被redirect到文件

我正在使用Ubuntu(12.0.4 LTS)上的perf(一个Linux工具),而我现在正试图将工具的输出redirect到一个文件。 这个问题已经在许多post中解决了,但是任何提出的解决scheme都没有为我工作。

在这里尝试的是:跟踪pid的统计信息并将它们存储在一个文件中。 在一个terminal中,我运行perf工具,在另一个terminal上使用kill -INT命令( sudo kill -INT $pid )终止perf进程。 灵感来自networking上的不同解决scheme(例如, 如何将perf(Linux工具)的输出保存到文件? )我尝试了不同的命令组合,例如:

perf stat -o hhe.txt -e minor-faults,major-faults,cs -p 14615

perf stat --output hhe.txt -e minor-faults,cs -p 14615

perf stat --output hhe.txt --append -e minor-faults,cs -p 14615

perf stat -e minor-faults,cs -p 14615 2> hhe.txt

perf stat -e minor-faults,cs -p 14615 0> hhe.txt

perf stat -e minor-faults,cs -p 14615 >> hhe.txt

对于以sudo模式运行的所有这些命令,输出不会写入文件。 我不知道为什么。 也许是因为杀人的命令; 但下面的链接说,它的作品: http : //comments.gmane.org/gmane.linux.kernel.perf.user/911

我不知道我在做什么错。 任何帮助,将不胜感激。

我也使用Ubuntu 12.04,它可能取决于你的版本的性能

我的Perf verision是3.2.40。 (您可以通过以下方式查看:

性能改变

由于我的版本高于3.x ,我已经尝试了下面的命令,这对我很有用:

3> results.log perf stat -e cycles –log-fd 3 ls> ls.txt

所以根据你的情况,你可以尝试:

3> hhe.txt perf stat -e轻微故障,重大故障,cs -p 14615 –log-fd 3 ls> ls.txt

同时,我发现这个帖子非常有用:

perf使用什么流?

https://unix.stackexchange.com/questions/89591/what-stream-does-perf-use

希望这可以帮助 : )

我只是在命令结尾添加了这两个参数,它在2个文件中为我捕获了所有的东西。 我不知道为什么我们需要2个不同的文件,但我无法将所有内容重定向到1个文件。 2>是stderr,1>是stdout。 你可以试试看看是否有效。 我能够用这个来捕捉我想要的东西:

2>temp.out 1>temp1.out

例如,你的命令可能看起来像 –

perf stat -e minor-faults,cs -p 14615 2>temp.out 1>temp1.out

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐