2013-12-11 3 views
3

Я столкнулся с проблемами с узлами Cassandra 1.2.5, использующими высокую загрузку процессора 2300%, и случайное становление невосприимчивым (например, не удается войти в cqlsh, получить исключение).Узлы Кассандры случайным образом опускаются

Я не уверен, почему, но во время работы tpstats на этом узле у меня есть 26000 ожидающих пула ReadStage и FlushWriter 126 все время заблокировано. Похоже, что после перезапуска узла все возвращается к нормальной работе некоторое время, и через некоторое время проблема снова появляется, и я получаю тайм-ауты по всему месту, и данные не извлекаются правильно из таблицы, на которую не повлияло развертывание.

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

ответ

1

Если FlushWriter является (когда-либо) блокировкой, это очень плохой знак. Обычно указывает, что вы пытаетесь сделать гораздо больше с вашим оборудованием, чем у вас есть. Если бы я был уверен в том, что ваш процессор будет пережеван GC, и это все шло.

26000 ожидающих чтения может быть достаточно, чтобы взорвать вашу кучу. Трудно сказать из вашего описания, в чем проблема, но я бы заподозрил, что ваша подсистема IO перегружена, что вызывает чтение резервных копий (вот где начинается ваша проблема). Те запросы на чтение попадают в кучу и сидят там, пока запрос не истечет. Ваши ожидающие чтения взорвут вашу кучу, и вы попадете в спираль смерти смерти.

Если это^ваша проблема: добавьте емкость, используя большее количество узлов, или используйте твердотельные накопители.

Смежные вопросы