Как поставщик VPS решает который процесс уничтожить?

Много команд имеют опцию, которая просто показывает вывод, как будто команда была выполнена, но на самом деле не делает этого. (Например, rsync - пробный прогон), Ищут их и используют их.

0
задан 6 September 2009 в 17:24
3 ответа

Процессы, использующие слишком много RAM в соответствии с Linux, обычно уничтожаются ядром oom-killer процесс. OOM, обозначающий "Из Памяти". Можно прочитать описание процесса принятия решений, который оно делает здесь и как влиять, это - поведение здесь.

6
ответ дан 4 December 2019 в 11:08
  • 1
    То поведение, влияющее на OOM, является довольно новым. Я сомневаюсь, что поставщики VPS выполняют новые ядра –  Vinko Vrsalovic 6 September 2009 в 22:07

Обычно с жесткими пределами как этот это - процесс, который превышает предел, который уничтожается.

1
ответ дан 4 December 2019 в 11:08

Я никогда не использовал OpenVZ или Virtuozzo, но это - то, как я понимаю это:

RAM Burstable является "функцией" Virtuozzo и его дубликата с открытым исходным кодом OpenVZ. На этих полях отдельные VPSes на самом деле не имеют своего собственного выполнения ядер. Под этими технологиями каждый VPS имеет два предела в ядре хоста, privvmpages и oomguarpages.

Privvmpages установлен на общую сумму burstable + гарантируемый RAM, и процессам в VPS позволяют выделить до того объема памяти. Когда хост испытает нехватку RAM, это начнет уничтожать процессы через все VPS, которые выделили больше, чем oomgaurdpages ценность RAM. Запоминание, что все VPSs на хосте имеют все их процессы, работающие в том же ядре, делает это немного легче понять.

У меня нет реальной подсказки о том, как уничтожитель OpenVZ/Virtuozzo OOM делает, это - решения о который процессы уничтожить. Если бы я разрабатывал его, то я, вероятно, выбрал бы VPS с большинством страниц, больше, чем oomgaurpages, и затем выбрал бы процесс в этом VPS на основе счета, вычисленного с возраста процесса и размера, промывки, повториться. Хотя как я сказал, я не знаю, как они действительно делают это.

Важно отметить, что в нормальной системе Linux процесс может malloc больше, чем общая сумма подкачки + RAM, которая существует без проблемы. Именно, когда Вы идете для использования его, Вы останавливаетесь. Под OpenVZ/Virtuozzo перестанет работать malloc. Это на самом деле довольно распространено в вещах, которые обычно имели бы много повторных выделений/освобождения, когда процесс хочет справиться, это - сама память. Диспетчер памяти особого назначения в таком процессе может иметь намного большую производительность.

1
ответ дан 4 December 2019 в 11:08
  • 1
    Я знаю о чрезмерных обязательствах Linux, и я ненавижу его. Но просто хочу сказать, что я думаю, разработал ли я его, я определенно добавил бы явные пользовательские подсказки или как stay-alive-if-possible или как специальный атрибут уничтожать-приоритета. –  Lothar 21 September 2009 в 08:53
  • 2
    Да, это было бы довольно полезным, хорошим вызовом. –  mikegrb 23 September 2009 в 15:23

Теги

Похожие вопросы