Hazelcast NearCache не оказывает ожидаемого влияния на производительность

У нас есть приложение, работающее на 1 или 2 узлах, в зависимости от среды, с общим кешем на основе Hazelcast.

Один из запросов к приложению вызывает около 1000 запросов к этому кешу (все обращения к кешу).

В конфигурации с одним узлом это работает хорошо. В частности, каждый запрос занимает менее 10 мс.

Но если мы используем 2 узла, каждый запрос кеша занимает около 20-200 мс. Мы думали, что это произойдет из-за того, что Hazelcast получает данные с удаленного узла, что, конечно, связано с сетевым трафиком. Поэтому мы настроили его на использование NearCache, что, по нашему мнению, должно обеспечить примерно такую ​​же скорость доступа, что и один локальный кэш. Но это не так, это никак не влияет на производительность.

Так что теперь мне интересно

  • Как я могу проверить, действительно ли работает конфигурация NearCache?
  • Как я могу получить производительность чтения, близкую к локальному кешу, но обновления (асинхронно) сообщаются с / всеми удаленными кешами, что, как я думал, я получу, настроив NearCache?

Мы инициализируем наш кеш со следующей конфигурацией:

HazelcastConfiguration.getOrCreateCache(
                cacheName,
                new CacheConfig<K, CR>()
                        .setNearCacheConfig(new NearCacheConfig())
                        .setExpiryPolicyFactory(
                                HazelcastConfiguration.createExpiryPolicyFactory(expiryAfterModification)),
                cacheManager
        );

1 ответ

Это зависит от многих вещей, но 20/200 мс - это много. Когда мы запускаем эталонный кластер из 4 узлов (4-х сокетный компьютер xeon) в 1 стандартной сети 1 GbE, процентиль 99 намного ниже 1 мс. Мы говорим здесь без тайника.

Ближний кэш должен давать очень хорошую производительность, потому что если данные локально кэшируются, то вызов локальный + вся внутренняя инфраструктура для выполнения операций пропускается (по крайней мере, для IMap и ближнего кеша; не совсем уверен в отношении кеша).

Можете ли вы попробовать нажать один и тот же набор ключей? Просто чтобы убедиться, что вы попали в ближний кеш.

Что вы используете в качестве ключа и значения? Они большие или сериализация недружелюбная?

Я все еще сталкиваюсь с проблемами; быстро попытайтесь IMap и включите около кэша и проверьте, если вы видите большие различия.

Другие вопросы по тегам