Мы используем 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
[...]
сделал трюк.
Проверьте файловую систему на обеих ОС. Возможно, они разные. –
FileSystems - это то же самое. cassandra находится на отдельном raidvolume, который не был изменен при установке новой ОС. Когда я запускаю программу на узле 1 (старая ОС), она имеет высокую производительность, на узле 2 (новая ОС) она имеет низкую производительность. –