Вопрос о механизме кеширования Solr - PullRequest
6 голосов
/ 24 ноября 2010

Я работаю над проектом Apache Solr. (распространяется в облачной среде - экземпляры Amazon ec2).

Я заметил, что Солр отлично справляется с кэшированием результатов. Когда я выполняю те же самые запросы снова, отвечающее состояние Solr QTime равно 0 или 1 миллисекунде.

Я хочу провести стресс-тестирование системы Solr. Поэтому у меня есть ограниченный список запросов, которые я мог бы использовать (50 000 уникальных запросов). Проблема в том, что все запросы кешируются!

Когда я стресс-тест - через 5 минут или около того - все мои запросы передаются в Solr и выполняются. Это заставляет систему потеть под тяжелой нагрузкой :) (ведь это была цель). Но потом, когда я выполняю тот же набор запросов снова - QTime почти равен нулю! -> Solr легко и без стресса.

Мой вопрос: Как можно включить ВСЕ кеши Solr (как кеши Solr, так и Lucence)? Или как можно ограничить кеш?

Я пытался отключить весь внутренний кэш Solr, но кэш все еще остается. (QueryResultCache и FieldCache) Примечание: в конфигурации упоминается, что Lucence будет управлять внутренним кешем - может быть, этот кеш является проблемой?

Просто странно, что все 50 000 запросов могут храниться в кеше - из коробки.

Ответы [ 2 ]

6 голосов
/ 24 ноября 2010

Вы можете закомментировать filterCache, queryResultCache и documentCache в вашей конфигурации. FieldCache Lucene нельзя отключить .

Хотя в действительности это не имеет никакого смысла, даже для сравнительного анализа.Вы также отключили бы кеширование диска в своей операционной системе?Кэш процессора (все три уровня)?Внутренний кэш каждого жесткого диска?

Кэши являются частью системы, и если вы их отключите, вы не сможете точно смоделировать происходящее на производстве, что сделает тест бесполезным.

3 голосов
/ 02 ноября 2012

Отключение кешей - отличная идея, по крайней мере для тех, которые зависят от приложения.Тест в этом случае предназначен для того, чтобы найти ответ / стоимость запроса, который не был замечен ранее;в отличие от тех, которые популярны в кэше, срок действия истекает.

Похоже, вы хотите метрики, которые говорят вам, как работает поисковая система;не кеш запросов.

Предыдущие ответы на самом деле находятся за пределами левого поля, предлагая предположить, что все тесты должны измерять одно и то же, "его собственное определение" реальной производительности.Инжиниринг работает не так.

Что касается замечания о "дисковых кешах".В Linux нет дисковых кешей;только кеш страниц;сохраняется ли эта страница на диске, создается и уничтожается в памяти или предварительно выделяется для больших интеллектуальных файловых систем .... все они являются страницами.

Есть преимущество в сравнении с кешами ... еслиВы пытаетесь измерить показатели производительности кэша.duh.

Кстати, между "-server" и "XXcompileThreshold" вы хотите убедиться, что ваш первый большой набор запросов либо достаточно случайный, либо специально выбранный, чтобы использовать столько путей функций в Solr / Lucene, сколько выМожно;поэтому JIT активен и несколько улажен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...