Запуск 16 процессов на одной машине jvm

Я использую 64 ГБ ОЗУ и 24-ядерную машину и выделил 32 ГБ для JVM. Я хотел запустить следующие процессы: -

7 Kafka Brokers
3 instance of zookeeper 
Elastic Search 
Cassandra
Spark
MongoDB
Mysql
Kafka Manager
Node.js

& запуск 4-5 приложений Spark на 5-6 исполнителе по 1 ГБ каждый симуляционно. Работа Spark:

1) 1 Spark job takes data from kafka and inserts into Cassandra
2) 1 Spark job takes data from another kafka topic and inserts into different Cassandra Table.
3) 2 Spark Job takes data from Cassandra, did some processing/analysis and writes data into their respective different cassandra table.

Итак, иногда мое приложение для вставки зависает. Кафка берет около 500 записей в секунду. По прошествии некоторого времени он начинает создавать пакеты в очереди, и ошибок нет, но время обработки на панели управления Spark постепенно увеличивается.

Я использовал TOP для проверки использования ЦП и обнаружил, что есть один процесс «0QrmJB», который использует 1500+% ЦП, а java - 200%.

Какие могут быть проблемы? Я не умею анализировать. Можно ли запускать все эти процессы на одной машине JVM? Спасибо,

В качестве первого шага я бы предложил запустить top, чтобы отслеживать потребление памяти каждым процессом. Теоретически вы запускаете много процессов, интенсивно использующих память (Kafka, Spark, Elastic Search и т. д.), И вам нужно будет либо использовать больше хостов (лучше с точки зрения высокой доступности), либо добавить больше памяти. Но, как я уже сказал, в качестве первого шага просто запустите top и посмотрите, как все пойдет.

Giorgos Myrianthous 29.10.2018 10:00

Есть 1 процесс «0QrmJB», который занимает 1468% ЦП. есть идеи, что это значит?

Pinnacle 29.10.2018 10:48

Не могли бы вы отредактировать свой вопрос и включить весь вывод?

Giorgos Myrianthous 29.10.2018 10:48

Да, я сделал.

Pinnacle 29.10.2018 10:53

Можете ли вы скопировать и вставить вывод для первых 5-6 записей?

Giorgos Myrianthous 29.10.2018 10:53

Вы понимаете, что запуск всех брокеров на одной машине не дает никаких гарантий доступности? Если он выходит из строя, весь кластер отключен. В любом случае, похоже, что для одной машины слишком много процессов.

Mickael Maison 29.10.2018 13:35

@MickaelMaison - Да, на самом деле эту архитектуру создал кто-то другой, и я просто разработчик, пишущий искровые задания, и мои задания зависали / зависали, и я не мог выяснить, что идет не так, поэтому хотел узнать, запущено ли слишком много процессов на одиночная машина хороша или нет. Спасибо, что поделились своим мнением.

Pinnacle 29.10.2018 13:53
I was unable to find out whats going wrong so wanted to know if running too many processes on single machine is good or not, с одной стороны, JVM по умолчанию будет использовать все ядра для сборщиков мусора, если вы запускаете кучу конкурирующих процессов Java, они, скорее всего, перегрузят вашу систему простыми сборщиками мусора, если они не настроены.
Chris Lohfink 29.10.2018 19:29
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
8
57
0

Другие вопросы по теме