2013-09-13 2 views
3

Я работаю с перфомансом (инструмент Linux) на Ubuntu (12.0.4 LTS), , и в настоящий момент я пытаюсь перенаправить вывод инструмента в файл. Этот вопрос был рассмотрен во многих сообщениях, но любой из предлагаемых решений не работал для меня.Выход Perf нельзя перенаправить в файл

Что я пытаюсь здесь: отслеживать статистику pid и хранить их в файле. В одном терминале я запускаю инструмент perf, а на другом я убиваю перфоманс, используя команду kill -INT (sudo kill -INT $pid). Вдохновленный различных решений в сети (например, how to save ouput of perf (Linux tool) to a file?) Я попробовал различные комбинации команд, таких как:

  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 , вывод не записывается в файл. Я не знаю, почему. Возможно, из-за команды kill; но следующая ссылка говорит, что она работает: http://comments.gmane.org/gmane.linux.kernel.perf.user/911

Я не уверен, что я делаю неправильно. Любая помощь будет оценена по достоинству.

+0

вы использовали NFS? – osgx

ответ

2
  1. Я также использую Ubuntu 12.04, это может зависеть от вашей версии perf.

    Перфская шахта - 3.2.40. (Вы можете проверить это:

    перфорация --version

  2. Поскольку шахта над версией 3.x, я попытался следующие команды, которая работает для меня:

    3 > results.log перфорация Stat -E циклов --log-ФД 3 Ls> ls.txt

    Так по вашему делу, вы можете попробовать:

    3> hhe.txt перфорация стат -e минорной ошибки, основные замыканий, CS -p 14615 --log-ФД 3 Ls> ls.txt

Между тем, я нашел этот пост очень полезный:
Какой поток использует perf?
https://unix.stackexchange.com/questions/89591/what-stream-does-perf-use

Надеется, что это помогает:)

2

Я просто добавил эти два параметра в конце команды он захватил все для меня в 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