LINUX.ORG.RU

Процессы сжирают память и вешают систему


0

0

Доброго времени суток!

Есть такая проблема. Есть машинка с 8ю ядрами и 8ю гигами памяти на борту, предназначенная для проведения ресурсоемких вычислений. Своп отключен, так как если задача начинает свопиться, то говорить об эффективности вычислений смысла нет. Итак. Бывают процессы, которые постепенно сжирают всю память. 8 гигов. После этого система начинает подвисать. ПО ssh на нее зайти невозможно (out of memory). Вообщем машина становится полностью недоступной. Пробовал включать oom_killer в ядре, чтобы убивать процессы, которые сжирают всю память. Но при этом убиваются и ряд других процессов, которые пытаются получить хоть какие-то ресурсы. В последний раз в число таких "хороших" процессов попали sshd, crond и ряд подобных. Причем ситуация еще осложняется тем, что может быть запущенно одновременно 8 процессов, которые делят между собой память. В этом случае oom_killer работает вообще не понять как. Чаще всего вообще ничего не далает и система продолжает висеть. Какие есть пути решения? Может быть можно как-то ограничивать память для процессов? Или есть какие-то более правильные решения?

>если задача начинает свопиться, то говорить об эффективности вычислений смысла нет

А если вообще вся система становится недоступной - это эффективно??

Я думаю, следует все-же выделить swap == size_of_ram и настраивать ядро, чтобы свопилось только в случае, если совсем некуда расти, например, /proc/sys/vm/swappiness . oom_killer - не выход, управлять с достаточной точностью им нельзя. А вот о собственном демоне, который бы смотрел список процессов и, в случае выхода за определенные границы, убивал-бы самые прожорливые - стоит подумать.

TuxR ★★★★
()
Ответ на: комментарий от TuxR

Ещё один человек, который никогда не касался больших вычислений и тяжёлых кривых приложений (як текущая Java).

В большинстве случаев SWAP - это смерть винту и вашей работе.

tempuser001
()

Запускать жручие процессы с ulimit.

А swap лучше включить назад - в него откачаются страницы к которым никто давно не обращался, так что вашим вычислениям будет доступно больше оперативки.

Manhunt ★★★★★
()
Ответ на: комментарий от tempuser001

> В большинстве случаев SWAP - это смерть винту и вашей работе.

Честно говоря, не очень умное высказывание.

Deleted
()
Ответ на: комментарий от Deleted

Дмитрий, можно было развести демагогию по поводу когда надо когда не надо, но в последнее время, когда RAM is dirt chip - использовать SWAP как-то рука не поднимается. Кроме этого, я слишком много раз в жизни видел фактически мёртвые машины, на которых одно из приложений сожрало памяти>Physical RAM, при этом ядро отчаянно свопило, свопило и свопило.

В 99% случаем проблема решалась только жёстким reboot'ом.

tempuser001
()
Ответ на: комментарий от tempuser001

> Кроме этого, я слишком много раз в жизни видел фактически мёртвые машины, на которых одно из приложений сожрало памяти>Physical RAM, при этом ядро отчаянно свопило, свопило и свопило.

1) X- и XX-ключики в джаве в продакшне тюнить надо, это целая наука :) Профайлер в зубы и вперёд, подбирать.
2) man ulimit, чтобы такого не было.
P.S. А что бы было без свопа? :)

Deleted
()
Ответ на: комментарий от Deleted

> P.S. А что бы было без свопа? :)

OOM killer через ±5 сек и машина жива.

tempuser001
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.