мы используем Cassandra
на 5 узлах репликации 3 уже более года.
Текущая версия 1.2.12
Мы написали программу, удаляющую записи в Cassandra
через hector/Java
.
В старой ОС (OpenSuSE
) производительность записи составляла около 2500 операций в секунду. Сейчас мы обновляем узлы до Ubuntu 12.04 LTS
. (Cassandra
не трогали, есть своя рейд-система). В связи с этим мы перемещаем программу удаления на другой узел с новой ОС. На этом узле производительность записи составляет около 70 ops/sec
, что неприемлемо.
Мы используем один и тот же JRE
и один и тот же программный код на обеих машинах.
/etc/security/limits.conf
такие же.
Профилирование кода Java на медленных машинах говорит, что узкое место: org.apache.thrift.transport.TIOStreamTransport.read()
Кто-нибудь знает, есть ли какие-либо настройки ОС, которые замедляют работу cassandra? Спасибо за вашу помощь.
Обновление: (день 3)
- Заметил, что на машинах с
kernel 3.5
и ниже производительность в норме... продолжайте искать - машины с
kernel 3.8
имеют плохую производительность
Обновление: (день 4)
«Подозрение на ОС/ядро» было неверным / теперь у меня есть 2 машины с Ubuntu с одинаковой версией ядра / одна быстрая, другая медленная
... нет брандмауэра ... проверка сети :P
Обновление: (день 5)
Я сделал несколько перекрестных тестов (соединив каждый узел друг с другом с помощью AllOneConsistencyLevelPolicy
). У меня больше проблем с cassandra-клиентами, использующими Kernel 3.8+
связь с Cassandra-серверами kernel <=3.5
.
- От 3,8 до 3,8, где-то медленно, где-то быстро
- От 3,8 до ‹3,5 медленно, немного быстро
- ‹3,5 к любому другому - всегда быстро
Я понятия не имею, где искать дальше... мозговой штурм приветствуется;)
Все еще медленно... Просто соединения с localhost
(всегда) быстрые. Наличие этого явления на двух разных кластерах в двух разных центрах обработки данных (также у двух разных провайдеров). Так что, скорее всего, это не имеет ничего общего с сетевой инфраструктурой.
Cassandras также имеет разные версии во втором центре обработки данных (2.0.6).
Так что я все еще думаю, что это какая-то проблема с ядром ... ни у кого больше не было этой проблемы?
Нашел ... мы запускаем cassandra как пользователь без полномочий root. В Ubuntu есть дополнительный «переключатель», который ограничивает количество открытых файлов. Это было после треда.
https://askubuntu.com/questions/162229/how-do-i-increase-the-open-files-limit-for-a-non-root-user
Цитируйте: [...]
Вам также нужно отредактировать /etc/pam.d/common-session*
и добавить в конец следующую строку:
session required pam_limits.so
[...]
сделал трюк.