[英]Perf output cannot be redirected to file
我正在使用Ubuntu(12.0.4 LTS)上的perf(一個Linux工具),我現在仍然試圖將工具的輸出重定向到一個文件。 許多帖子已經解決了這個問題,但任何提議的解決方案都不適用於我。
我在這里嘗試的是:跟蹤pid的統計數據並將它們存儲在一個文件中。 在一個終端,我運行perf工具,在另一個終端,我使用kill -INT命令( sudo kill -INT $pid
)終止perf進程。 受到網絡上不同解決方案的啟發(例如如何將perf(Linux工具)的輸出保存到文件中? )我嘗試了不同的命令組合,例如:
perf stat -o hhe.txt -e minor-faults,major-faults,cs -p 14615
perf stat --output hhe.txt -e minor-faults,major-faults,cs -p 14615
perf stat --output hhe.txt --append -e minor-faults,major-faults,cs -p 14615
perf stat -e minor-faults,major-faults,cs -p 14615 2> hhe.txt
perf stat -e minor-faults,major-faults,cs -p 14615 0> hhe.txt
perf stat -e minor-faults,major-faults,cs -p 14615 >> hhe.txt
對於在sudo模式下運行的所有這些命令,輸出不會寫入文件。 我不知道為什么。 也許是因為殺戮命令; 但是以下鏈接說它有效: http : //comments.gmane.org/gmane.linux.kernel.perf.user/911
我不確定我做錯了什么。 任何幫助,將不勝感激。
我也使用Ubuntu 12.04,它可能取決於你的perf版本。
我的Perf檢驗是3.2.40。 (你可以通過以下方式檢查:
perf --version
由於我的版本高於3.x版本,我嘗試了以下命令,這對我有用:
3> results.log perf stat -e cycles --log -fd 3 ls> ls.txt
所以根據你的情況,你可以嘗試:
3> hhe.txt perf stat -e minor-faults,major-faults,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,major-faults,cs -p 14615 2>temp.out 1>temp1.out
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.