The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз Proxmox VE 8.0, дистрибутива для организации работы виртуальных серверов , opennews (??), 23-Июн-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


65. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от Минона (ok), 23-Июн-23, 23:00 
>> Надеюсь они починили убивание виртуалок оом-киллером.
> надеюсь теперь он убивает еще и сторадж.

О! А этот кейс я не тестил.

> (в общем-то - типичная история васянских ceph)

У них какой-то кастомный цеф?

Ответить | Правка | Наверх | Cообщить модератору

66. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от пох. (?), 23-Июн-23, 23:13 
>> (в общем-то - типичная история васянских ceph)
> У них какой-то кастомный цеф?

у них он самонастраивающийся по каким-то их странным лекалам - весьма далеким от рекомендуемых самим ceph.

Но прибить mds оом-киллером - совершенно норм и для самодельных кластеров в принципе. Главная же прелесть - что никто на свете не знает как такую ситуацию детектировать и чинить.

Ответить | Правка | Наверх | Cообщить модератору

69. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от Аноним (69), 23-Июн-23, 23:29 
Про странные лекала и рекомендации самого ceph это конечно сильно.
Только и в той и другой команде разработчиков участвуют одни и те же люди.
Ответить | Правка | Наверх | Cообщить модератору

70. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от пох. (?), 23-Июн-23, 23:36 
а эти люди - они сейчас с вами в одной комнате?

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

Ответить | Правка | Наверх | Cообщить модератору

79. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от U202204161753 (?), 24-Июн-23, 15:40 
(
   Х. с ESX , на врямя ...
)

Я не понял: OOM нельзя отключить штатно отключить?

В Докере он свой?

Короче: мне надо отключить оба.

Если нельзя штатно, то в исходных кодах ядра легко найти, что закоментировать?

Спасибо!

Ответить | Правка | К родителю #66 | Наверх | Cообщить модератору

91. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от 1 (??), 26-Июн-23, 09:50 
Отправишь киллера на пенсию, система будет падать в паник. Все же сейчас пишут приложения как ? "А захвачу-ка я себе памяти сразу 16Тб, ядро разберётся". Тут киллер работает "санитаром леса".

