Это уже второй раз, когда я пишу об этой проблеме.
Каждые пару дней мы отмечаем большое количество ACTIVE "Native-Transport-Requests" (около 100-200) в выводе "nodetool tpstats". Это происходит случайным образом на паре узлов в одном DC (у нас есть 6 узлов). Когда это происходит, приложение работает медленно.
Мы начали замечать вышеупомянутую проблему после развертывания новых микро-сервисов в производстве.
Мы развернули те же микросервисы в другом производственном кластере, но у них нет описанной выше проблемы.
мы используем версию Apache Cassandra 2.2.8.
Вот настройки, которые у нас уже есть в кластере.
В файле Cassandra.yaml у нас есть native_transport_max_threads: 1024 . В Cassandra-env.sh файле мы имеем
JVM_OPTS = "$ JVM_OPTS -da -server -Djava.io.tmpdir = / data1 / tmp -Dcassandra.max_queued_native_transport_requests = 4096
Когда я проверяю количество входящих соединений с помощью команды ниже на всех узлах
netstat -tupawn | grep 9042 | grep УСТАНОВЛЕНО | wc -l
Я вижу более 1131 соединения на узел.
у нас нет высоких GC пауз. Я вижу, что пауза GC ниже 400 мс на всех узлах.
Теперь я должен увеличить native_transport_max_threads до 1200? потому что у нас есть 1131 соединение на узел? и max_queued_native_transport_requests для 5192?
В другом кластере у нас есть native_transport_max_threads: 512, а число входящих CQL-соединений больше 5000+, но мы не видим описанную выше проблему в этом кластере.