जैसा कि आप शायद जानते हैं हाल ही में Manticore 3.0 का एक नया संस्करण जारी किया गया ।
इस बेंचमार्क में देखते हैं कि यह 2.8 से बेहतर है या नहीं। परीक्षण वातावरण इस प्रकार था:
- Hacker News द्वारा संकलित टिप्पणियों का डेटासेट 2016 में CSV प्रारूप में
- OS: Ubuntu 18.04.1 LTS (Bionic Beaver), कर्नेल: 4.15.0-47-generic
- CPU: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz, 8 कोर
- 32G RAM
- HDD
- Docker संस्करण 18.09.2
- अनुक्रमण और खोज के लिए मूल छवि - 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
}
अनुक्रमण
अनुक्रमण में Manticore 3.0 के लिए 1303 सेकंड और Manticore 2.8.2 के लिए 1322 सेकंड लगे:
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 सामान्य शर्तों के माध्यम से जाने और प्रत्येक के लिए सभी दस्तावेज़ों को खोजने में कितना समय लगता है:
परिणाम हैं: Manticore 2.8 के लिए 77.61 सेकंड और Manticore 3.0 के लिए 71.79 सेकंड।
इस परीक्षण में 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 |
प्रबंधन | स्वयं | पार | पीजी | पेपर | कोर |
संबंधित | मार्केटिंग | सीखा गया | राय | चुनें | उच्च |
जाते हैं | नहीं | पोस्ट | जोखिम | मजबूत | ट्रैफिक |
900-950 | 950-1000 | ||||
सोचें | काफी अच्छा | ||||
इंटरफेस | युवा | ||||
प्रतिक्रिया | अंग्रेजी |
Manticore 2.8 औसतन 3.0 से 0.4% तेजी से है और 0.5% अधिक थ्रूपुट प्रदान करता है। यह त्रुटि सीमा के भीतर है।
टेस्ट 3 - संग्रह से शीर्ष 1000 सामान्य शर्तें समूहों के अनुसार + समूह 1-100 से 1 शर्त
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 |
other can | the no | on over | about his | should big | s ever |
no are | my use | other why | had day | had give | them let |
here some | been know | s where | how sure | been big | here e |
300-350 | 350-400 | 400-450 | 450-500 | 500-550 | 550-600 |
who developer | it book | now single | not access | at solution | their called |
work started | an ycombinator | from add | use sites | know microsoft | as mostly |
at hours | now value | also given | which built | than power | of early |
600-650 | 650-700 | 700-750 | 750-800 | 800-850 | 850-900 |
know science | should marketing | should kids | the numbers | their drive | who highly |
if agree | an minutes | t posts | time pg | there pick | has opportunity |
would related | has country | get posts | http education | also extremely | विषय हो सकता है |
900-950 | 950-1000 | ||||
किसी पार्टी | विशेष रूप से | ||||
केवल प्रतिक्रिया | कंप्यूटर हो सकता है | ||||
लोग फ़ायरफ़ॉक्स | कंप्यूटर के बारे में |
Manticore 3.0 औसतन 86.3% उच्च थ्रूपुट और 109.5% कम 95p विलंबता दिखाता है।
परीक्षण 4 - संग्रह से शीर्ष 1000 बार-बार आने वाली शर्तें, समूहों द्वारा विभाजित + समूह 1-100 से 1 शर्त, दोनों शर्तें एक वाक्य बनाने के लिए उद्धरण में रखी गईं
1-50 | 50-100 | 100-150 | 150-200 | 200-250 | 250-300 |
"काम नहीं" | "आप उनके" | "हम अभी भी" | "का अपना" | "मुझे प्राप्त करना" | "चला सकते हैं" |
"मेरे लिए" | "बहुत" | "आपकी नौकरी" | "उपयोग मिला" | "यहाँ बुरा" | "फिर कभी" |
"लेकिन वह" | "प्राप्त करो com" | "मैं पहले" | "अब दिन" | "उठो मदद" | "फिर बना रहे" |
300-350 | 350-400 | 400-450 | 450-500 | 500-550 | 550-600 |
"यह जानकारी" | "उन समुदाय" | "1 देखभाल" | "क्या मोबाइल" | "बाहर खुश" | "देखने के लिए" |
"com पक्ष" | "यह सर्वर" | "com स्थिति" | "एक विशाल" | "कैसे रोकें" | "s लिखा गया है" |
"वह देखता है" | "था x" | "समय बन गया" | "उन्होंने कोशिश की" | "चाहिए आता" | "अन्य ध्वनियाँ" |
600-650 | 650-700 | 700-750 | 750-800 | 800-850 | 850-900 |
"api द्वारा" | "जल्द ही नहीं" | "कु curious" | "कई बार था" | "फिक्स का" | "चीजें बिल्कुल" |
"तीन का" | "आने का उपयोग" | "जिसमें कमी" | "कौन ui" | "वे समझना" | "अधिकतम विषय" |
"वास्तव में बात करना" | "आवेदन बनाना" | "वास्तव में वातावरण" | "कौन है जो हायरिंग कर रहा है" | "महंगा है" | "अधिक कोर" |
900-950 | 950-1000 | ||||
"बस ढांचा" | "मुझे खेद है" | ||||
"काम संसाधन" | "लाभ चाहते हैं" | ||||
"उनके संसाधन" | "स आगे" |
Manticore v3 औसत में 5.6% अधिक तेज है और 95p लेटेंसी में 25.1% कम है।
टेस्ट 5 - 600-750 समूह से प्रत्येक 2 शर्तें अलग-अलग संघों के तहत
यह परीक्षण विभिन्न क्वेरी संघों के तहत थ्रूपुट में अंतर दिखाने का लक्ष्य रखता है। कुछ यादृच्छिक उदाहरण:
क्वेरी उदाहरण: “बात करने वाला दृश्य”, “कल्पना 15”, “कुण्डलित शब्द”
तो संस्करण 3 सभी संघों में औसतन 18% तेज है और औसत 95p लेटेंसी 15% कम है।
टेस्ट 6 - विभिन्न समूहों से 3-5 शर्तें
अब चलिए लंबे क्वेरियों के साथ प्रदर्शन की जांच करते हैं।
- 100-200 400-500 800-900 समूहों से 3 शर्तें
- 100-200 300-400 500-600 800-900 समूहों से 4 शर्तें
- 100-200 300-400 500-600 800-900 900-1000 समूहों से 5 शर्तें
क्वेरी उदाहरण:
3 शर्तें | 4 शर्तें | 5 शर्तें |
गरीब में करना | ये सर्च बेहतरीन पृष्ठभूमि | कारण परिणाम लिए गए विज्ञापन |
हमेशा प्रयास किया कहानियाँ | फिर से काम कर रहे टिप्पणियाँ लिंक | प्रक्रिया स्थिति तेज लाना |
नौकरी पाठ कार्ड | गूगल नंबर नेटवर्क फ़ंक्शन | दिनों को जाना ब्राउज़र ज्ञात वेतन |
संस्करण 3 फिर जीतता है: थ्रूपुट - 104% अधिक और 95p लेटेंसी 113% कम।
टेस्ट 7: 300-600 समूहों से 3 और शर्तें और 1 NOT समूह 300-400 से
अब चलिए 3 AND में एक NOT शर्त जोड़ें।
v3 में थ्रूपुट - 33.3% अधिक, 95p लेटेंसी - 32% कम।
निष्कर्ष
नया संस्करण सभी परीक्षणों में उल्लेखनीय रूप से उच्च प्रदर्शन दिखाता है सिवाय परीक्षण #2 के, लेकिन वहाँ अंतर त्रुटि सीमा (0.4-0.5%) के भीतर है।
The test is fully dockerized and
open sourced in our github
. The detailed results can be found
here
We’ll appreciate if you run the same tests on your hardware or contibute by adding more tests to the suite and let us know the results.
If you find any issue or inaccuracy don’t hesitate to let us know.
Thank you for reading!