Re: Поведение процессов [message #25224 is a reply to message #25209] |
Tue, 18 December 2007 05:42   |
vaverin
Messages: 708 Registered: September 2005
|
Senior Member |
|
|
CPUUMITS -- это относительная величина, ее надо рассматривать как вес VE. По CPUUNITS определяется fair share CPU для VE, и VE может рассчитывать, что эту свою fair share она получит всегда, даже на полностью загруженной ноде.
Если на ноде есть свободный ресурс -- то VE может его использовать.
Если же VE свою долю не использует -- этот ресурс будут использовать другие VE.
Примеры: 2 VE c одинаковым весом + VE0, все активно работают
VE0 = VEx = VEy
fair share каждой VE -- 1/3, то есть каждая VE получит треть процессорного времени.
Теперь пусть одна из VE свою задачу выполнила и перестала потреблять CPU. В этом случае остальные VE станут получать по 1/2 CPU.
Теперь вторая VE тоже все сделала и CPU ей тоже больше не нужен -- в этом случае оставшаяся VE сможет юзать все процессорное время.
Однако тут надо отметить следующий момент: В VE0 ранятся системные треды: kjournald, kswapd и другие. Эти треды обеспечивают нормльную работоспособность всей системы -- пишут на диск, память чистят. Если этим процессам не давать CPU для решения этих задач -- встанет вся система: процессы внутри VE будут ждать пока им почистят память, а память чистится медленно потому что kswapd не дают CPU.
Поэтому вес VE0 должен быть в несколько раз выше веса самой крупной VE. Отчасти по этой причине мы не рекомендуем оставлять какие-либо тяжелые процессы в VE0.
Для fair share абсолютная велчина CPUunits не важна, ваджно соотоношение этих величин назначенных для VE.
то есть можно поставить всем по 100 cpuunits, можно по 1000, можно по 10000. главное -- соблюсти требуемую пропорцию между VE.
А абсолютная величина CPUunits может быть полезна в следующем случае: если его поделить на Power of the node (которое как-то пересчитывается из bogomips, то есть как-то зависит от мощности CPU на ноде), пересчитать эту гарантию в мегагерцы и говорить о ней клиентам. Клиенты плохо понимают cpuunits, но всегда интересуются мегагерцами
поэтому owercommit по cpuunits не страшен, разве что Вам гарантию в мегагерцы придется пересчитывать несколько по более "неудобной" формуле -- и что наиболее важно гарантия изменится когда вы поднимите на этой ноде еще одну VE.
С уваженеим,
Василий Аверин
|
|
|