LINUX.ORG.RU

Запустить приложение на одном ядре

 


0

1

Как запустить приложение на одном выделеном ядре, чтобы у системы не было к нему доступа. Например, имеем 4 ядра, нужно чтобы линукс юзал 3, а приложение одно. Желательно, чтобы приложение имело выделеную память, чтобы не было нехватки ресурсов.

Куда копать? cgroups?

★★★

Ответ на: комментарий от aidaho

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

AUX ★★★
() автор топика

изучить cgroups в нем кажись все твои пожелания внедрены..

pfg ★★★★★
()
Ответ на: комментарий от AUX

Очень врядли, что подвисает она из-за миграции планировщиком.
Ей достаточно выдать высокие cpu и io шары, а по ядрам пусть прыгает, как планировщик там решит.

Если речь идёт про микролаги, когда CPU загружен чем-то ещё, то cpu шарами cgroups это не решается, во всяком случае у меня не получилось.

Тогда возможно действительно нужно смотреть в сторону cgroups cpuset.

aidaho ★★★★★
()
Ответ на: комментарий от AUX

Как пример конфигурации: cgroups, systemd и распределение процессора.

Сделать группу anyprocess и дать ей

group anyprocess {
  cpu {
      cpu.shares="1";
  }
  blkio {
      blkio.weight="1";
  }
}


Сделать группу veryimportantprocess типа

group veryimportantprocess {
  cpu {
      cpu.shares="999";
  }
  blkio {
      blkio.weight="999";
  }
}


И дальше запихнуть в anyprocess вообще всё, а в veryimportantprocess только нужное ПО.

aidaho ★★★★★
()
Ответ на: комментарий от AUX

В том же посте по ссылке есть, например, такое решение:

Дальше cgrulesengd читает на старте /etc/cgrules.conf
Он с правами рута будет распихивать процессы по группам.

aidaho ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.