Как установить инструмент мониторинга «perf»?

76

Как мне установить perfинструмент мониторинга?

samarasa
источник
2
Что именно вы хотите контролировать?
ддеймеке
6
@ddeimeke это кажется неуместным вопросом.
ДБЛИС
@ Ddeimeke это не имеет значения
SmallChess

Ответы:

66

perfУтилиту можно найти в Linux-инструментов пакета.

Джеймс Хенстридж
источник
8
Возможно, вы также захотите установить linux-tools-generic, поскольку он включает модули ядра, с которыми взаимодействует perf.
Аллен
Да @Allen linux-tools-generic - это то, что мне было нужно!
Джером
59

На Ubuntu 14.04 мне пришлось установить три пакета:

apt-get install linux-tools-common linux-tools-generic linux-tools-`uname -r`
notpeter
источник
5
Когда я попробовал, достаточно было просто использовать sudo apt-get install linux-tools-common linux-tools-generic(пропуская часть, которая зависит от версии ядра).
Мартин Р.
4
@ Martin-R linux-tools-generic всегда указывает на инструменты для самой последней версии ядра. Если вы используете старое ядро ​​(например, сервер с временем работы в течение нескольких месяцев), если вы хотите выполнить perf без перезагрузки на новое ядро, вы должны явно установить инструменты, сопряженные с этим ядром (отсюда uname -rрасширение оболочки).
notpeter
sudo apt-get update sudo apt-get -y установить linux-tools-common linux-tools-generic linux- uname -r
tools-
25

Убедитесь, что вы устанавливаете этот инструмент для правильной версии ядра. Если вы просто наберете:

sudo apt-get install linux-tools

Он установит его для последней версии Linux на вашем компьютере, и в случае, если вы загружаете предыдущую версию (скажем, из соображений стабильности), произойдет ошибка. В моем случае он был установлен для .45 вместо .43, и мне пришлось использовать следующую команду:

sudo apt-get install linux-tools-3.2.0.43

Вы можете найти свой релиз Kernel, набрав: uname -r

Чтобы убедиться, что он работает правильно, вы можете попробовать это: perf record /bin/ls

На случай, если вы собираетесь установить инструмент Zoom , вам нужно установить Perf, чтобы иметь возможность использовать все его утилиты.

Мона Джалал
источник
18

Чтобы получить последнюю версию perf независимо от версии ядра (версия perf не зависит от версии ядра):

git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
cd linux/tools/perf
make
cp perf /usr/bin

perf --version проверить текущую версию

бодха
источник
6

В 14.04 linux-toolsпакет не существует неквалифицированным:

$ sudo apt-get install linux-tools
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package linux-tools is a virtual package provided by:
  linux-tools-virtual 3.13.0.36.43
  linux-tools-lowlatency 3.13.0.36.43
  linux-tools-generic-lts-trusty 3.13.0.36.43
  linux-tools-generic-lts-saucy 3.13.0.36.43
  linux-tools-generic 3.13.0.36.43
You should explicitly select one to install.

E: Package 'linux-tools' has no installation candidate

Вместо этого вы можете установить один из перечисленных пакетов в зависимости от установленного вами ядра. Большинство пользователей захотят linux-tools-generic.

Дрю Ноакс
источник
4

Я установил Linux 3.17.2 на свою машину и попробовал

sudo apt-get install linux-tools-3.17.2

это показало, что linux-tools нет. В этом случае загрузите требуемую версию ядра Linux, перейдите по адресу linux-> tools-> perf:

cd linux/tools/perf

и затем выполните команду make:

make

и затем выполните команду make install:

make install

и затем перезагрузите компьютер. Вы только что установили perf вручную.

Абхишек Абхьянкар
источник
Перезагрузка не нужна. Кроме того, если вы хотите скомпилировать из исходного кода; В linux-tools-3.17.2 не должно быть необходимости
Heartinpiece
1

Выполнение следующих двух команд сделает это!

sudo apt-get install linux-tools-common 
sudo apt-get install linux-tools
феникс бай
источник
Не работает Я использую 12.04. Я получаю ошибку perf не найдена для ядра 3.2.0-60. Вам может потребоваться установить linux-tools-3.2.0-60-generic
Rishi Dua
Это не выглядит работой.
SmallChess
1

Вот как это работает для меня в Ubuntu 18.04:

После Command 'perf' not found, он предложил установить с sudo apt install linux-tools-common. Выполнение этого и попытка запустить perfпотом все равно привело к:

WARNING: perf not found for kernel 4.15.0-39

  You may need to install the following packages for this specific kernel:
    linux-tools-4.15.0-39-generic
    linux-cloud-tools-4.15.0-39-generic

  You may also want to install one of the following packages to keep up to date:
    linux-tools-generic
    linux-cloud-tools-generic

Я решил, sudo apt-get install linux-tools-genericи этого было достаточно.

В случае, если вы столкнетесь с ошибкой-разрешением при попытке использовать perfне-root, посмотрите здесь:

Запустите perf без рут-прав

Darkonaut
источник
Я получил то же предупреждение. Но затем я выполнил команду, которую вы предложили, и я все еще получаю то же предупреждение.
6005
linux-tools-oem, кажется, было достаточно.
6005
1
@ 6005 Спасибо за отзыв, хотя я не представляю, почему вы испытали другое поведение.
Darkonaut
0

В Ubuntu «perf» - это сценарий оболочки, который вызывает специфичный для ядра двоичный файл perf.

Но это на самом деле не нужно, перф совместим. Просто удалите обертку из / usr / bin и скопируйте в нее любой из исполняемых двоичных файлов из ./lib/linux-tools*.

prabha101
источник
-1
sudo apt-get install linux-tools-virtual
Томер Бен Дэвид
источник
этот ответ бесполезен без намека на намеченный подход
cmks