P.S. Как же он меня бесит этот oom-killer. Он ука всегда убивает самые важные приложения ... Веб сервер, ну или базу данных ... Сам себя бы прибил :-(

Ответить | Правка | Наверх | Cообщить модератору

94. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от U202204161753 (?), 26-Июн-23, 10:46 
> Отправишь киллера на пенсию, система будет падать в паник.

  А SWAP ?

Или если он включен, то и OOM killer не срабатывает?

Так как отключить?
Будет ли запрашивать 16 терабайт проверю на практике

> самые нужные

Вот именно: вредная идея в принципе этот самый killer

Ответить | Правка | Наверх | Cообщить модератору

96. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +2 +/
Сообщение от Аноним (96), 26-Июн-23, 14:36 
> Вот именно: вредная идея в принципе этот самый killer

А это не идея. Это просто пережиток UNIX-ахитектуры, её самая мрачная часть: системный вызов fork

Даже не буду вдаваться в детали, для чего это было изначально, но сейчас это одна из замен IPC в сочетании с UNIX pipes. Материнский процесс порождает дочерние ради вопросов многозадачности и обмена данными. Проблема в том, что вся память материнского процесса копируется в дочерние. И там по идее применяется COW для оперативки, чтобы не занимать слишком много места. Предварительно объявляется pipe для обмена данными.

То есть если материнский процесс запустился и запросил 16Гб оперативной памяти, то _потенциально_ по столько же захватят детки. В этой ситуации, когда весь юзерспейс так работает нет никакой возможности предсказать сколько реально приложению нужно оперативной памяти. Вот ядро и не пытается. Ядро всегда утвердительно отвечает на запросы выдачи RAM, а когда вся память кончится то OOM Killer без спросу прибьёт тот процесс, который плохо лежит.

Вы не единственный человек, который посчитал, что это плохая практика. Например, разработчики операционной системы VMS посчитали, что fork не безопасен (бездумное копирование данных, потенциально с ошибками) и порождает проблемы. Поэтому было принято решение:
1. Не делать системный вызов fork
2. Отказать приложению, если оперативной памяти вместе с виртуальной не достаточно. Приложение получит исключение (обработает или покрашится), а вновь запускаемые приложения вообще не возможно запустить в состоянии OOM.
3. Для решения задач IPC предложить IPC
4. Для решения задач многопоточности предложить API для потоков/тредов, а не плодить клоны процессов
5. Для запуска дочерних процессов предложить отдельное API, которое их запускает, а не копирует с родителя.

Ну то есть pthreads-то есть, но он появился сильно позже (90-е) чем fork (70-е), и вы можете писать приложение не форкаясь, но вот только если вы посмотрите на UNIX-юзерспейс, вы осознаете, что Init, включая его молодежные и популярные версии на самом деле считают все процессы в ОС форком первого процесса, процесса init. Значит чтобы это победить нужно еще и предоставить некоторую объектную модель работы с процессами, которая живет отдельно, а не иерархично копируется.

В итоге у противников архитектуры, которая предполагает наличие fork получилось так, что создание процесса стало трудоёмкой по времени задачей, а наличие богатого IPC стало обязательным в юзерспейсе. Зато потоки наоборот стали простыми и дешевыми. Но да, операционная система построенная на этих принципах не имеет OOM и не нуждается в нем.

Сама по себе оригинальная VMS мертва, но её архитектуру наследуют VMS-подобные, если можно так сказать, ОС, одной из которых является Windows NT (не та которые 9к). При разработке WSL1 Windows обзавелся очередной реализацией fork в рамках обновленных компонентов POSIX-совместимости. Они даже писали публикации с просьбами избавиться от него в UNIX-like, потому что он привносит больше проблем, чем что-то там решает. Вроде этой: https://www.microsoft.com/en-us/research/uploads/prod/2019/0...
А потом плюнули и пихнули WSL2 в виртуалку. Пусть сами играют в свои fork-exec, OOM Killer и прочие пережитки прошлого, под управлением гипервизора с лимитом на ресурсы RAM.


Ответить | Правка | Наверх | Cообщить модератору

100. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от U202204161753 (?), 26-Июн-23, 15:14 
OpenVMS я и сам недавно здесь ( или рядом) упоминал.

Но меня заподозрили в использование перфокарт -)

(
   Хотя: да, не мною пробитые, штук пятьдесят у меня где-то лежат.

   На них план лекций, кстати, удобно писать.  ( видел в деле)
)

Ответить | Правка | Наверх | Cообщить модератору

103. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от Минона (ok), 26-Июн-23, 15:20 
> Но да, операционная система построенная на этих принципах не имеет OOM
> и не нуждается в нем.
> Сама по себе оригинальная VMS мертва, но её архитектуру наследуют VMS-подобные, если
> можно так сказать, ОС, одной из которых является Windows NT

Ну... OpenVMS вполне себе жива.
А в Винде легко можно получить ООМ.

Ответить | Правка | К родителю #96 | Наверх | Cообщить модератору

106. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от U202204161753 (?), 26-Июн-23, 16:42 
> Винде легко можно получить ООМ

Штатно - наверное.
Я просто спец. комбайн Automate применял.

Но это не "дико непосредственный" OOM killer , а сверх. "навороченное" и надёжное ПО.

С _предсказуемо_ надёжным результатом.

Ответить | Правка | Наверх | Cообщить модератору

109. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от 1 (??), 26-Июн-23, 17:31 
>> Вот именно: вредная идея в принципе этот самый killer
> А это не идея. Это просто пережиток UNIX-ахитектуры, её самая мрачная часть: системный вызов fork

Внимание вопрос ! А почему у самого близкого к UNIX-архитектуре FreeBSD этой гадости нет ?

Ответить | Правка | К родителю #96 | Наверх | Cообщить модератору

110. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от Минона (ok), 26-Июн-23, 21:55 
>>> Вот именно: вредная идея в принципе этот самый killer
>> А это не идея. Это просто пережиток UNIX-ахитектуры, её самая мрачная часть: системный вызов fork
> Внимание вопрос ! А почему у самого близкого к UNIX-архитектуре FreeBSD этой
> гадости нет ?

Чего нет?
https://man.freebsd.org/fork
https://klarasystems.com/articles/exploring-swap-on-freebsd/

Ответить | Правка | Наверх | Cообщить модератору

111. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от 1 (??), 27-Июн-23, 16:08 
Нормально так ... я про oom-killer, он про fork.
Понятно что fork дублирует полностью процесс, так не надо сначала памяти хапать, а потом форкаться.
Ответить | Правка | Наверх | Cообщить модератору

113. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от Минона (ok), 28-Июн-23, 13:41 
> Нормально так ... я про oom-killer, он про fork.

Вторая ссылка это статья описывающая работу swap в FreeBSD, там же написано про oom-killer и как от него защититься. (гораздо проще чем это сделано в Linux).

Ответить | Правка | Наверх | Cообщить модератору

97. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от Минона (ok), 26-Июн-23, 14:48 
>   А SWAP ?
> Или если он включен, то и OOM killer не срабатывает?

Срабатывает, но позже, когда своп кончится.

> Так как отключить?

Зачем? С ним веселее =)

>  Вот именно: вредная идея в принципе этот самый killer

В принципе нет, для десктопа вещь полезная.

Ответить | Правка | К родителю #94 | Наверх | Cообщить модератору

99. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от U202204161753 (?), 26-Июн-23, 15:07 
> С ним ( OOM Killer) веселее =)

Только, если не-desktop, то как в анекдоте:

-- А есть ли у вас что-нибудь повеселее?

-- Недавно завезли весёленький ситчик. Обхохочетесь

(
  Пойду сдаваться ИИ -) Может, он знает -)
)

Ответить | Правка | Наверх | Cообщить модератору

101. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от Минона (ok), 26-Июн-23, 15:15 
>> С ним ( OOM Killer) веселее =)
>  Только, если не-desktop, то как в анекдоте:
> -- А есть ли у вас что-нибудь повеселее?
> -- Недавно завезли весёленький ситчик. Обхохочетесь
> (
>   Пойду сдаваться ИИ -) Может, он знает -)
> )

Хотя... он и на сервере полезен, для того чтобы зайти на него по ssh и посмотреть почему оом-киллер приходил. =)

Ответить | Правка | Наверх | Cообщить модератору

102. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от U202204161753 (?), 26-Июн-23, 15:18 
Раз так 200 или триста...
Ответить | Правка | Наверх | Cообщить модератору

104. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от Минона (ok), 26-Июн-23, 15:24 
> Раз так 200 или триста...

А без оом-киллера при оом у тебя сервер встанет раком так что ты даже в консоль не зайдёшь - придётся reset нажимать.

Ответить | Правка | Наверх | Cообщить модератору

107. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от U202204161753 (?), 26-Июн-23, 16:45 
>  без оом-киллера при оом у тебя сервер встанет раком так что ты даже в консоль не зайдёшь - придётся reset нажимать

Охотно верю...

