Как проверить, является ли соединение узким местом производительности - PullRequest
0 голосов
/ 02 марта 2020

Я использую Apache Ignite с приложением Java и наблюдаю, что с увеличением параллелизма время отклика также увеличивается. Я заметил, что между приложением java и сервером Ignite установлено только одно соединение. Как я могу подтвердить, что это узкое место? Дампы потоков показывают, что некоторые потоки ожидают метод Socket.Read. Это связано с количеством соединений?

Ответы [ 2 ]

0 голосов
/ 02 марта 2020

Пробовали ли вы приложения, которые поставляются с java JDK ( JVisualVM ) или лучшим yourkit , чтобы определить, где вы теряете время?

0 голосов
/ 02 марта 2020

Начиная с Ignite 2.7.6, Тонкий клиент устанавливает только одно соединение с узлом сервера. Да, это может стать узким местом при использовании из нескольких потоков.

Я могу порекомендовать либо один IgniteClient экземпляр на поток, либо использовать какой-либо пул соединений.

Также Ignite 2.8 представляет Partition Awareness (выпуск запланирован на сегодня), где соединение тонкого клиента устанавливается с каждым указанным узлом сервера, а запросы на основе ключей отправляются на основные узлы. Это может помочь и в вашем случае.

...