2014-01-17 1 views
3

Мы используем Cassandra на 5 репликации узлов 3 уже более года.Java/Hector cassandra-client отличается производительностью на разных ОС

Текущая версия 1.2.12

Мы написали программу удаления записей в Cassandra через hector/Java.

На старой ОС (OpenSuSE) у нас была производительность записи около 2500 ops/sec. Теперь мы обновляем узлы до Ubuntu 12.04 LTS. (Cassandra не был тронут, имеет свою собственную рейд-систему). В связи с этим мы перемещаем программу удаления на другой узел с новой ОС. На этом узле производительность записи составляет около 70 ops/sec, что неприемлемо.

Мы используем тот же код JRE и тот же программный код на обеих машинах.

/etc/security/limits.conf 

такие же.

Профилирование кода Java на медленных машинах сказать узкое место: org.apache.thrift.transport.TIOStreamTransport.read()

знает anywone, если есть какие-либо ОС устанавливающих которым замедлить операции Cassandra? Спасибо за помощь.


Update: (день 3)

  • Замечено, что на машинах с kernel 3.5 и снизить производительность в норме ... продолжать поиск
  • машины с kernel 3.8 имеют плохую производительность

Update: (день 4)

"OS/ядро-подозрение" было неправильно/теперь у меня есть 2 машины Ubuntu с одной версии ядра/один быстро, один медленный

... нет межсетевой экран ... проверка сети: P


Update: (день 5)

Я сделал некоторые кросс-тест (подключение каждого узла друг с другом AllOneConsistencyLevelPolicy) У меня больше проблем с клиентами cassandra, используя Kernel 3.8+, связавшись с Cassandra-серверами kernel <=3.5.

  • 3,8 до 3,8 некоторых медленных, некоторые быстро
  • 3,8 до 3,5 < некоторые медленно, некоторые быстро
  • < 3.5 в любом другом - всегда быстро

Я понятия не имею, где искать следующий ... мозговой штурм приема;)


Еще медленно ... Просто подключения к localhost являются (всегда) быстро , Имея это явление на двух разных кластерах в двух разных центрах обработки данных (также два разных поставщика). Поэтому, скорее всего, это не имеет ничего общего с сетевой инфраструктурой.

Кассандры также имеют различные версии во втором центре данных (2.0.6)

Так что я до сих пор думаю, что это не какой-Kernel-Issue ... никто еще с этой проблемой?

Найденный ... мы бежим cassandra как пользователь без полномочий root. В ubuntu есть дополнительный «переключатель», который ограничивает количество открытых файлов. Это была следующая нить.

https://askubuntu.com/questions/162229/how-do-i-increase-the-open-files-limit-for-a-non-root-user

Cite: [...]

Также нужно отредактировать /etc/pam.d/common-session* и добавьте следующую строку в конец:

session required pam_limits.so

[...]

сделал трюк.

+0

Проверьте файловую систему на обеих ОС. Возможно, они разные. –

+0

FileSystems - это то же самое. cassandra находится на отдельном raidvolume, который не был изменен при установке новой ОС. Когда я запускаю программу на узле 1 (старая ОС), она имеет высокую производительность, на узле 2 (новая ОС) она имеет низкую производительность. –

ответ

1

Убедитесь, что ваши ограничения ресурсов и конфигурация рейдов одинаковы для обоих. Readahead - это особенно часто неправильно настроенная настройка; см «Setra» на этой странице: http://www.datastax.com/documentation/cassandra/2.0/webhelp/cassandra/install/installRecommendSettings.html

Специально для Ubuntu с Cassandra работает как некорневыми пользователя:

Также нужно отредактировать /etc/pam.d/common-session* и добавьте следующую строку в конец:

session required pam_limits.so

ср. https://askubuntu.com/questions/162229/how-do-i-increase-the-open-files-limit-for-a-non-root-user

+0

Спасибо. Это хороший контрольный список для настройки cassandra. Я проверил настройки, и все даже RAID-SA все выглядело нормально. Возможно, мой вопрос не был достаточно точным. Проблема, похоже, не в кластере, а в Java-клиенте (Hector), который плохо работает на ubuntu. Я улучшу свой вопрос по этому вопросу. –

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

  • Нет связанных вопросов^_^