СОЛР ВЕРСИЯ 6.0.0
Есть всплеск, который можно наблюдать каждые 2 часа. то есть всякий раз, когда запускается дельта-импорт
- Время отклика удваивается
- Средняя загрузка ЦП удваивается, а если она работает почти до часа звона, то увеличивается даже до 10 раз.
Мои настройки кэша
1. <filterCache class="solr.FastLRUCache"
size="5000"
initialSize="512"
autowarmCount="128"/>
<queryResultCache class="solr.FastLRUCache"
size="10000"
initialSize="512"
autowarmCount="128"/>
<documentCache class="solr.FastLRUCache"
size="100000"
initialSize="10000"
autowarmCount="0"/>
<cache name="perSegFilter"
class="solr.search.LRUCache"
size="10"
initialSize="0"
autowarmCount="10"
regenerator="solr.NoOpRegenerator" />
<enableLazyFieldLoading>true</enableLazyFieldLoading>
<queryResultWindowSize>20</queryResultWindowSize>
<queryResultMaxDocsCached>200</queryResultMaxDocsCached>
<useColdSearcher>false</useColdSearcher>
Большинство моих запросов ориентированы на ЦП, поскольку они включали множество запросов IN, а не запросов IN. Также есть условие для подсчета очков. Предполагая, что мои запросы будут по-прежнему зависеть от процессора.
Справка
Что я делаю неправильно, поскольку мой дельта-импорт вызывает такой высокий отклик.
- Размер индекса: 2 ГБ
- Серверов: 4
- Обслуживание: 100к в час
Кроме того, дельта-обновление приводит к обновлению 200 тысяч записей из 1 миллиона, поскольку одно из полей solr (последний вход в систему) часто меняется.
Мой дельта-импорт состоит из трех частей
а) удалить -- около 100
б) вставить -- около 30к
в) обновления -- около 1,9 тыс. (один или два столбца)
для вставки и обновления я использую обновление с помощью /update?&overwrite=true&wt=json
для удаленного stream.body=id:1 stream.body=id:1 .... и затем обновить
и в конце с помощью /update?commit=true&wt=json
Есть ли какой-либо оптимизированный способ сделать это (DIH лучше, но не оптимизирован с точки зрения производительности)