![Высокая загрузка ЦП и трафика на некоторых узлах Cassandra](https://rvso.com/image/768903/%D0%92%D1%8B%D1%81%D0%BE%D0%BA%D0%B0%D1%8F%20%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0%20%D0%A6%D0%9F%20%D0%B8%20%D1%82%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0%20%D0%BD%D0%B0%20%D0%BD%D0%B5%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D1%85%20%D1%83%D0%B7%D0%BB%D0%B0%D1%85%20Cassandra.png)
Как указано в заголовке, у нас возникла проблема с кластером Cassandra. Есть9 узловсфактор репликации 3с использованиемСетьТопологияСтратегия. Все в том же DC и стойке. Версия Cassandra - это3.11.4(планируем переехать 3.11.10). Экземпляры есть4 ЦПи32 ГБ ОЗУ. (планируем перейти на 8 ЦП)
Всякий раз, когда мы пытаемся запустить восстановление на нашем кластере (используя Cassandra Reaper на одном из наших узлов), мы теряем один узел где-то в процессе. Мы быстро останавливаем восстановление, перезапускаем службу Cassandra на узле и ждем, пока она присоединится к кольцу. Поэтому мы никогда не можем запустить восстановление в эти дни.
Я заметил проблему и понял, что она вызвана высокой загрузкой ЦП на некоторых наших узлах.(ровно 3). Ниже вы можете увидеть график с интервалом в 1 неделю.Подъемы и спады вызваны использованием приложения. По утрам он очень низкий.
Я сравнил запущенные процессы на каждом узле, и на узлах с высокой загрузкой ЦП нет ничего лишнего. Я сравнил конфигурации. Они идентичны. Не удалось найти никакой разницы.
Я также понял, что эти узлы — те, которые забирают большую часть трафика. Смотрите график интервала в 1 неделю ниже.Отправленные и полученные байты.
График отправленных и полученных байтов
Я провел небольшое исследование. Я нашелэтотпоток и в конце рекомендуется установить dynamic_snitch: false
в конфигурации Cassandra. Я посмотрел на нашу стратегию стукача, котораяСплетниСобственностьФайлСтукач. На практике эта стратегия должна работать правильно, но я полагаю, что это не так.
Задача осведомителя — предоставить информацию о топологии вашей сети, чтобы Cassandra могла эффективно маршрутизировать запросы.
Единственное, что я заметил, что может быть причиной этой проблемы, это то, что есть файл под названиемкассандра-топология.свойствачто конкретносказали, что его нужно удалитьесли используется GossipingPropertyFileSnitch
Стойка и датацентр для локального узла определяются в cassandra-rackdc.properties и распространяются на другие узлы через gossip. Если cassandra-topology.properties существует, он используется как резервный вариант, позволяющий миграцию из PropertyFileSnitch.
Я не удалял этот файл, так как не смог найти никаких весомых доказательств того, что это вызывает проблему. Если у вас есть какие-либо знания об этом или вы видите какую-либо другую причину моей проблемы, я был бы признателен за вашу помощь.