Я собираюсь внедрить Ignite в свое загруженное приложение Spring в качестве кеша Spring для репликации между узлами. Но я столкнулся с проблемой производительности процессора, когда тестировал некоторый процент пользователей в производственной среде. Для тестирования я использовал 4 сервера. 2 в клиентском режиме (с Spring) и 2 в серверном режиме. Каждый сервер имеет 8 ЦП и 8 ГБ ОЗУ. Узлы с Spring Cache настроены Dynamic Near Cache, чтобы избежать перегрузки сети.
Я новичок в конфигурации Ignite, возможно, я ошибся. Есть ли у вас какие-либо мысли о причине проблемы с производительностью процессора?
Скриншоты со сравнением сервера с Ignite и без: тест с 5% пользователей
Да, имена серверов скрыты. Зеленый и желтый - старые рабочие узлы с ~ 95% пользователей, а синий - новый узел с Ignite + Spring Cache и ~ 5% пользователей. Я приложил эти диаграммы, чтобы наглядно показать проблему. Как мы видим, сервер с 5% потребляет ЦП больше, чем такой же сервер без Ignite с 74% пользователей.
Вы пробовали профилировать, например, JFR, чтобы узнать, на что тратится время?
Да, я профилировал с помощью YourKit, но пока не нашел причины. Все методы приложения работают медленно. Я скоро проанализирую более глубоко
Первое предположение: вы уверены, что не запускаете узел Ignite при каждом вызове API?
Нет, узел Ignite запускается один раз при весеннем запуске. Настроил по этому мануалу - apacheignite-mix.readme.io/docs/spring-caching
Есть ли у вас обновления?
Можете ли вы интерпретировать нам свои карты? Я не понимаю, что здесь означает цветовое кодирование, каков сценарий и как очевидна проблема.