Как вы, вероятно, знаете, недавно вышло новое обновление Manticore 3.0 было выпущено .
В этом бенчмарке давайте посмотрим, стало ли оно лучше, чем 2.8. Тестовая среда была следующей:
- Набор данных курируемых комментариев Hacker News 2016 года в формате CSV
- ОС: Ubuntu 18.04.1 LTS (Bionic Beaver), ядро: 4.15.0-47-generic
- ЦП: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz, 8 ядер
- 32 ГБ ОЗУ
- HDD
- Docker версии 18.09.2
- Базовый образ для индексации и searchd - Ubuntu:bionic
- stress-tester для бенчмаркинга
Конфигурация идентична для обеих версий Manticore:
source full
{
type = csvpipe
csvpipe_command = cat /root/hacker_news_comments.prepared.csv|grep -v line_number
csvpipe_attr_uint = story_id
csvpipe_attr_timestamp = story_time
csvpipe_field = story_text
csvpipe_field = story_author
csvpipe_attr_uint = comment_id
csvpipe_field = comment_text
csvpipe_field = comment_author
csvpipe_attr_uint = comment_ranking
csvpipe_attr_uint = author_comment_count
csvpipe_attr_uint = story_comment_count
}
index full
{
path = /root/idx_full
source = full
html_strip = 1
mlock = 1
}
searchd
{
listen = 9306:mysql41
query_log = /root/query.log
log = /root/searchd.log
pid_file = /root/searchd.pid
binlog_path =
qcache_max_bytes = 0
}
Индексирование
Индексирование заняло 1303 секунды для Manticore 3.0 и 1322 секунды для Manticore 2.8.2:
Manticore 3.0:
indexing index 'full'...
collected 11654429 docs, 6198.6 MB
creating lookup: 11654.4 Kdocs, 100.0% done
creating histograms: 11654.4 Kdocs, 100.0% done
sorted 1115.7 Mhits, 100.0% done
total 11654429 docs, 6198580642 bytes
total <b>1303.470</b> sec, 4755444 bytes/sec, 8941.07 docs/sec
total 22924 reads, 16.605 sec, 238.4 kb/call avg, 0.7 msec/call avg
total 11687 writes, 13.532 sec, 855.1 kb/call avg, 1.1 msec/call avg
Manticore 2.8:
indexing index 'full'...
collected 11654429 docs, 6198.6 MB
sorted 1115.7 Mhits, 100.0% done
total 11654429 docs, 6198580642 bytes
total <b>1322.239</b> sec, 4687939 bytes/sec, 8814.15 docs/sec
total 11676 reads, 15.248 sec, 452.6 kb/call avg, 1.3 msec/call avg
total 9431 writes, 12.800 sec, 1065.3 kb/call avg, 1.3 msec/call avg
Итак, с этим набором данных и схемой индексации индексирование в 3.0 быстрее, чем в 2.8 примерно на 1,5%.
Тесты производительности
Обе инстанции были разогреты перед тестированием.
Manticore 3.0:
total 4.7G
drwx------ 2 root root 4.0K May 14 17:41 .
drwxr-xr-x 3 root root 4.0K May 14 17:40 ..
-rw-r--r-- 1 root root 362M May 14 17:24 idx_full.spa
-rw-r--r-- 1 root root 3.1G May 14 17:36 idx_full.spd
-rw-r--r-- 1 root root 90M May 14 17:36 idx_full.spe
-rw-r--r-- 1 root root 628 May 14 17:36 idx_full.sph
-rw-r--r-- 1 root root 29K May 14 17:24 idx_full.sphi
-rw-r--r-- 1 root root 6.5M May 14 17:36 idx_full.spi
-rw------- 1 root root 0 May 14 17:41 idx_full.spl
-rw-r--r-- 1 root root 1.4M May 14 17:24 idx_full.spm
-rw-r--r-- 1 root root 1.1G May 14 17:36 idx_full.spp
-rw-r--r-- 1 root root 59M May 14 17:24 idx_full.spt
Manticore 2.8:
total 4.6G
drwx------ 2 root root 4.0K May 16 18:38 .
drwxr-xr-x 3 root root 4.0K May 14 17:43 ..
-rw-r--r-- 1 root root 362M May 14 17:24 idx_full.spa
-rw-r--r-- 1 root root 3.1G May 14 17:36 idx_full.spd
-rw-r--r-- 1 root root 27M May 14 17:36 idx_full.spe
-rw-r--r-- 1 root root 601 May 14 17:36 idx_full.sph
-rw-r--r-- 1 root root 6.3M May 14 17:36 idx_full.spi
-rw-r--r-- 1 root root 0 May 14 17:24 idx_full.spk
-rw------- 1 root root 0 May 16 18:38 idx_full.spl
-rw-r--r-- 1 root root 0 May 14 17:24 idx_full.spm
-rw-r--r-- 1 root root 1.1G May 14 17:36 idx_full.spp
-rw-r--r-- 1 root root 1 May 14 17:36 idx_full.sps
Тест 1 - время обработки топ-1000 терминов из коллекции
Сначала давайте просто проведем простой тест - сколько времени потребуется, чтобы пройти через топ-1000 частых терминов коллекции и найти все документы для каждого:
Результаты таковы: 77.61 секунды для Manticore 2.8 и 71.79 секунды для Manticore 3.0.
Таким образом, в этом тесте Manticore Search 3.0 быстрее, чем предыдущая версия, на 8%.
Тест 2 - топ-1000 частых терминов из коллекции, разбитых по группам (топ 1-50, топ 50-100 и т.д.)
Теперь давайте посмотрим, лучше ли 3.0 в обработке терминов из разных групп частот. Ниже вы можете найти несколько случайных примеров из каждой из групп:
1-50 | 50-100 | 100-150 | 150-200 | 200-250 | 250-300 |
one | much | our | every | less | pay |
with | действительно | в | без | другой | понять |
был | другой | всё ещё | вниз | уже | каждый |
300-350 | 350-400 | 400-450 | 450-500 | 500-550 | 550-600 |
поиска | разработчиков | создавать | интерес | общий | сопредельный |
причина | целый | данный | попробовал | модель | офис |
ничего | имя | друзья | доступ | количество | оплаченный |
600-650 | 650-700 | 700-750 | 750-800 | 800-850 | 850-900 |
управление | сами | по | pg | бумага | ядерный |
связано | маркетинг | узнал | мнение | выбрать | высоко |
идёт | если не | посты | риск | сильный | трафик |
900-950 | 950-1000 | ||||
размышления | приемлемый | ||||
интерфейс | молодой | ||||
ответ | английский |
Manticore 2.8 в среднем быстрее, чем 3.0 на 0,4% по задержке и обеспечивает на 0,5% более высокую пропускную способность. Это находится в пределах диапазона ошибки.
Тест 3 - топ 1000 часто встречающихся терминов из коллекции, разбитой на группы + 1 термин из группы 1-100
Let’s see how it works when you have one very frequent term and another less frequent from different frequency groups. The examples are:
1-50 | 50-100 | 100-150 | 150-200 | 200-250 | 250-300 |
другие могут | тот нет | на через | о его | должен большой | s всегда |
нет есть | мой use | другие почему | было день | было дать | им позволить |
здесь некоторые | были известны | s где | как точно | было большое | здесь e |
300-350 | 350-400 | 400-450 | 450-500 | 500-550 | 550-600 |
кто разработчик | это book | сейчас один | нет доступа | на solution | их назвали |
работа началась | один ycombinator | из add | использовать sites | знает microsoft | как в основном |
в часах | сейчас value | также дано | который built | чем power | ранней |
600-650 | 650-700 | 700-750 | 750-800 | 800-850 | 850-900 |
знает науку | должен marketing | должны kids | числа | их drive | кто высоко |
если agree | несколько minutes | t posts | time pg | там pick | есть opportunity |
бы связанные | есть country | получить posts | http education | также extremely | мог бы тема |
900-950 | 950-1000 | ||||
любая сторона | по особенно | ||||
только ответ | могли бы компьютеры | ||||
люди firefox | о компьютерах |
1-50 | 50-100 | 100-150 | 150-200 | 200-250 | 250-300 |
"работа не" | "ты их" | "мы все еще" | "свой" | "я получаю" | "мог бы запустить" |
"мой для" | "самый" | "твоя работа" | "используй получил" | "здесь плохо" | "тогда когда-либо" |
"но это" | "получить ком" | "я первый" | "сейчас день" | "вверх помощь" | "тогда делать" |
300-350 | 350-400 | 400-450 | 450-500 | 500-550 | 550-600 |
"это информация" | "их сообщество" | "1 забота" | "что мобильный" | "поздравляю" | "смотреть" |
"ком сторона" | "этот сервер" | "ком позиция" | "при огромном" | "как остановить" | "написано" |
"он смотрит" | "был x" | "время стать" | "попробовали" | "должен придти" | "другие звуки" |
600-650 | 650-700 | 700-750 | 750-800 | 800-850 | 850-900 |
"по api" | "не скоро" | "заинтересован" | "было много" | "исправление" | "вещи абсолютно" |
"из трех" | "используйте приходящие" | "это недостаток" |