OpenVZ Forum


Home » International » Russian » Выделение ресурсов с Hyper Threading
Выделение ресурсов с Hyper Threading [message #40068] Tue, 13 July 2010 00:57 Go to next message
esetnod is currently offline  esetnod
Messages: 27
Registered: July 2010
Junior Member
From: *kuzbass.net
Здравствуйте.
Хотел бы уточнить по поводу работы с Hyper Threading.
К сожалению, прочитать целиком спецификацию сей функции intel нет времени, но как я понял из кратенького how-to, физическое ядро делится на 2 виртуальных.
Возникший вопрос:
Если одной VE выделено, скажем, 1 ядро ( а в системе их 8 ( с учетом HT)), и 1000 Мгц ресурсов, то эта VE на самом деле получит только 500 Мгц мощности, т.к. одно виртуальное ядро имеет половину мощности физического?

Заранее благодарен.
Re: Выделение ресурсов с Hyper Threading [message #40072 is a reply to message #40068] Tue, 13 July 2010 09:54 Go to previous messageGo to next message
sHaggY_caT is currently offline  sHaggY_caT
Messages: 144
Registered: August 2008
Location: Moscow, Russian Federatio...
Senior Member

From: *shaggy-cat.ru
В зависимости от того, сколько Вы поставите cpulimit: если не поставите, то все ядро (в зависимости от конкурентных запросов к нему от других VE, и параметров cpuunits других VE), если поставите cpulimit 50, то получит пол-ядра.

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


IT-outsource for UNIX servers,
http://ha-systems.ru
Re: Выделение ресурсов с Hyper Threading [message #40077 is a reply to message #40068] Wed, 14 July 2010 03:43 Go to previous messageGo to next message
esetnod is currently offline  esetnod
Messages: 27
Registered: July 2010
Junior Member
From: *kuzbass.net
Благордарю за ответ, но некоторые неясности все же остались.
Постараюсь описать подробнее.
[root@CentOS-55-32-minimal conf]# cat /proc/cpuinfo | grep "cpu MHz"
cpu MHz         : 3341.719
cpu MHz         : 3341.719
cpu MHz         : 3341.719
cpu MHz         : 3341.719
cpu MHz         : 3341.719
cpu MHz         : 3341.719
cpu MHz         : 3341.719
cpu MHz         : 3341.719

Итого система дуает что в ней 8 процессоров по 3341.719 Мгц. Однако на самом деле ядра всего 4, каждое 3341.719. Т.е. чисто теоретически одновременно все 8 ядер могут дать по 3341.719/2 = 1667.35 Мгц.

Часть конфигурации VE:
CPULIMIT="45"
CPUS="1"


Т.е. в данном случае VE получает не более 45% от 1 ядра ( теоретически 1503.77 Мгц), однако, как я уже описал выше, одно виртуальное ядро физически не может дать системе больше чем 1667.35 Мгц ( хотя представляется системе как 3341.719 Мгц), т.е. полчается что реальной мощности VE получит только 1667.35/2 = 833.67 Мгц?
Re: Выделение ресурсов с Hyper Threading [message #40207 is a reply to message #40077] Sat, 31 July 2010 10:59 Go to previous messageGo to next message
sHaggY_caT is currently offline  sHaggY_caT
Messages: 144
Registered: August 2008
Location: Moscow, Russian Federatio...
Senior Member

From: *shaggy-cat.ru
Потоки учавствуют в общем подсчете (то есть, двухядерной, двухпоточной, на каждое ядро системе соотвествует 400 CPULIMIT), но они "виртуальные", так как процессы, раскиданные на разные потоки одного ядра, занять его все сразу не смогут.

многопоточное ядро перед однопоточным дает только то преимущество, что более эффективно распралелит не задачи, которые нельзя считать в одном потоке (например, httpd в нескольких или даже одном контейнере).

Что бы дать возможность контейнеру использовать все ядро, в озвученной выше конфигруации, нужно, на сколько я понимаю, ставить cpulimit=200 CPUS=2


IT-outsource for UNIX servers,
http://ha-systems.ru
Re: Выделение ресурсов с Hyper Threading [message #40595 is a reply to message #40068] Sat, 04 September 2010 13:03 Go to previous messageGo to next message
esetnod is currently offline  esetnod
Messages: 27
Registered: July 2010
Junior Member
From: *kuzbass.net
Почитал документацию, так и не нашел ответа, не будет ли утечки потоков с 1 виртуального ядра в другое, при условии что по лимитам ve может использовать только 1 системное ядро.

Возможно не понятно описал, попробую подробнее.
Есть 1 физическое ядро, поделено на 2 виртуальных, 2 VE , каждой дано по 1 numcpu и 100% cpulimit.
Как я понимаю, при полной нагрузке на cpu каждой ve, 1 физическое ядро даст по 50% каждой ve`шке, но если одна из ve не будет использовать cpu, а второй будет необходимо подкушать всю мощность, на отдаст ли планировщик всё _физическое_ ядро 1 VE?
Re: Выделение ресурсов с Hyper Threading [message #40596 is a reply to message #40595] Sat, 04 September 2010 13:21 Go to previous message
RXL_ is currently offline  RXL_
Messages: 147
Registered: July 2009
Location: Moscow/Russia
Senior Member
From: *static.corbina.ru
Отдаст одно виртуальное. И не в личное пользование - это общий ресурс. Причем без привязки к конкретному ядру (да и зачем это?).

Ничего плохого в этом нет. Почитайте мой ответ с пол часа назад:
http://forum.openvz.org/index.php?t=msg&goto=40593&# msg_40593


... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Previous Topic: Зависает vzctl create
Next Topic: Проблема в работе OpenVZ. Squid и vmbr0
Goto Forum:
  


Current Time: Tue Aug 14 06:44:41 GMT 2018