
kvaps
25.10.2017
19:06:06
virtio решает проблему обработки системных вызовов, но не решает проблему файлового формата

Сергей
25.10.2017
19:06:28
а какой версии кему был?

kvaps
25.10.2017
19:06:35
хотя я бы не рискнул его в проде использовать

Google

s3rj1k
25.10.2017
19:07:22
а на seepdog вы смотрели?
спашотики + raw и кластер с отказоустойчивостью

Сергей
25.10.2017
19:08:30
кто-то недавно мне говорил про петерянные 60теров на гавкающей овце

kvaps
25.10.2017
19:08:46
а какой версии кему был?
# /usr/bin/kvm --version
QEMU emulator version 2.5.0 (Debian 1:2.5+dfsg-5ubuntu10.16), Copyright (c) 2003-2008 Fabrice Bellard

Vlad
25.10.2017
19:08:57

Сергей
25.10.2017
19:09:00
ну не древний

s3rj1k
25.10.2017
19:09:18

Сергей
25.10.2017
19:09:40
а он не издох еще?

Vlad
25.10.2017
19:09:54

s3rj1k
25.10.2017
19:10:04

Paul
25.10.2017
19:10:21

Сергей
25.10.2017
19:10:28
шипдог
а гластер - это глистфс

Google

Сергей
25.10.2017
19:10:44
мерзость - это мезоссфера
и тп

s3rj1k
25.10.2017
19:10:55

Paul
25.10.2017
19:12:17
как скучно я живу

s3rj1k
25.10.2017
19:12:21

kvaps
25.10.2017
19:19:46
пока в планах тока люстра стояла в экзотической конфигурации с failover'ом :)

s3rj1k
25.10.2017
19:21:23

Сергей
25.10.2017
19:22:08
ну люстра - это мир суперкомпьютеров со своими приколами

kvaps
25.10.2017
19:22:09
я уже попробовал, люстра классная, только отказоустйочивости никакой, нужно все самому допиливать

Сергей
25.10.2017
19:23:05
ну она наследие одного проекта околоакадемиеского из европы

kvaps
25.10.2017
19:23:25
проблема люстры - это еще то что она только центоси работает, благо хоть патченного ядра больше не требует

Oleg
25.10.2017
19:56:29
Ало, гараж. Это чат кубера а не хостинга
Валите в https://t.me/pro_hosting

P.
26.10.2017
07:25:39
Как определить сколько памяти и цпу ставить контейнеру?
Где-то читал что нужно давать нагрузку и смотреть при какой величине перестает справляться

Google

P.
26.10.2017
07:27:56
Для меня это сейчас слишком трудоемкий способ (нет столько времени)

Maksim
26.10.2017
07:28:06
а как определить сколько памяти и цпу кушает приложение?
Как вообще определить производительность приложения?
Либо имперически через агрузочное тестирование
Либо пальцем в небо

P.
26.10.2017
07:29:01
Мне кажется есть какие-то эвристики
Какие-то приложения требуют больше памяти, какие-то больше цпу

Pavel
26.10.2017
07:29:25
O_o

Maksim
26.10.2017
07:29:32
а откуда это известно?

Anton
26.10.2017
07:30:31
ну можно тыкать пальцем в небо, постепенно увеличивая, вместе с нагрузкой =))

Maksim
26.10.2017
07:30:34
Скажу по секрету, все данные по потребляемым ресурсам либо имперические, либо наугад

Anton
26.10.2017
07:30:41
если рестартуется по OOM - значит памяти не хватает

P.
26.10.2017
07:31:01
Я понял

Maksim
26.10.2017
07:31:10
Докер и кубер не убивают процес по ООМ, они его убивают по достижению лимита памяти

Anton
26.10.2017
07:31:56
по превышению cgroup разве не тот же механизм работает?

Maksim
26.10.2017
07:32:02
Нет

P.
26.10.2017
07:32:11
Тогда представим что есть кластер из Н разнородных контейнеров, на которых как-то расставлены лимиты (пальцем в небо)

Maksim
26.10.2017
07:32:27
Ну как бы убивается так же через term 1 и term 9

Google

P.
26.10.2017
07:32:30
Как улучшить лимиты в этом случае?
Не будешь же каждый контейнер в отдельности гонять

Maksim
26.10.2017
07:33:04
только OOM это конретно вычислятор использования памяти роцессорами, и функция ядра, врубающаяся при не хватки виртуальной памяти

