К основному контенту

Как узнать ядро на котором работает процесс Linux

Когда вы запускаете программы, для которых очень важна максимальная производительность или сильно использующие сетевую пропускную способность на многоядерных процессорах или архитектуре, основанной на технологии NUMA, взаимодействие CPU и памяти - один из самых важных факторов для получения максимальной производительности.

Выполнение тесно связанных процессов на одном узле NUMA ускорит доступ к памяти, чем если бы данные получались удаленно.

Для улучшения производительности и решения проблем вам необходимо знать на каком ядре процессора или узле NUMA выполняется та или иная программа в настоящее время. В этой инструкции мы рассмотрим несколько способов, позволяющих узнать на каком ядре работает процесс Linux.

Содержание статьи: Способ 1 Способ 2 Способ 3 Способ 4 Выводы Способ 1

Если программа была привязана к определенному ядру при запуске с помощью таких инструментов, как, например, taskset, можно узнать ядро процессора linux, выполнив ту же команду:

taskset -c -p pid

Например, если у интересующего вас процесса pid 5357:

taskset -c -p 5357

pid 5357's current affinity list: 5

Из вывода понятно, что программа привязана к ядру номер 5. Если же вы явно не привязывали программу, можете получить что-то похожее на это:

pid 5357's current affinity list: 0-11

Это значит что процесс может выполняться на одном из ядер от 0 до 11. В этом случае использование taskset не показательно для определения текущего ядра, поэтому рассмотрим другие методы. Способ 2

Утилита ps может показать ядро для каждого процесса и нити в колонке PSR:

ps -o pid,psr,comm -p pid

PID PSR COMMAND 5357 10 prog

Из вывода ясно, что процесс с PID 5357 с названием prog сейчас выполняется на десятом ядре. Если процесс не закреплен, колонка PSR покажет ядро, на котором планировщик linux собирается выполнять процесс. Так вы можете узнать, ядро на котором работает поток linux для любого процесса. Способ 3

Команда top тоже может показать какое ядро получил процесс. Сначала запустите top с опцией -p. Затем нажмите кнопку f и добавьте поле Last Used CPU с помощью пробела. Этот пункт будет во второй колонке списка, а после добавления появится последним. Теперь номер ядра появится в колонке P или PSR:

top -p 5357



По сравнению с ps, у top есть преимущество - можно наблюдать за изменением используемых ядер в реальном времени. Способ 4

Еще можно узнать на каком ядре работает процесс linux в реальном времени с помощью утилиты htop. Запустите htop, нажмите кнопку F2, перейдите в раздел Columns, найдите пункт PROCESSOR в меню Available Columns и добавьте его.

Текущее ядро процессора появится в колонке CPU:



Заметьте что в отличие от других программ таких как ps и top, htop начинает нумеровать ядра с единицы. Выводы

Теперь вы знаете как узнать ядро, на котором работает поток linux. Оказывается, это совсем несложно и может очень сильно помочь при оптимизации. Если у вас остались вопросы, спрашивайте в комментариях!

Источник перевода: http://ask.xmodulo.com/cpu-core-process-is-running.html

Комментарии


Дистанционная компьтерная помощь, удаленная компьютерная помощь онлайн.

Популярные сообщения из этого блога

Лучшие плагины для OBS Studio

Open Broadcast Software или OBS - это свободное программное обеспечение с открытым исходным кодом для стриминга аудио и видео данных в сеть интернет. Программа полностью кроссплатформенная и может работать в Windows, Linux или MacOS. Это отличная альтернатива для таких программ, как Wirecast и XSplit. OBS использует для вещания стандартный протокол обмена сообщениями в реальном времени, а поэтому может транслировать данные в любой сервис, поддерживающий это, например, Yotube. Несмотря на широкие возможности OBS, программа поддерживает еще и множество плагинов. В этой статье мы рассмотрим лучшие плагины для OBS Studio, которые вы можете использовать. Содержание статьи: Лучшие плагины OBS Studio 1. Browser Source Plugin 2. Video Source Plugin 3. Simple Scene Switcher 4. DirectShow Audio Source 5. CLR Browser Source 6. OBS Remote 7. AMD Advanced Media Framework Encoder 8. Text Source Plugin Выводы Лучшие плагины OBS Studio Чтобы найти плагины OBS Studio для Video пользователям пр…

Лучшие аналоги Paint для Linux

Когда я работал в Windows, я часто использовал стандартную программу редактора изображений Windows - Paint. Не всегда нужен очень и многофункциональный инструмент вроде Photoshop или Gimp. Иногда, чтобы подправить ту или иную картинку, дорисовать на ней несколько фигур или вставить текст достаточно простого, легкого в освоении графического редактора вроде Paint. В Linux таких программ довольно много. В этой инструкции мы рассмотрим лучшие аналоги Paint для Linux. В этот список не будут включены такие программы, как Gimp и Krita, ведь это полнофункциональные графические редакторы, векторные редакторы, такие как Inkscape мы тоже рассматривать не будем. А теперь перейдем к списку. Содержание статьи: KolourPaint MyPaint Gnome Paint XPaint Pinta mtPaint GPaint Rassam-paint Выводы KolourPaint На первом месте в списке аналогов Piant для Linux будет KoloutPaint. Это стандартный графический редактор для окружения рабочего стола KDE. Он поддерживает множество форматов изображений PNG, J…

Подключение OneDrive в Linux

OneDrive (Ранее известный как SkyDrive) это популярное облачное хранилище файлов от Майкрософт. Сейчас OneDrive бесплатно предоставляет 7 гигабайт пространства новым пользователям. Как вы знаете OneDrive хорошо интегрирован с другими продуктами компании  Microsoft. В OneDrive Также есть официальный клиент который автоматически загружает ваши видео и фотографии с камеры в облако. Но к сожалению этот клиент недоступен для операционных систем семейства Linux. Но не все так плохо. Сообщество открытого программного обеспечения уже нашло решение. Это opedrive-d от Boilermaker. Запустившись как демон программа автоматически синхронизирует локальную папку с облаком OneDrive. Содержание статьи: Установка Onedrive-d в Linux Настройка Синхронизация локальной папки с OneDrive Установка Onedrive-d в Linux Несмотря на то что onedrive-d разрабатывается для Ubuntu/Debian, CentOs/Fedora/RHEL поддерживается тоже хорошо. Для установки достаточно набрать несколько команд: $ git clone https://gith…