Есть ли способ запустить perf под WSL? - PullRequest
4 голосов
/ 15 февраля 2020

Когда я захотел запустить perf под WSL, я встретил следующий вопрос:

ВНИМАНИЕ: perf не найден для ядра 4.4.0-18362

Возможно, вам нужно установить следующие пакеты для этого специфицированного c ядра:

linux -tools-4.4.0-18362-Microsoft

linux -cloud-tools-4.4.0-18362- Microsoft

Вы также можете установить один из следующих пакетов, чтобы быть в курсе:

linux -tools-Microsoft

linux -cloud-tools -Microsoft

Но я не могу найти пакеты с именами linux-tools-4.4.0-18362-Microsoft или linux-cloud-tools-4.4.0-18362-Microsoft. Я предполагаю, что имена пакетов генерируются автоматически.

Я также пытался использовать perf в docker контейнере. Однако контейнер docker использует то же ядро, что и хосты.

Есть ли какой-либо метод для запуска perf под WSL?


Я слышал, что perf можно использовать в WSL2. Но после обновления до WSL2 появляется похожее сообщение об ошибке:

ПРЕДУПРЕЖДЕНИЕ: perf не найден для ядра 4.19.84-microsoft

Возможно, вам придется установить следующие пакеты для это конкретное ядро:

linux-tools-4.19.84-microsoft-standard

linux-cloud-tools-4.19.84-microsoft-standard

Вы также можете установить один из следующих пакетов, чтобы быть в курсе:

linux-tools-standard

linux-cloud-tools-standard

1 Ответ

5 голосов
/ 18 февраля 2020

ВНИМАНИЕ: perf не найден для ядра 4.19.84-microsoft

Поскольку WSL2 использует собственное ядро ​​Linux. Его исходный код можно найти здесь microsoft / WSL2- Linux -Kernel . Мы должны скомпилировать из него инструменты perf.

Процедура

  • Установить необходимые пакеты сборки. Если вы используете Ubuntu в WSL2, это необходимая команда:
sudo apt install build-essential flex bison libssl-dev libelf-dev
  • Клонировать репозиторий ядра WSL2 Linux:
git clone --depth=1 https://github.com/microsoft/WSL2-Linux-Kernel.git
  • Go в папку perf и скомпилируйте ее:
cd WSL2-Linux-Kernel/tools/perf
make

perf исполняемый файл будет в этой папке.

...