Size: a a a

2019 September 02

K

Konstantin in DevOps Moscow
Gleb Mekhrenin
/sys/fs/cgroup/memory/memory.usage_in_bytes
/sys/fs/cgroup/memory/memory.limit_in_bytes
и тп, а дальше типа дока, исходники и тд ю
это вот очень норм ответ, когда неизвестно, какую проблему пытаются решить.
источник

J

Jenny in DevOps Moscow
Konstantin
это вот очень норм ответ, когда неизвестно, какую проблему пытаются решить.
задача подсчитать доступную память в сигруппе, я это написала вот прямо второй строчкой
источник

K

Konstantin in DevOps Moscow
Jenny
задача подсчитать доступную память в сигруппе, я это написала вот прямо второй строчкой
а я не про задачу - я про проблему, которую надо решить. про задачу Gleb верно написал.
источник

J

Jenny in DevOps Moscow
Konstantin
а я не про задачу - я про проблему, которую надо решить. про задачу Gleb верно написал.
Глебушка, при всем уважении, написал не очь полезные вещи
источник

K

Konstantin in DevOps Moscow
если это очередная война с OOM killer, то там всё не настолько тривиально. и сильно зависит от ядра, патчей и userland.
источник

K

Konstantin in DevOps Moscow
Jenny
Глебушка, при всем уважении, написал не очь полезные вещи
дык он и не телепат, насколько я в курсе.
источник

SP

Sergey Pechenko in DevOps Moscow
Jenny
задача подсчитать доступную память в сигруппе, я это написала вот прямо второй строчкой
Что значит "доступную"? Условно - у тебя есть вот это: https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git/tree/Documentation/admin-guide/cgroup-v2.rst#n1050, когда оно больше, чем вот это (https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git/tree/Documentation/admin-guide/cgroup-v2.rst#n1099), включаются всякие "эй, кэш, отдай память назад, и вообще все, отдайте, чего брали", а если счётчик залез за вот это (https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git/tree/Documentation/admin-guide/cgroup-v2.rst#n1111), то приходит злой волшебник OOM.
источник

SP

Sergey Pechenko in DevOps Moscow
Ну и если хочется прям разбивки вкусной - есть https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git/tree/Documentation/admin-guide/cgroup-v2.rst#n1198.
источник

SP

Sergey Pechenko in DevOps Moscow
А если нужно отслеживать прям микробёрсты - есть вот что:  https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git/tree/Documentation/accounting/psi.rst.
Собственно, специально для этого запилено O_o
источник

K

Konstantin in DevOps Moscow
Sergey Pechenko
Что значит "доступную"? Условно - у тебя есть вот это: https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git/tree/Documentation/admin-guide/cgroup-v2.rst#n1050, когда оно больше, чем вот это (https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git/tree/Documentation/admin-guide/cgroup-v2.rst#n1099), включаются всякие "эй, кэш, отдай память назад, и вообще все, отдайте, чего брали", а если счётчик залез за вот это (https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git/tree/Documentation/admin-guide/cgroup-v2.rst#n1111), то приходит злой волшебник OOM.
там, скорее, надо про oom_score курить. просто чтоб понять, как оно складывается.
источник

GM

Gleb Mekhrenin in DevOps Moscow
Sergey Pechenko
А если нужно отслеживать прям микробёрсты - есть вот что:  https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git/tree/Documentation/accounting/psi.rst.
Собственно, специально для этого запилено O_o
красиво, спасибо за все ссылки
источник

J

Jenny in DevOps Moscow
Sergey Pechenko
Что значит "доступную"? Условно - у тебя есть вот это: https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git/tree/Documentation/admin-guide/cgroup-v2.rst#n1050, когда оно больше, чем вот это (https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git/tree/Documentation/admin-guide/cgroup-v2.rst#n1099), включаются всякие "эй, кэш, отдай память назад, и вообще все, отдайте, чего брали", а если счётчик залез за вот это (https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git/tree/Documentation/admin-guide/cgroup-v2.rst#n1111), то приходит злой волшебник OOM.
доступная = available, то количество памяти, что может быть reclaimed
источник

SP

Sergey Pechenko in DevOps Moscow
Gleb Mekhrenin
красиво, спасибо за все ссылки
Доки по ядру - последний аргумент 😊)) (по крайней мере, пока всё работает по ним)
источник

SP

Sergey Pechenko in DevOps Moscow
Jenny
доступная = available, то количество памяти, что может быть reclaimed
Подохреваю, что тут нужно ручками выбирать из stats
источник

GM

Gleb Mekhrenin in DevOps Moscow
Jenny
доступная = available, то количество памяти, что может быть reclaimed
а вы приложения голенге которые жрут много памяти писали? там как бы негде спросить кто, когда и где тебе отдаст память
источник

GM

Gleb Mekhrenin in DevOps Moscow
ну это просто пример
источник

SP

Sergey Pechenko in DevOps Moscow
Gleb Mekhrenin
а вы приложения голенге которые жрут много памяти писали? там как бы негде спросить кто, когда и где тебе отдаст память
Вроде с любыми языками, где GC встроен, так будет (питон тот же, джава, вот это вот всё)
источник

J

Jenny in DevOps Moscow
Sergey Pechenko
Подохреваю, что тут нужно ручками выбирать из stats
вопрос в том, какие метрики используются для карент мемори
источник

K

Konstantin in DevOps Moscow
вы реально пытаетесь угадать, какую проблему решают? :-)
источник

J

Jenny in DevOps Moscow
не надо ничего придумывать и решать воображаемые проблемы
источник