Это "звёзд. " т.е. зв. коллапс какой-то... Ж-(

Ответить | Правка | Наверх | Cообщить модератору

105. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от Аноним (96), 26-Июн-23, 15:33 
>  А SWAP ?

А вы почитайте
https://access.redhat.com/solutions/103833

SWAP в Linux - это чудовище. Его реализация даже в современном ядре такова, что затюнить его под свою задачу - вопрос в большей степени астрологический, нежели технический. И виноват во всем именно страничный кэш.
Если вы укажете слишком высокую цифру у вас в swap будут попадать активные буферы процессов, а если слишком маленькие, то почти ничего.

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

Отдельно нужно сказать про страничный кэш, который оно будет активно отбирать. Вы же знаете да, что ядро Linux имеет поддержку единственной верной файловой системы ext4, а остальные там сильно сбоку. Например, если RHEL предоставляет по умолчанию XFS, поэтому делает форк ядра в том числе, чтобы страничный кэш учитывал специфику XFS. А если у вас ZFS, то у вас вообще будет существовать как бы 2 разных страничных кэша. А теперь попробуйте угадать резервирование (в гуманитарном смысле) RAM под этот зоопарк на сервере виртуализации. Если у вас 1ТБ RAM или что-то близкое к этому, то заложить минимум 80 ГБ было бы не плохо, но нужно понимать сколько локального диска. С учетом того как там всё форкается налево и направо было бы неплохо угадать и этот потенциальный перерасход.

> Так как отключить?

Проставить значение vm.oom-kill = 0 в sysctl или поиграться с vm.overcommit_memory
Но если вы так сделаете, то у в условии нехватки памяти будет падать не одна виртуалка, а целый хост (привет VMware, она так любит делать). В реальности вам нужно производить скоринг процессов, чтобы контролировать, что вам будут ронять с большей вероятностью, а что с меньшей. Но сделать так чтобы не падало ничего не выйдет.

Поймите, Linux постоянно производит оверкоммитмент ресурсов RAM, хотите вы этого или нет. Максимум что вы можете сделать:
1. Создать шаблоны ресурсов виртуальных машин
2. Размещать виртуальные машины одного типа на одной группе серверов, второго типа на второй, итд. Ради предсказуемости нагрузки и объемов.
3. Рассчитывать ресурсы железа так, чтобы не срабатывал OOM Killer.
4. Выделить приоритеты в /proc для важных процессов

Если вы хотите автоматизацию таких вещей избавьтесь от Linux, ну или хотя бы избавьтесь от KVM, перейдите на Xen (Citrix Hypervisor), где ваши виртуальные машины не считаются за обычные процессы ОС, хотя и там вам от него не избавиться. И опять, даже в случае с Xen всё в конечном итоге зависит от сборки дистрибутива/юзерспейса и как там присваиваются приоритеты и распределяются ресурсы.

Если же вы хотите, чтобы у вас виртуалки свапились, а не падали, когда вы перерасходуете RAM, то вам нужен Hyper-V. Но не могу понять зачем это может потребоваться. Засвапилась у вас виртуалка или упала - всё одно. Оно больше не работает нормально.

Ответить | Правка | К родителю #94 | Наверх | Cообщить модератору

108. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от U202204161753 (?), 26-Июн-23, 17:03 
Спасибо за информацию!
Буду ставить экспрерименты.

К сожалению, гипервизор я не контролирую.  Хотя, пардон: есть выбор их двух вариантов...

Буду думать...

P.S.

> Если же вы хотите, чтобы у вас виртуалки свапились, а не падали, когда вы перерасходуете RAM, то вам нужен Hyper-V.

Да - подтверждаю.
Единственное  - свопинг будет внутри VM. За одним редким исключением.

  Hyper-V  - это, кстати, решение.
И решение на раньше продавали.

> Но не могу понять зачем это может потребоваться. Засвапилась у вас виртуалка или упала - всё одно. Оно больше не работает нормально.

  Не факт: иногда в своп навсегда уходит всякое непонятно что.

А реально нужные страницы - остаются в RAM.

  Но, в общем случае, да Вы правы.

Впрочем, в случае динамической (?) памяти, есть шансы, что она перераспределиться среди высокоприоритетных VM засчёт низкоприлритетных.


P.S.

А собственно OOM killer хочу "на пробу" отключить "внутри VM".

Ибо вижу сработки, как раз, там.

Ответить | Правка | Наверх | Cообщить модератору

112. "Релиз Proxmox VE 8.0, дистрибутива для организации работы ви..."  +/
Сообщение от совсем не анонимemail (?), 27-Июн-23, 22:16 
score для киллера можно настраивать и передавать в параметрах любому приложению при запуске
Ответить | Правка | К родителю #91 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру