Как найти клиента, вызывающего стресс или нагрузку на сервис Cassandra? - PullRequest
0 голосов
/ 28 августа 2018

Я управляю кластером Cassandra, используемым разработчиками приложений. Недавно возникла ситуация, когда кластер Кассандры подвергается стрессу через регулярные промежутки времени (каждые 5 минут).

Как мне узнать, какой клиент (IP) вызывает стресс?

1 Ответ

0 голосов
/ 28 августа 2018

Несколько вариантов. Вы

  • Может использовать nodetool toppartitions (загрузка профиля в будущих выпусках) в течение периода. Загрузка профиля, если она доступна, поможет определить несколько сценариев.
  • Можно использовать nodetool settraceprobability 0.01 или какой-нибудь маленький% и посмотреть на system_trace.sessions и таблицы событий, чтобы увидеть, какие запросы выполняются.
  • Можно использовать nodetool clientstats для просмотра подключенных клиентов, а также количества запросов, поэтому, если вы посмотрите до и после периода, вы, вероятно, сможете определить, какой клиент вас больше всего поражает, если его объем запросов. Если клиент отправляет большие запросы или запрашивает большие объемы (например, устанавливает размер выборки равным 100000, выбирает много больших двоичных объектов или что-то плохое), это будет сложнее.
  • Можно также использовать tcpdump или wireshark - есть доступные CQL-диссекторы.

Возможно, проблема также в сборщиках мусора, что, в конечном счете, более вероятно вызвано тем, что запрос повторяется каждые 5 минут, когда вы захотите выполнить одно из указанных выше действий. Но проверка журналов может помочь сузить это сразу (ищите GCInspector). Просмотр журналов был бы полезен для определения других вещей, например, блокирует ли диск и вызывает ли мутации для резервного копирования и давления ГХ, например.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...