170 похожих чатов

Всем привет. Сталкивался ли кто-нибудь с тем, что pm2 не рестартит

скрипт после OOM?
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
В логе... а pm2 при этом вообще ничего не сделал

14 ответов

30 просмотров

Есть тут люди, кто в pm2 шарит и может помочь? Вопрос до сих пор не решен... ☝️

Илюша 🎂
пофиксить утечку?

нет, понять, почему pm2 не рестартит

Если бы все писали идеальный код, то в pm2 не было бы нужды. А его придумали как раз для подобных вещей 😉

Михаил Приложения для доставок
Если бы все писали идеальный код, то в pm2 не было...

проблема скорее всего не в пм2. у тя где то код протикает

Anton
проблема скорее всего не в пм2. у тя где то код пр...

Да понятно, что он протекает и проблема уже решается... Я спрашиваю не про проблему в коде, а про проблему в PM2. Почему он не перезагрузился. Если знаете более хорошее решение для продакшн-серверов, напишите... но писать то, что код должен быть идеальным в наше время — ну уже слишком... Неужели вы реально всегда без багов пишете код? Что прям сразу запускается и ни одного лишнего байта в памяти не потребляется? Нагрузка на ЦП оптимальная и никто не может ваш код улучшить? И даже если так... вы уверены, что все библиотеки, которые вы подключили в коде написаны такими же идеальными программистами? У вас прям нулевая вероятность, что код безошибочно работает? Поздравляю. Но у меня ситуация другая. Сегодня сервер не перезагрузился из-за вылета по памяти. И мне совершенно пофиг, кто из программистов накосячил, когда и зачем... и мне пофиг, что можно потратить N времени на решение этой проблемы. Мне важно сделать так, чтобы эта проблема не мешала конечным клиентам получать ценность продукта. И я при этом не надеюсь на идеальный мир и понимаю, что везде есть проблемы. И еще раз повторюсь... системы управления процессами типа supervisor, pm2 и прочих создавались как раз для таких людей как я, кто не верит в идеальных программистов.

Михаил Приложения для доставок
Да понятно, что он протекает и проблема уже решает...

не перезагрузился вероятно потому что он сам на ноде работает, а если хип забился он не сможет работать.

Илюша 🎂
докер.

👍🏻 Вполне возможно

Anton
не перезагрузился вероятно потому что он сам на но...

А разве нода (или pm2) не должны хип разделять между процессами?

Михаил Приложения для доставок
Да понятно, что он протекает и проблема уже решает...

1. Нужно смотреть лимит памяти на процес, может у вас стоит лимит который не может быть предоставлен всем процессам + самому пм2 (пример: на машине 16гб, запущено 8 процессов у каждого лимит 2гб - скорее всего крашнется всё вплоть до пм2 поскольку не будет хватать физически памяти) 2. Какая политика перезапуска приложения , может просто не установлен конфиг для перезагрузки процеса 3. Падвающие по памяти процессы плохая практика перезапускать - если у вас в процессинге есть данные, они потеряются, что приведёт к неконсистентности. 4. Есть более простая обёртка forever - она тупо будет ребутать упавший процес

Artem
1. Нужно смотреть лимит памяти на процес, может у ...

forever был до pm2 😊 Как я уже писал, до сегодняшнего дня pm2 не подводил

Artem
1. Нужно смотреть лимит памяти на процес, может у ...

3. У нас текущий стейт всегда персистится куда-нибудь, поэтому проблем с перезапуском нет.

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

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта