Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 February 08

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Особенно хороша проверка типов тайпскриптом в рантайме между микросервисами
протобуф :)
источник

PS

Pavel Shakhov (pongo... in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Особенно хороша проверка типов тайпскриптом в рантайме между микросервисами
есть пакеты для тс, которые делают рантайм проверки
источник

DD

Dmytro Drachov in NodeUA - JavaScript and Node.js in Ukraine
Alexander
А как вы угадываете когда вам оом-киллер пришлет sigkill :)?
ну как бы настройки oom ставишь 2 gb.
Пишешь свой монитор, который ставишь на 1.5 GB и чтобы он вырубал сервис по хорошему. Если все же тот не хороший, то oom его прибьет по плохому
источник

𝔅К

𝔅илен Куприенко... in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Особенно хороша проверка типов тайпскриптом в рантайме между микросервисами
Которые общаются на графкьюэле?
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Elena Sharovar
process.on('SIGINT', handle);
process.on('SIGTERM', handle);
ООМ-киллер на то и киллер, он предупредительных выстрелов не делает :), он делает SIGKILL и досвидос. Разве что ваша приложуха время от времени будет как самолет выстреливать ик-ловушки (писать неприлично большие значения в файлик oom_score_adj для фейкового процесса) и если еги пристрелят, то пора и основному процессу могилку рыть
источник

АЗ

Алексей Забайкальски... in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Особенно хороша проверка типов тайпскриптом в рантайме между микросервисами
толсто :D
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Dmytro Drachov
ну как бы настройки oom ставишь 2 gb.
Пишешь свой монитор, который ставишь на 1.5 GB и чтобы он вырубал сервис по хорошему. Если все же тот не хороший, то oom его прибьет по плохому
ООМ киллер выбирает жертву не только по тому сколько занимает памяти она. Приложуха может спокойно пасть его жертвой кушая и 1Гб.
источник

DD

Dmytro Drachov in NodeUA - JavaScript and Node.js in Ukraine
Alexander
ООМ киллер выбирает жертву не только по тому сколько занимает памяти она. Приложуха может спокойно пасть его жертвой кушая и 1Гб.
Сорян, не силен в алгоритме работы oom в сgroups, но вообщем-то подход то верный, чи не так?
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
в случае с cgroups у нас гораздо больше контроля для оценки memory pressure
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Dmytro Drachov
Сорян, не силен в алгоритме работы oom в сgroups, но вообщем-то подход то верный, чи не так?
Верным был подход с "просто не делай так"  (т.е. не писать борн-ту-дай программы/процессы).
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
/sys/fs/cgroup/memory/memory.pressure_level как пример
источник

DD

Dmytro Drachov in NodeUA - JavaScript and Node.js in Ukraine
Alexander
Верным был подход с "просто не делай так"  (т.е. не писать борн-ту-дай программы/процессы).
ну как дев да, а если ты релиабилити инженер, и у тебя 100500 тим чет там пишут, ты в душе не чаешь умеют ли они писать.
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Dmytro Drachov
ну как дев да, а если ты релиабилити инженер, и у тебя 100500 тим чет там пишут, ты в душе не чаешь умеют ли они писать.
То тогда тяжко ему прийдется. Ведь сожрать память можно и не самой программой непосредственно.

Например можно написать код, который засрет буфер какого-нибудь сетевого интерфейса и память улетит за пару секунд. А приложение себе преспокойно будет существовать.
источник

DD

Dmytro Drachov in NodeUA - JavaScript and Node.js in Ukraine
а о чем мы спорим?
1. надо ли писать мемори лики - нет
2. надо ли защитить прод от oom и утечки ресурсов - по обстоятельствам
3. можно ли как-то защититься - можно но не на 100%(в кубе нашел вот такое https://cutt.ly/YkmBhrL)
источник

DD

Dmytro Drachov in NodeUA - JavaScript and Node.js in Ukraine
Alexander
То тогда тяжко ему прийдется. Ведь сожрать память можно и не самой программой непосредственно.

Например можно написать код, который засрет буфер какого-нибудь сетевого интерфейса и память улетит за пару секунд. А приложение себе преспокойно будет существовать.
для этого вроде ж есть tcp max buffer size
источник

DD

Dmytro Drachov in NodeUA - JavaScript and Node.js in Ukraine
Но да, если играть в игру плохой разраб и хороший девопс, то скорее разраб победит=)
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Dmytro Drachov
для этого вроде ж есть tcp max buffer size
Конечно. Но это всё надо учитывать. Т.к. если он полностью будет забит, то приложение хоть и будет работать, но никому вокруг об этом не будет известно.
И тут можно подумать о том, чтобы его сделать побольше, чтобы весь "хайлоад" поместился.
И так подкрутив что-то одно, можно получить проблемы в совершенно неожиданных местах.
источник

DD

Dmytro Drachov in NodeUA - JavaScript and Node.js in Ukraine
Alexander
Конечно. Но это всё надо учитывать. Т.к. если он полностью будет забит, то приложение хоть и будет работать, но никому вокруг об этом не будет известно.
И тут можно подумать о том, чтобы его сделать побольше, чтобы весь "хайлоад" поместился.
И так подкрутив что-то одно, можно получить проблемы в совершенно неожиданных местах.
Именно по этому я не реабилити инженер.
Спасибо, Александр, за приятную беседую.
источник

AB

Alex Bekhtin in NodeUA - JavaScript and Node.js in Ukraine
@tshemsedinov  Почитал, посмотрел и поигрался с примером на Метархии, а было ли видео (список)  где описаны недостатки?
источник

PS

Pavel Shakhov (pongo... in NodeUA - JavaScript and Node.js in Ukraine
@tshemsedinov двусторонняя синхронизация для фронта с разрешением конфликтов и поддержкой оффлайна -- это прямо описание библиотеки Logux (ситник делает)
источник