簡體   English   中英

Perf輸出無法重定向到文件

[英]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工具)的輸出保存到文件中? )我嘗試了不同的命令組合,例如:

  1. perf stat -o hhe.txt -e minor-faults,major-faults,cs -p 14615
  2. perf stat --output hhe.txt -e minor-faults,major-faults,cs -p 14615
  3. perf stat --output hhe.txt --append -e minor-faults,major-faults,cs -p 14615
  4. perf stat -e minor-faults,major-faults,cs -p 14615 2> hhe.txt
  5. perf stat -e minor-faults,major-faults,cs -p 14615 0> hhe.txt
  6. perf stat -e minor-faults,major-faults,cs -p 14615 >> hhe.txt

對於在sudo模式下運行的所有這些命令,輸出不會寫入文件。 我不知道為什么。 也許是因為殺戮命令; 但是以下鏈接說它有效: http//comments.gmane.org/gmane.linux.kernel.perf.user/911

我不確定我做錯了什么。 任何幫助,將不勝感激。

  1. 我也使用Ubuntu 12.04,它可能取決於你的perf版本。

    我的Perf檢驗是3.2.40。 (你可以通過以下方式檢查:

    perf --version

  2. 由於我的版本高於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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM