Como instalar a ferramenta de monitoramento "perf"?

75

Como instalo a perfferramenta de monitoramento?

samarasa
fonte
2
O que exatamente você deseja monitorar?
ddeimeke
6
@ddeimeke que parece ser uma pergunta irrelevante.
Dbliss 16/10/2015
@ddeimeke não importa
SmallChess

Respostas:

66

O perfutilitário pode ser encontrado no pacote linux-tools .

James Henstridge
fonte
8
Você provavelmente também deseja instalar o linux-tools-generic, pois inclui os módulos do kernel com os quais o perf interage.
Allen
Sim, o @Allen linux-tools-generic era o que eu precisava!
Jerome
59

No Ubuntu 14.04, tive que instalar três pacotes:

apt-get install linux-tools-common linux-tools-generic linux-tools-`uname -r`
notpeter
fonte
5
Quando tentei, basta usar sudo apt-get install linux-tools-common linux-tools-generic(pular a parte, que depende da versão do kernel) era suficiente.
Martin R.
4
@ Martin-R linux-tools-generic sempre aponta para as ferramentas para a versão mais atualizada do kernel. Ao executar um kernel mais antigo (por exemplo, um servidor com alguns meses de atividade), se você deseja perf sem reiniciar o kernel mais recente, é necessário instalar explicitamente as ferramentas emparelhadas com esse kernel (daí a uname -rexpansão do shell).
notpeter
sudo apt-get update sudo apt-get -y instalar o Linux-tools-comum linux-tools-genéricos linux-tools-uname -r
dylanninin
25

Certifique-se de instalar esta ferramenta para a versão correta do Kernel. Se você apenas digitar:

sudo apt-get install linux-tools

Ele o instalará para a versão mais recente do Linux em sua máquina e, caso você esteja inicializando uma versão anterior (digamos por motivos de estabilidade), ele irá errar. No meu caso, ele foi instalado para .45 em vez de .43 e eu tive que usar o seguinte comando para instalá-lo:

sudo apt-get install linux-tools-3.2.0.43

Você pode encontrar sua versão do Kernel digitando: uname -r

Para garantir que esteja funcionando corretamente, você pode tentar o seguinte: perf record /bin/ls

No caso de você instalar a ferramenta Zoom , é necessário ter o Perf instalado para poder usar todos os seus utilitários.

Mona Jalal
fonte
18

Para obter a versão mais recente do perf, independentemente da versão do kernel (a versão perf é independente da versão do kernel):

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 para verificar a versão atual

bodha
fonte
6

No 14.04, o linux-toolspacote não existe desqualificado:

$ 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

Em vez disso, você pode instalar um dos pacotes listados, dependendo do kernel que você instalou. A maioria dos usuários vai querer linux-tools-generic.

Drew Noakes
fonte
4

Instalei o Linux 3.17.2 na minha máquina e tentei

sudo apt-get install linux-tools-3.17.2

mostrou que o linux-tools não está presente. Nesse caso, baixe a versão necessária do kernel do linux, vá para linux-> tools-> perf:

cd linux/tools/perf

e, em seguida, execute o comando make:

make

e, em seguida, execute o comando make install:

make install

e depois reinicie. Você acabou de instalar o perf manualmente.

Abhishek Abhyankar
fonte
A reinicialização não é necessária. Além disso, se você deseja compilar a partir do código fonte; linux-tools-3.17.2 não deve ser necessário
Heartinpiece
1

A execução dos dois comandos a seguir fará isso!

sudo apt-get install linux-tools-common 
sudo apt-get install linux-tools
phoenix bai
fonte
Não funciona Estou usando o 12.04. Eu recebo o erro perf não encontrado para o kernel 3.2.0-60. Pode ser necessário instalar o Linux-tools-3.2.0-60-generic
Rishi Dua
Isso não parece funcionar.
SmallChess
1

Aqui está como funcionou para mim no Ubuntu 18.04:

Depois Command 'perf' not found, sugeriu a instalação com sudo apt install linux-tools-common. Fazer isso e tentar executar perfposteriormente ainda resultou em:

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

Eu decidi sudo apt-get install linux-tools-generice isso foi o suficiente.

Caso você encontre erro de permissão ao tentar usar perfcomo não raiz, veja aqui:

Execute perf sem direitos de root

Darkonaut
fonte
Eu recebi o mesmo aviso. Mas então executei o comando que você sugeriu e ainda recebo o mesmo aviso.
6005
O linux-tools-oem parece ter sido suficiente.
6005
1
@ 6005 Thx pelo feedback, apesar de não ter uma ideia de por que você teve um comportamento diferente.
Darkonaut 20/03
0

No ubuntu, "perf" é um script de shell que chama um binário perf específico do kernel.

Mas isso não é realmente necessário, o perf é compatível. Apenas remova o wrapper de / usr / bin e copie qualquer um dos binários perf de ./lib/linux-tools* nele.

prabha101
fonte
-1
sudo apt-get install linux-tools-virtual
Tomer Ben David
fonte
esta resposta é inútil sem qualquer indício da abordagem orientada
cmks