1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openeuler-wisdom-advisor

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
README.md 3.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 16:42 62b550b

Функциональное описание

Wisdom — это интеллектуальная система настройки, предназначенная для использования планирования или других методов для повышения производительности приложений. Wisdom в настоящее время поддерживает три стратегии:

  1. Планирование сродства потоков по выбору пользователя: анализ SCHED_GROUP, чтобы получить сродство потоков.
  2. Обнаружение сродства потоков: отслеживание syscall futex для получения сродства потоков.
  3. Группировка потоков: определение и привязка потоков к сетевым и IO-процессорам на основе пользовательских настроек.

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

В настоящее время Wisdom поддерживает архитектуры arm64 и x86 под Linux.

Компиляция

mkdir -p $GOPATH/src/gitee.com
cd $GOPATH/src/gitee.com
git clone <wisdom-advisor project>
cd wisdom-advisor
export GO111MODULE=on
go mod vendor
make

Путь к двоичному исполняемому файлу после компиляции: $GOPATH/pkg/.

Запустите тестовые примеры:

make check

Установка

make install

Использование

Wisdomd — это процесс-демон, а Wisdom — клиент. Чтобы получить справочную информацию:

wisdomd -h
wisdom -h

Настройте SCHED_GROUP в переменных среды процесса, Wisdomd получит информацию о группе из /proc/pid/envrion, например, SCHED_GROUP=<group_name>=thread_name1,t. Wisdom будет использовать конфигурацию SCHED_GROUP для привязки ядер.

wisdom usersetaffinity 

Wisdom будет отслеживать отношения блокировки futex с помощью ptrace, чтобы определить, какие потоки имеют сродство, и связать эти потоки с одним и тем же NUMA.

wisdom threadsaffinity --task sem 

При использовании группировки потоков необходимо указать список IO cpu и список сетевых cpu.

wisdom threadsgrouping --task test --IO 1-2,5,6 --net 3-4

Когда используются стратегии автоматического обнаружения и группировки потоков, Wisdomd выполнит некоторые сканирования. Эти операции сканирования можно отключить или перезапустить.

wisdom scan stop

Другие параметры можно найти в справочной информации.

Лицензия

Лицензия Wisdom основана на лицензии MPL v2.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/openeuler-wisdom-advisor.git
git@api.gitlife.ru:oschina-mirror/openeuler-wisdom-advisor.git
oschina-mirror
openeuler-wisdom-advisor
openeuler-wisdom-advisor
master