Имеется сайт с большим количеством товаров. Количество порядка 50 млн.
Сейчас он работает на поисковике sphinx 3. до этого был sphinx 2.
Работает более менее нормально. Было решено перейти на мантикору.
Создали распределенный rt индекс (состоит из 8 штук), написали индексатор и отдельный скрипт обновления данных. Дополнительно настроили репликацию базы чтобы индекс был на одном сервере и а запросы на выборку к другому серверу, для распределения нагрузки.
Индексатор справляется отлично. за 3 часа все 50 млн товаров добавляет в индекс или обновляет. отсутствующие удаляет.
репликация так же работает отлично. Что-то изменили на первом сервере, тут же появляются данные на втором.
Но вот как только мы переключили запросы со sphinx на мантикору, тут же увидели увеличение времени генерации страниц. sphinx справляется раза в два быстрее чем мантикора.
Но заметили такую закономерность. запросы тормозят не все подряд а только некоторые. грубо говоря при отправке 200-300 запросов в сек среднее время отдачи 0.5 сек
если брать отдельные запросы (причем 200-300 не выключаем) и отправлять по одному, то они выполняются за 0,1 сек. и поймать запрос который выполняется долго просто не реально…
По мониторингу нагрузки нет. CPU выросло где-то а 10%, диски тоже работаю 30-40% от своих возможностей. Памяти 256 ГБ. Ядер проца 32 шт.
Подскажите в какую сторону смотреть?