нагрузку 100к рпс нода не держит и форкать кластером бесполезно?
Сколько максимум нода держит рпс?
Речь не идет про пропускную способность сети, днс балансировку, апаратную балансировку или програмную (то что не нодой делается, нгинкс, хапрокси), не про горизонтальное масштабирование.
Вопрос только про ноджс.
Понятное дело что нода в одном потоке на одном ядре. Где libuv? он на других ядрах?
Вот пришло к нам на машину на 80й порт 100к рпс. Один процес ноды не справляется.
Можно кластером форкнуть два процеса. Но они же вся равно через мастер процесс пойдут. Получается сколько мастер может обработать, столько может всё приложение и нет смысла раскатывать его на 30 ядер
То есть у вас не справляется, и ты спрашиваешь, у всех ли тоже так?
у вас нода без балансировщика где то стоит?
Да. А почему ты отвечаешь несвязанным вопросом на мой вопрос?
нет. Хочу понять как принимаются решения о распределении нагрузки на большее количество ядер. Средствами ноды.
все запросы идут через мастер процесс?
Вся эта дискуссия смахивает на одно из двух: - очередной хабраблогер ищет "авторитетное мнение сообщества", чтобы охаять ноду - есть некий сервис с недодуманной/ошибочной архитектурой и вместо его исправления/усиления нужна причина для переделки на что-то "типа крутое" вроде жавы или плюсов Факт привязки к местности начисто отвергается
Пока не приходилось использовать кластер Хотя была такая архитектура, где основной процесс на ноде часть запросов проксировал в дочерние процессы, а ответы от дочерних - клиенту
опишу проще. У вас есть один ip на который на порт 80 приходит бесконечное количество запросов от пользователей и всё чаще. Сервер у вас один. На сервере бесконечное количество ядер и памяти. И вам нужно используя только ноджс обслужить как можно больше запросов. 1 - Какаие ваши действия? 2 - Сколько рпс по вашему обработает ваш сервер?
я больше тебя не спрашиваю не о чем. будь любезен и не отвечай мне больше. Ты просто хамишь мне без причины. Не надо мне это.
то есть у вас апка работает на одном процессе ноды?
А я с тобой разговариваю? Или не могу выразить свое мнение?
А про кого ты пишешь вот это? https://t.me/nodejs_ru/544586
У нас это где? Да и вообще что значит твой вопрос? Про дочерние процессы - это архитектура одного из проектов с предыдущего места работы. Там всё сложно, и основную нагрузку на себя как раз берут дочерние процессы, которые в общем случае вообще не на ноде написаны (основной на плюсах) На текущем месте работы микросервисы, но api gateway - да, один процесс на ноде
Я далеко не специалист, но помоему нода никаких ограничений не накладывает, какое железо, среда, такие и возможности)
У вас это там где не приходилось использовать кластер и всё хорошо работает. А этот апи гэтвей с какой нагрузкой работает? рпс?
то есть нода бесконечно быстрая и обрабатывает бесконечность rps?
Так нигде не приходилось же 🤷♂
Нет, но ты ведь и не сравниваешь её с другими языками, так-то она же ограничений не ставит, да и железо ты указал с бесконечными ресурсами, поэтому ответ бесконечные rps)
то есть везде где используете ноду, у вас работает один процес ноды на сервере и справляется сам в качестве фронта для бэков? Какие максимальные нагрузки ты видел на своих проектах. Речь до сих пор про ноду. Нагрузки на др платформах не интересуют
Ты пока тут спрашиваешь уже давно сам бы протестировал)
Да. Не могу ответить, т.к. почти все проекты были on-premises. Могу предположить, что до нагрузки в 500к в секунду не доходило
я автокэноном пострелял хэлоуворлд на экпресс. Но что-то не особо понял как я своим пк могу сделать 100к рпс к примеру.
я вот такую статью встретил сегодня https://habr.com/ru/company/ruvds/blog/439976/ и озадачился. Смысл так такой что на ноде 50к рпс это потолок.
А это для тебя является стопором? Всё, прощай нода, здравствуй пхп?
нет. Интересно стало. Какой предел? Как и когда ноды размазывать на ядра? и опять же подумал что если мастер процесс справляется только с 50к рпс, то когда то ядра не спасут и нужны уже другие средства.
Там в статье речь была о том, что мастер процесс не может принять больше 50к запросов?
нет, это я так подумал. Это не так?
Нет оснований думать, что это так
а какая цифра верная?
Ты хочешь одно число получить? На все варианты железа, ос, канала и прочих уникальных условий? Я такое число не знаю Встречный вопрос: а как ты думаешь, за счёт чего у других платформ это число будет другим?
Не в числе дело. Хочу понять как рассчитывают конфигурацию железа. Где смысл вертикального масштабирования заканчивается? И всякое такое. На основании чего принимают решение поднимать ещё один процесс ноды для одной и той же апки? Не ждут же люди 500х ошибок, а потом что-то делают.
Тем не менее, ты спрашиваешь про конкретные числа Можно не ждать ошибок, а анализировать нагрузку, например
Вообще изначально я не спрашивал о числах конкретных. И приводил их как «например». Ты знаешь, я устал жанглировать словами и уточнять вопросы для тебя. Каких то содержательных ответов я не получил. Давай закончим на этом.
Жонглировать пишется через о Ты не находишь симптоматичным то, что устаёшь уже от второго (минимум) человека? Может, то, что ты спрашиваешь, какой-то бред?
А о чём я спрашиваю? От первого человека я не устал. Мне неприятно было что он обсуждал мои умственные способности в чате.
Ты сам не определился, как мне кажется Вот смотри, первая версия вопроса: https://t.me/nodejs_ru/544458 Теперь ты пишешь, что хочешь понять какое выбрать железо Как-то совсем не связано с изначальным вопросом
Вопрос изначальный по прежнему интересует. Второе это объяснение цели вопроса. Думал прояснит что либо, но нет.
достаточно странное решение заменять хттп модуль ноды своей кастомной имплементацией
Обсуждают сегодня