Еластиц Сеарцх

Еластицсеарцх Најбоље праксе и повећање перформанси

Еластицсеарцх Најбоље праксе и повећање перформанси
У овом посту ћемо покушати да прикупимо најбоље праксе и такође које ствари треба избегавати када радимо са Еластицсеарцх-ом и уносимо податке у њега. Тако ћемо знати о чему све треба да водимо рачуна пре него што уопште почнемо да радимо са овим изврсним претраживачем.

Еластицсеарцх Бест Працтицес

Почећемо да радимо са најбољим праксама које ћемо следити са Еластицсеарцхом и које проблеме он може створити када избегнемо ове тачке. Хајде да почнемо.

Увек дефинишите ЕС мапирања

Једна ствар коју ЕС сигурно може да уради је да ради без мапирања. Дакле, када почнете да уносите ЈСОН податке у ваш ЕС индекс, он ће се превлачити по пољима података и створити одговарајуће мапирање. Ово изгледа директно и лако јер ЕС бира сам тип података. На основу ваших података, можда ће вам требати поље да буде одређеног типа података.

На пример, претпоставимо да индексирате следећи документ:


„ид“: 1,
"титле": "Инсталирајте ЕластицСеарцх на Убунту",
"линк": "хттпс: // линукхинт.цом / инсталл-еластицсеарцх-убунту / ",
"дате": "25.03.2018."

На овај начин, Еластицсеарцх ће поље „датум“ означити као тип „датум“. Али када индексирате следећи документ:


„ид“: 1,
"титле": "ЕС најбоље праксе и перформансе",
"дате": "На чекању"

Овај пут је промењена врста поља са датумом и ЕС ће избацити грешку и неће дозволити индексирање вашег документа. Да бисте олакшали ствари, можете индексирати неколико докумената, видети која поља индексира ЕС и дохватити мапирање са ове УРЛ адресе:

ГЕТ / индек_наме / доц_типе / _маппинг

На овај начин нећете морати конструисати и комплетно мапирање.

Заставе за производњу

Зове се подразумевано име кластера које ЕС покреће еластицсеарцх. Када у кластеру имате много чворова, добра је идеја задржати ознаке именовања што конзистентније, на пример:

кластер.име: апп_ес_продуцтион
чвор.име: апп_ес_ноде_001

Поред овога, подешавања опоравка за чворове су такође битна. Претпоставимо да се неки чворови у кластеру поново покрену због квара, а неки чворови мало након других чворова. Да би подаци били конзистентни између свих ових чворова, мораћемо да покренемо програм доследности који ће све кластере одржати у доследном стању.

пролаз.рецовери_афтер_нодес: 10

Такође је корисно када кластеру унапред кажете колико ће чворова бити присутно у кластеру и колико времена ће им требати:

пролаз.очекивани_чворови: 20
пролаз.опоравак_по_времену: 7м

Уз исправну конфигурацију, опоравак који би трајао сатима може потрајати само минут и може уштедети много новца било којој компанији.

Осигурање капацитета

Важно је знати колико ће простора заузети ваши подаци и брзином којом се уливају у Еластицсеарцх, јер ће то одлучити о количини РАМ-а која ће вам требати на сваком чвору кластера и главном чвору.

Наравно, не постоје посебне смернице за постизање потребних бројева, али можемо предузети неке кораке који нам пружају добру идеју. Један од корака биће симулирати случај употребе. Направите ЕС кластер и храните га са скоро истом брзином података као што бисте очекивали од вашег производног подешавања. Концепт почните велико и смањите такође вам може помоћи да будете доследни око тога колико је простора потребно.

Велики предлошци

Када дефинишете индексиране велике предлошке, увек ћете се суочити са проблемима у вези са синхронизацијом предлошка на различитим чворовима кластера. Увек имајте на уму да ће образац морати поново да се дефинише кад год дође до промене модела података. Много је боља идеја да нека шаблони буду динамични. Динамички предлошци аутоматски ажурирају мапирање поља на основу мапирања која смо раније дефинисали и нових поља. Имајте на уму да не постоји замена за држање шаблона што је могуће мањим.

2Употреба млоцкалл-а на Убунту серверима

Линук користи процес замјене када му треба меморија за нове странице. Замјена ствари успорава јер су дискови спорији од меморије. Тхе млоцкалл својство у ЕС конфигурацији говори ЕС-у да не замењује своје странице из меморије чак и ако за сада нису потребне. Ово својство се може подесити у ИАМЛ датотеци:

боотстрап.млоцкалл: тачно

У ЕС в5.к + верзије, ово својство је промењено у:

боотстрап.лоцк_лоцк: тачно

Ако користите ово својство, само проверите да ли ЕС пружате довољно велику меморију хрпе користећи -ДКСмк опција или ЕС_ХЕАП_СИЗЕ.

Смањите ажурирања мапирања

На перформансе кластера мало утиче сваки пут када на свом ЕС кластеру поднесете захтеве за ажурирање мапирања. Ако не можете ово да контролишете и даље желите да ажурирате мапирања, можете да користите својство у ЕС ИАМЛ конфигурационој датотеци:

индекси.кластер.сенд_рефресх_маппинг: нетачно

Када је захтев за ажурирање модела у реду на чекању за главни чвор и он пошаље податке са старим мапирањем на чворове, он такође мора да пошаље захтев за ажурирање касније свим чворовима. Ово може успорити ствари. Када горње својство поставимо на фалсе, ово има главну логику да је извршено ажурирање мапирања и да неће послати захтев за ажурирање чворовима. Имајте на уму да је ово корисно само ако редовно вршите пуно промена у својим мапирањима.

Оптимизовани Тхреад-Поол

ЕС чворови имају много спремишта нити како би се побољшало управљање нитима у чвору. Али постоје ограничења о томе колико података свака нит може да води рачуна. Да бисмо пратили ову вредност, можемо користити ЕС својство:

тхреадпоол.товар.куеуе_сизе: 2000

Ово обавештава ЕС о броју захтева у делитви који се могу ставити у ред за извршење у чвору када не постоји нит за обраду захтева. Ако број задатака пређе ову вредност, добићете а РемотеТранспортЕкцептион. Што је већа ова вредност, већа количина простора за хрпу биће потребна на вашој машини чворова и потрошиће се и ЈВМ гомила. Такође, требали бисте држати свој код спреман у случају да се овај изузетак избаци.

Закључак

У овој лекцији смо погледали како можемо побољшати перформансе Еластицсеарцх-а избегавајући уобичајене и не тако честе грешке које људи чине. Прочитајте више чланака Еластицсеарцх о ЛинукХинт-у.

Портови комерцијалних игара отвореног кода
Бесплатне рекреације покретачких игара са отвореним кодом и више платформи могу се користити за играње старих, као и неких прилично недавних наслова и...
Најбоље игре командне линије за Линук
Командна линија није само ваш највећи савезник када користите Линук - она ​​такође може бити извор забаве јер је можете користити за играње многих заб...
Најбоље апликације за мапирање гамепада за Линук
Ако волите да играте игре на Линуку са гамепадом уместо са типичним системом за унос тастатуре и миша, за вас постоје неке корисне апликације. Многе и...