Skip to content

Instantly share code, notes, and snippets.

@mag1art
Created November 8, 2023 08:35
Show Gist options
  • Save mag1art/d771c09f103d1a5b826e9d6e8ac89553 to your computer and use it in GitHub Desktop.
Save mag1art/d771c09f103d1a5b826e9d6e8ac89553 to your computer and use it in GitHub Desktop.
OrangePi rk3588 arm64 cpu prioritization

OrangePi rk3588 arm64 cpu prioritization

Чтобы задать приоритет использования определённых ядер процессора через tuned, вам потребуется создать пользовательский профиль и настроить параметры планировщика процессов. Вот шаги, которые помогут это сделать:

  1. Создание пользовательского профиля: Создайте каталог для нового профиля в /etc/tuned/:

    sudo mkdir /etc/tuned/my-optimized-profile
  2. Настройка профиля: Создайте файл конфигурации внутри этого каталога, названный tuned.conf:

    sudo nano /etc/tuned/my-optimized-profile/tuned.conf
  3. Редактирование файла конфигурации: Добавьте следующее содержание в tuned.conf, чтобы настроить планировщик:

    [main]
    include=throughput-performance
    
    [scheduler]
    isolated_cores=4-7
    

    Здесь include=throughput-performance означает, что ваш профиль будет включать в себя настройки из профиля throughput-performance по умолчанию, который оптимизирован для пропускной способности. Параметр isolated_cores указывает tuned изолировать ядра 4-7, что, в зависимости от версии ядра Linux и планировщика, может привести к их предпочтительному использованию для вычислительных задач.

  4. Применение нового профиля: Примените новый профиль, используя команду tuned-adm:

    sudo tuned-adm profile my-optimized-profile

Это даст tuned указание на то, что ядра с номерами 4-7 должны быть изолированы от общего планирования задач и использоваться для определённых задач, которые вы можете назначить вручную (например, через taskset).

Обратите внимание, что в некоторых случаях для корректной работы такой настройки может потребоваться перезагрузка системы. Кроме того, детали реализации могут варьироваться в зависимости от версии tuned и конкретного распределения Linux.

Вопрос: при использовании my-optimized-profile процессы будут использовать другие ядра тоже 0-3 если 4-7 заняты?

Да, когда вы устанавливаете isolated_cores в tuned профиле, вы не запрещаете планировщику использовать эти ядра совсем; скорее, вы указываете, что эти ядра должны быть изолированы от некоторых общих задач. Это означает, что планировщик по-прежнему может использовать ядра 4-7 для некоторых задач, но предпочтение будет отдано другим ядрам, если только не указано иное (например, вы можете явно запустить процесс на изолированных ядрах, используя taskset).

Если ядра 4-7 заняты, и есть другие задачи, требующие вычислительных ресурсов, планировщик может использовать ядра 0-3 для обработки этих задач. Изоляция ядер не означает, что они никогда не будут использоваться другими процессами; это просто снижает частоту их использования планировщиком для общих задач.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment