Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2020 December 05

M

Miseo in NodeUA - JavaScript and Node.js in Ukraine
Vitaliy
Форкати процес більше разів, ніж є в харда - немає сенсу.
Та і заводити під паралельне виконання цілий процес - тоже безсмислено. Тут треба шось максимально легковісне, де можна виконувати обчислення.
Підходить воркрер-тред.
І теж в тій кількості, скільки є фактично ядер (в т.ч. віртуальних).
Далі можна створити пул воркерів, асинхронну чергу задач, і закидати задачі в воркери по доступності.
Це буде оптимальний варіант.
Но якщо в програмі паралельно ще має щось робитися (слухатись сокети і тд), то є сенс створити ще додатковий воркер для цих цілей.
Я тут пару дней поексперементировал с форками, заметил что приложение теперь работает стабильнее, даже я бы сказал, очень стабильно, но вот много форков (по количеству ядер) приводит к высокой нагрузке на сервер (как на проц так и на оперативу).
Сейчас попробую пересмотреть логику приложения, и попробую чтото вынести в воркер тред. возможно это будет более оптимально.
источник

1

1 in NodeUA - JavaScript and Node.js in Ukraine
Miseo
Я тут пару дней поексперементировал с форками, заметил что приложение теперь работает стабильнее, даже я бы сказал, очень стабильно, но вот много форков (по количеству ядер) приводит к высокой нагрузке на сервер (как на проц так и на оперативу).
Сейчас попробую пересмотреть логику приложения, и попробую чтото вынести в воркер тред. возможно это будет более оптимально.
сорян, а что значит форкать ?
источник

1

1 in NodeUA - JavaScript and Node.js in Ukraine
достал что ли
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
1
сорян, а что значит форкать ?
man7.org/linux/man-pages/man2/fork.2.html
Можно погуглить же
источник

1

1 in NodeUA - JavaScript and Node.js in Ukraine
а в ноде что , можно управлять процессами ?
погуглить можно , но тяжело найти инфу в контексте ноды
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
1
а в ноде что , можно управлять процессами ?
погуглить можно , но тяжело найти инфу в контексте ноды
Модуль child_process
источник

1

1 in NodeUA - JavaScript and Node.js in Ukraine
Алексей Попов
Модуль child_process
что модуль child_process ?  так можно или нет ?
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
1
а в ноде что , можно управлять процессами ?
погуглить можно , но тяжело найти инфу в контексте ноды
В курсе все есть и процессы и потоки
источник

1

1 in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
В курсе все есть и процессы и потоки
я не знал что в ноде вообще можно процессами управлять. ладно, спасибо. как-то очень сложно это все
а процессы и потоки это не одно и тоже ?
источник

CM

Chumachenko Mihail in NodeUA - JavaScript and Node.js in Ukraine
nope
источник

1

1 in NodeUA - JavaScript and Node.js in Ukraine
походу я очень  глупые вопросы задаю
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
1
походу я очень  глупые вопросы задаю
Вопросы не глупые, но они не относятся к ноде
источник

АБ

Артур Бердыев... in NodeUA - JavaScript and Node.js in Ukraine
Везёт же людям, процессами управляют и потоками, а я все ковыряюсь в легаси и пытаюсь не свихнуться
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
1
да не , я уже понял. io это все что тратит время , но не на выполнение в процессоре
Если простыми словами, I/O (input/output или ввод/вывод) это буквально данные которые программа получает на вход и отдает на выход. Сюда относятся работа с файловой системой,  работа с сетью, HTTP запросы, запросы в базу данных, вывод данных в консоль, stdin, stdout и так далее (это не полный список, а просто примеры).
Если программа ничего не получает на вход и не отдает на выход, то она ничего полезного не делает (кроме нагрева CPU).
I/O это не что-то специфическое для ноды и в ноде под I/O понимается ровно то же самое, что и на других платформах и языках
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
Артур Бердыев
Везёт же людям, процессами управляют и потоками, а я все ковыряюсь в легаси и пытаюсь не свихнуться
А если они разбираются с процессами и потоками в легаси?
источник

1

1 in NodeUA - JavaScript and Node.js in Ukraine
Артур Бердыев
Везёт же людям, процессами управляют и потоками, а я все ковыряюсь в легаси и пытаюсь не свихнуться
а я даже не знаю что такое легаси
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
1
а я даже не знаю что такое легаси
Legacy это наследие (дословный перевод с английского)
источник

1

1 in NodeUA - JavaScript and Node.js in Ukraine
Yevhen
Если простыми словами, I/O (input/output или ввод/вывод) это буквально данные которые программа получает на вход и отдает на выход. Сюда относятся работа с файловой системой,  работа с сетью, HTTP запросы, запросы в базу данных, вывод данных в консоль, stdin, stdout и так далее (это не полный список, а просто примеры).
Если программа ничего не получает на вход и не отдает на выход, то она ничего полезного не делает (кроме нагрева CPU).
I/O это не что-то специфическое для ноды и в ноде под I/O понимается ровно то же самое, что и на других платформах и языках
сорян за очередной глупый вопрос , а stdin  stdout это что  ?
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
1
сорян за очередной глупый вопрос , а stdin  stdout это что  ?
Советую ввести эти два слова в Google.
Стандартный поток ввода и вывода. Опять же, это не относится только к ноде
источник

1

1 in NodeUA - JavaScript and Node.js in Ukraine
Yevhen
Если простыми словами, I/O (input/output или ввод/вывод) это буквально данные которые программа получает на вход и отдает на выход. Сюда относятся работа с файловой системой,  работа с сетью, HTTP запросы, запросы в базу данных, вывод данных в консоль, stdin, stdout и так далее (это не полный список, а просто примеры).
Если программа ничего не получает на вход и не отдает на выход, то она ничего полезного не делает (кроме нагрева CPU).
I/O это не что-то специфическое для ноды и в ноде под I/O понимается ровно то же самое, что и на других платформах и языках
спасибо . то , что  вывод данных в консоль тоже io операция очень неожиданно. вчера час спорил с одним докладчиком, что таймер не может быть io операцией , видимо он был прав
источник