Anton
26.10.2017
07:33:47

P.
26.10.2017
07:34:20
Я думаю нужно найти ботлнек
Его под крутить и тд

Maksim
26.10.2017
07:36:29
чет по dmesg это выглядело как oom
OOM = out of memory... так что выглядитеь это может да и должно одинакого. Главное принцип использования
В Случая OOM я слышу OOM Killer ядра, который работает иначе. В кубере идёт cgroup limit (которая на убийство может вызывать теже функции ООП же)

Anton
26.10.2017
07:36:51
cgroups это механим ядра

Maksim
26.10.2017
07:38:04
cgroups это механим ядра
Ага, миханизм лимитов....Которому ни кто не запрещает использовать те же функции на убийство процесса, что раньше были написаны и используются в OOM Killer, который достаёт топор при отсутсвии виртуальой памяти...

Anton
26.10.2017
07:38:31
memory.oom_control
contains a flag (0 or 1) that enables or disables the Out of Memory killer for a cgroup. If enabled (0), tasks that attempt to consume more memory than they are allowed are immediately killed by the OOM killer. The OOM killer is enabled by default in every cgroup using the memory subsystem; to disable it, write 1 to the memory.oom_control file:
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/resource_management_guide/sec-memory

Maksim
26.10.2017
07:38:56
ммм ?

Anton
26.10.2017
07:39:01

Maksim
26.10.2017
07:39:50
оки контейнера вообще нет. Есть Namespace приложения и cgroup лимиты
В норм системе идёт вычесления веса и правильности использования памяти, этим можно управлять, заставляя ООМ не уюивать критически важны, но текущие процессы
В случае контейнера, при достижени лимита памяти он будет перезапущен, и ни как иначе
Норм система, система без виртуализации и контейнеризации

s3rj1k
26.10.2017
07:43:07

Anton
26.10.2017
07:43:51
кубер убивает только в одной ситуации - когда видет что ресурсов вообще не хватает больше на машине, используя свой механизм eviction manager, если были настроены пороги для eviction
https://kubernetes.io/docs/tasks/administer-cluster/out-of-resource/#hard-eviction-thresholds
который нацелен на то чтобы избежать исчерпания ресурсов глобально и запуска oom killer.
покрайней мере я знаю только этот вариант убийства подов самовольно со стороны кубелета.

Google

Maksim
26.10.2017
07:48:36
При Работе OOM_killer В рамках хоста, учитывается множе ство факторов

Anton
26.10.2017
07:50:02
я прост надеялся еще может чего нового узнать смогу, вдруг есть еще кейсы по убийству подов

Maksim
26.10.2017
07:50:02
А именно
Считаем RSS процесса
Добавляем RSS всех дочерних процессов
Если процесс долго живёт, то значение уменьшается
Если у процесса niceness больше 0, то значение увеличивается.
Если есть флаги CAP_SYS_ADMIN или CAP_SYS_RAWIO, результат уменьшается
Смотрится знаечение /proc/<pid>/oom_adj, которое может задавать пользователь, чтобы повышаться сопротивляемость OOM Killer'у. Вроде как это уже deprecated и нужно использовать oomscore_adj.
У бивается лидер
В случае с cgroup убивается по достижению лимита и без вариантов
Кстати делается это именно для того , что бы системный OOM не вышел на тропу войны, и не грохнул slice и docker....со всеми контейнерами на борту, без возможности их рестарта
Это кстати к вопросу об "хорошем тоне, писать лимиты для подов"

Anton
26.10.2017
07:51:56
да, в этом плане очень круто задать requests = limits в resources, получится что твой контейнер имеет guaranteed qos и -998 oom_score_adj =)

Maksim
26.10.2017
07:55:23

Anton
26.10.2017
08:01:04
https://kubernetes.io/docs/tasks/administer-cluster/out-of-resource/#node-oom-behavior
там же minimum reclaim можно настроить для eviction manager
в общем очень хороший механизм, с одной стороны
еще кстати много тут про capacity \ reserved\ allocatable
https://github.com/kubernetes/community/blob/master/contributors/design-proposals/node/node-allocatable.md

Роман
26.10.2017
12:26:08
У меня несколько ip на сервере. Могу я заставить под слушать 0.0.0.0 (hostNetwork: true)?

Anton
26.10.2017
12:26:37
не получается?