Elasticsearch pūʻulu 200 TB+

Elasticsearch pūʻulu 200 TB+

Nui ka poʻe e hakakā me Elasticsearch. Akā he aha ka hopena inā makemake ʻoe e hoʻohana iā ia e mālama i nā lāʻau "ma kahi leo nui"? A ʻaʻohe ʻeha hoʻi ke ʻike i ka hāʻule ʻole o kekahi o nā kikowaena data? He aha ke ʻano o ka hoʻolālā e hana ai ʻoe, a he aha nā lua e hina ai ʻoe?

Ua hoʻoholo mākou ma Odnoklassniki e hoʻohana i ka elasticsearch e hoʻoponopono i ka pilikia o ka hoʻokele lāʻau, a ke kaʻana nei mākou i kā mākou ʻike me Habr: e pili ana i ka hoʻolālā a me nā pitfalls.

ʻO wau ʻo Pyotr Zaitsev, hana wau ma ke ʻano he luna ʻōnaehana ma Odnoklassniki. Ma mua o kēlā, he luna hoʻi au, hana pū me Manticore Search, Sphinx search, Elasticsearch. Malia paha, inā ʻike ʻia kahi ʻimi ʻē aʻe, e hana pū nō wau me ia. Ke komo pū nei au i kekahi mau papahana open source ma ke kumu manawaleʻa.

I koʻu hiki ʻana i Odnoklassniki, ʻōlelo ʻole wau i ka hālāwai ninaninau e hiki iaʻu ke hana pū me Elasticsearch. Ma hope o koʻu loaʻa ʻana o ia mea a hoʻopau i kekahi mau hana maʻalahi, ua hāʻawi ʻia iaʻu ka hana nui o ka hoʻoponopono ʻana i ka ʻōnaehana hoʻokele lāʻau e noho nei i kēlā manawa.

koi

Ua hoʻokumu ʻia nā pono ʻōnaehana penei:

  • E hoʻohana ʻia ʻo Graylog e like me ke alo. No ka mea ua ʻike mua ka ʻoihana i ka hoʻohana ʻana i kēia huahana, ua ʻike nā mea polokalamu a me nā mea hoʻāʻo, ua kamaʻāina a maʻalahi iā lākou.
  • Ka nui o ka ʻikepili: ma ka awelika 50-80 tausani mau memo i kēlā me kēia kekona, akā inā haki kekahi mea, a laila ʻaʻole i kaupalena ʻia ke kaʻa e kekahi mea, hiki ke 2-3 miliona mau laina i kekona.
  • Ma ke kūkākūkā ʻana me nā mea kūʻai aku i nā koi no ka wikiwiki o ka hana ʻana i nā nīnau hulina, ua ʻike mākou ʻo ke ʻano maʻamau o ka hoʻohana ʻana i ia ʻōnaehana penei: ke ʻimi nei ka poʻe i nā lāʻau o kā lākou noi no nā lā ʻelua i hala a ʻaʻole makemake e kali ʻoi aku ma mua o kahi. lua no ka hopena o kahi nīnau i haku ʻia.
  • Ua koi nā luna hoʻomalu e maʻalahi ka hoʻonui ʻia ʻana o ka ʻōnaehana inā pono, me ke koi ʻole iā lākou e ʻimi hohonu i ke ʻano o ka hana.
  • No laila, ʻo ka hana mālama wale nō e koi ai kēia mau ʻōnaehana i kēlā me kēia manawa, ʻo ia ke hoʻololi i kekahi mau lako.
  • Eia kekahi, loaʻa iā Odnoklassniki kahi kuʻuna ʻenehana maikaʻi loa: ʻo kēlā me kēia lawelawe a mākou e hoʻomaka ai e ola i kahi hemahema o ka kikowaena data (e hikiwawe, ʻaʻole i hoʻolālā ʻia a i kēlā me kēia manawa).

ʻO ke koi hope loa i ka hoʻokō ʻana i kēia papahana ke kumu kūʻai nui loa iā mākou, aʻu e kamaʻilio e pili ana i nā kikoʻī.

Pōʻakolu

Hana mākou ma nā kikowaena ʻikepili ʻehā, ʻoiai ʻo Elasticsearch data nodes hiki ke loaʻa i ʻekolu wale nō (no nā kumu kumu ʻole ʻenehana).

Loaʻa i kēia mau kikowaena ʻikepili ʻehā ma kahi o 18 tausani mau kumu log like ʻole - nā lako, nā ipu, nā mīkini virtual.

Hiʻona koʻikoʻi: hoʻomaka ka pūʻulu i loko o nā pahu ʻO Podman ʻaʻole ma nā mīkini kino, akā ma luna ponoʻī ʻohu huahana one-cloud. Hoʻopaʻa ʻia nā pahu pahu 2 cores, e like me 2.0Ghz v4, me ka hiki ke hana hou i nā cores i koe inā ʻaʻole lākou.

ʻO ia hoʻi:

Elasticsearch pūʻulu 200 TB+

Kumuhana ʻlelo

Ua ʻike mua au i ke ʻano maʻamau o ka hopena penei:

  • 3-4 VIPs aia ma hope o ka A-record o ka Graylog domain, ʻo ia ka helu wahi i hoʻouna ʻia ai nā lāʻau.
  • ʻO kēlā me kēia VIP he mea kaulike LVS.
  • Ma hope o ia, hele nā ​​lāʻau i ka pākaukau Graylog, aia kekahi o nā ʻikepili i ka format GELF, ʻo kekahi ma ka format syslog.
  • A laila kākau ʻia kēia mau mea a pau i nā pūʻulu nui i kahi pākahi o nā mea hoʻonohonoho Elasticsearch.
  • A ʻo lākou hoʻi, e hoʻouna i nā noi kākau a heluhelu i nā nodes ʻikepili pili.

Elasticsearch pūʻulu 200 TB+

Kau'ōlelo

ʻAʻole paha maopopo ka poʻe āpau i nā huaʻōlelo, no laila makemake wau e noʻonoʻo iki.

Loaʻa i ka Elasticsearch nā ʻano nodes - master, coordinator, data node. ʻElua ʻano ʻē aʻe no ka hoʻololi ʻana i ka log like ʻole a me ke kamaʻilio ʻana ma waena o nā pūʻulu like ʻole, akā ua hoʻohana mākou i nā mea i helu ʻia.

ka haku
Hoʻopili ʻo ia i nā node a pau i loko o ka pūʻulu, mālama i kahi palapala hōʻuluʻulu hou i kēia lā a puʻunaue ia ma waena o nā nodes, kaʻina hana loiloi hanana, a hana i nā ʻano mālama hale ākea ākea.

Luna Hoʻoponopono
Hana i hoʻokahi hana hoʻokahi: ʻae i ka heluhelu a kākau ʻana i nā noi mai nā mea kūʻai aku a e ala i kēia kaʻa. Inā loaʻa kahi noi kākau, ʻoi aku ka nui, e nīnau ʻo ia i ka haku i ka ʻāpana o ka papa kuhikuhi kūpono e hoʻokomo ai, a e hoʻohuli hou i ka noi.

Node ʻikepili
Mālama i ka ʻikepili, hana i nā nīnau hulina e hōʻea mai ana mai waho mai a hana i nā hana ma nā shards aia ma luna.

ʻO Graylog
He mea kēia e like me ka hui ʻana o Kibana me Logstash i kahi waihona ELK. Hoʻohui ʻo Graylog i kahi UI a me kahi pipeline hoʻoponopono lāʻau. Ma lalo o ka puʻupuʻu, holo ʻo Graylog iā Kafka a me Zookeeper, e hāʻawi ana i ka pilina me Graylog ma ke ʻano he hui. Hiki iā Graylog ke hūnā i nā lāʻau (Kafka) inā ʻaʻole i loaʻa ʻo Elasticsearch a hoʻihoʻi hou i ka heluhelu a kākau ʻana i nā noi, hui a hōʻailona i nā lāʻau e like me nā lula i kuhikuhi ʻia. E like me Logstash, hiki iā Graylog ke hoʻololi i nā lālani ma mua o ke kākau ʻana iā Elasticsearch.

Eia kekahi, loaʻa iā Graylog kahi ʻike lawelawe i kūkulu ʻia e hiki ai, e pili ana i hoʻokahi node Elasticsearch i loaʻa, e kiʻi i ka palapala cluster holoʻokoʻa a kānana iā ia ma kahi kikoʻī kikoʻī, e hiki ai ke kuhikuhi i nā noi i nā pahu kikoʻī.

ʻIke ʻia he mea like me kēia:

Elasticsearch pūʻulu 200 TB+

He kiʻi paʻi kiʻi kēia mai kekahi laʻana. Maanei mākou e kūkulu ai i kahi histogram e pili ana i ka hulina hulina a hōʻike i nā lālani kūpono.

Papa Kuhikuhi

I ka hoʻi ʻana i ka ʻōnaehana ʻōnaehana, makemake wau e noʻonoʻo hou i ke ʻano o kā mākou kūkulu ʻana i ke kumu hoʻohālike i hana pono nā mea āpau.

Ma ke kiʻikuhi ma luna, ʻo kēia ka pae haʻahaʻa: Elasticsearch data nodes.

ʻO kahi index kahi hui virtual nui i hana ʻia me nā shards Elasticsearch. ʻO ia iho, ʻo kēlā me kēia o nā shards ʻaʻohe mea ʻē aʻe ma mua o kahi kuhikuhi Lucene. A ʻo kēlā me kēia papa kuhikuhi Lucene, ma ka huli ʻana, aia i hoʻokahi a ʻoi aku paha nā ʻāpana.

Elasticsearch pūʻulu 200 TB+

I ka hoʻolālā ʻana, ua manaʻo mākou i mea e hoʻokō ai i ke koi no ka heluhelu wikiwiki ʻana i ka nui o ka ʻikepili, pono mākou e "hoʻolaha" i kēia ʻikepili ma waena o nā nodes data.

ʻO kēia ka hopena i ka ʻoiaʻiʻo o ka helu o nā shards i kēlā me kēia index (me nā replicas) pono e like loa me ka helu o nā nodes ʻikepili. ʻO ka mea mua, i mea e hōʻoia ai i kahi helu replication e like me ʻelua (ʻo ia hoʻi, hiki iā mākou ke nalowale i ka hapalua o ka pūpū). A, ʻo ka lua, i mea e hoʻoponopono ai i nā noi heluhelu a kākau ma ka hapa liʻiliʻi o ka hui.

Ua hoʻoholo mua mākou i ka manawa mālama e like me 30 mau lā.

Hiki ke hōʻike kiʻi ʻia ka māhele ʻana o nā shards penei:

Elasticsearch pūʻulu 200 TB+

ʻO ka ʻāpana ʻeleʻele ʻeleʻele holoʻokoʻa he index. ʻO ka ʻāpana ʻulaʻula hema i loko, ʻo ia ka ʻāpana mua, ʻo ka mua ma ka index. A ʻo ka huinahalike polū he ʻāpana kope. Aia lākou ma nā kikowaena ʻikepili like ʻole.

Ke hoʻohui mākou i kahi shard ʻē aʻe, hele ia i ke kikowaena data ʻekolu. A, i ka hopena, loaʻa iā mākou kēia hoʻolālā, e hiki ai ke nalowale DC me ka ʻole o ka nalowale ʻana o ka ʻikepili.

Elasticsearch pūʻulu 200 TB+

ʻO ka hoʻololi ʻana o nā indexes, i.e. ka hana ʻana i kahi kuhikuhi hou a holoi i ka mea kahiko loa, ua like mākou me 48 mau hola (e like me ke ʻano o ka hoʻohana ʻana i ka index: ʻimi pinepine ʻia nā hola 48 hope loa).

Ma muli o kēia mau kumu:

Ke hōʻea mai kahi noi hulina i kahi kikoʻī ʻikepili kikoʻī, a laila, mai kahi hiʻohiʻona o ka hana, ʻoi aku ka maikaʻi ke nīnau ʻia kahi shard, inā hoʻohālikelike ʻia kona nui me ka nui o ka ʻūhā o ka node. ʻAe kēia iā ʻoe e mālama i ka ʻāpana "wela" o ka index i kahi puʻu a hiki koke iā ia. Ke nui nā "'āpana wela", e hoʻohaʻahaʻa ka wikiwiki o ka huli ʻana.

Ke hoʻomaka ka node e hoʻokō i kahi hulina hulina ma hoʻokahi shard, hoʻokaʻawale ia i kekahi mau lola e like me ka helu o nā cores hyperthreading o ka mīkini kino. Inā pili ka ʻimi hulina i ka nui o nā shards, a laila e ulu like ka nui o nā milo. He hopena maikaʻi ʻole kēia i ka wikiwiki o ka huli ʻana a hoʻopilikia maikaʻi ʻole i ka helu ʻana i nā ʻikepili hou.

No ka hāʻawi ʻana i ka latency huli pono, ua hoʻoholo mākou e hoʻohana i kahi SSD. No ka hoʻokō wikiwiki ʻana i nā noi, pono nā mīkini i hoʻokipa i kēia mau ipu i ka liʻiliʻi he 56 cores. Ua koho ʻia ke kiʻi o 56 ma ke ʻano he kumu kūpono kūpono e hoʻoholo ai i ka nui o nā kaula a Elasticsearch e hana ai i ka wā o ka hana. Ma Elasitcsearch, hilinaʻi nui nā ʻāpana kolamu thread i ka helu o nā cores i loaʻa, a laila pili pono i ka helu o nā nodes i loko o ka pūʻulu e like me ke kumu "ʻuʻuku nā cores - ʻoi aku nā nodes".

ʻO ka hopena, ua ʻike mākou ma ka awelika he 20 gigabytes ke kaumaha o kahi shard, a aia he 1 ​​​​shards i kēlā me kēia index. No laila, inā hoʻololi mākou iā lākou i hoʻokahi manawa i kēlā me kēia 360 hola, a laila loaʻa iā mākou he 48 o lākou. Loaʻa i kēlā me kēia papa kuhikuhi ka ʻikepili no 15 mau lā.

Kaapuni palapala a me ka heluhelu ikepili

E noʻonoʻo kākou pehea e hoʻopaʻa ʻia ai ka ʻikepili ma kēia ʻōnaehana.

E ʻōlelo kākou ua hiki mai kekahi noi mai Graylog i ka mea hoʻoponopono. No ka laʻana, makemake mākou e kuhikuhi i nā lālani 2-3 tausani.

Ua loaʻa i ka coordinator kahi noi mai Graylog, nīnau i ka haku: "Ma ka noi kuhikuhi, ua kuhikuhi mākou i kahi kuhikuhi, akā ʻaʻole i kuhikuhi ʻia ka shard e kākau ai."

Pane ka haku: "Kākau i kēia ʻike i ka helu shard 71," a laila e hoʻouna pololei ʻia i ka node data pili, kahi i loaʻa ai ka helu 71.

Ma hope o ka hoʻopili ʻana i ka log transaction i kahi replica-shard, aia ma kahi kikowaena data ʻē aʻe.

Elasticsearch pūʻulu 200 TB+

Hiki mai kahi noi huli mai Graylog i ka mea hoʻoponopono. Hoʻihoʻi hou ka coordinator iā ia e like me ka index, ʻoiai e hāʻawi ʻo Elasticsearch i nā noi ma waena o ka primer-shard a me ka replica-shard me ka hoʻohana ʻana i ke kumu round-robin.

Elasticsearch pūʻulu 200 TB+

Ua pane like ʻole nā ​​nodes 180, a ʻoiai lākou e pane ana, ke hōʻiliʻili nei ka mea hoʻonohonoho i ka ʻike i "kuhu ʻia" e nā nodes data wikiwiki. Ma hope o kēia, i ka hiki ʻana mai o ka ʻike a pau, a i ʻole ke noi ʻana i ka manawa pau, hāʻawi pololei ia i nā mea āpau i ka mea kūʻai aku.

ʻO kēia ʻōnaehana holoʻokoʻa ma nā kaʻina ʻimi hulina no nā hola he 48 i hala ma 300-400ms, me ka ʻole o kēlā mau nīnau me ka wildcard alakaʻi.

Nā pua me Elasticsearch: hoʻonohonoho Java

Elasticsearch pūʻulu 200 TB+

No ka hana ʻana i nā mea a pau e like me kā mākou i makemake mua ai, ua lōʻihi loa mākou i ka hoʻopau ʻana i nā ʻano mea like ʻole i ka hui.

ʻO ka hapa mua o nā pilikia i ʻike ʻia e pili ana i ke ʻano o ka hoʻonohonoho mua ʻana o Java e ka paʻamau ma Elasticsearch.

Pilikia hoʻokahi
Ua ʻike mākou i kahi helu nui loa o nā hōʻike ma ka pae Lucene, i ka wā e holo ana nā hana hope, ʻaʻole i hoʻohui ʻia ka māhele Lucene me kahi hewa. I ka manawa like, ua maopopo i loko o nā lāʻau he hewa OutOfMemoryError kēia. Ua ʻike mākou mai ka telemetry ua manuahi ka ʻūhā, a ʻaʻole maopopo i ke kumu o ka hāʻule ʻana o kēia hana.

Ua ʻike ʻia ka hui ʻana o Lucene index ma waho o ka ʻūhā. A ua kaupalena ʻia nā ipu e pili ana i nā kumuwaiwai i hoʻopau ʻia. Hiki i ka puʻu wale ke komo i loko o kēia mau kumuwaiwai (ua like ka nui o ka heap.size me RAM), a ua hāʻule kekahi mau hana o waho me ka hewa hoʻomanaʻo ʻana inā no kekahi kumu ʻaʻole lākou i komo i ka ~500MB i koe ma mua o ka palena.

He mea liʻiliʻi loa ka hoʻoponopono: ua hoʻonui ʻia ka nui o ka RAM i loaʻa no ka ipu, a laila poina mākou ua loaʻa iā mākou nā pilikia.

Pilikia ʻelua
4-5 mau lā ma hope o ka hoʻomaka ʻana o ka puʻupuʻu, ʻike mākou ua hoʻomaka ka hāʻule ʻana o nā nodes ʻikepili mai ka pūʻulu a komo i loko ma hope o 10-20 kekona.

I ka wā i hoʻomaka ai mākou e noʻonoʻo, ua ʻike ʻia ʻaʻole mālama ʻia kēia hoʻomanaʻo off-heap ma Elasticsearch ma kekahi ʻano. I ko mākou hāʻawi ʻana i ka hoʻomanaʻo hou aku i ka ipu, ua hiki iā mākou ke hoʻopiha i nā loko buffer pololei me nā ʻike like ʻole, a ua holoi ʻia ma hope o ka hoʻokuʻu ʻia ʻana o ka GC kikoʻī mai Elasticsearch.

I kekahi mau hihia, ua lōʻihi ka lōʻihi o kēia hana, a i kēia manawa ua hiki i ka hui ke hōʻailona i kēia node i waho. Ua wehewehe maikaʻi ʻia kēia pilikia ʻaneʻi.

Penei ka hopena: ua kaupalena mākou i ka hiki iā Java ke hoʻohana i ka nui o ka hoʻomanaʻo ma waho o ka puʻu no kēia mau hana. Ua kaupalena mākou iā ia i 16 gigabytes (-XX: MaxDirectMemorySize=16g), me ka hōʻoia ʻana ua kāhea pinepine ʻia ʻo GC kikoʻī a ʻoi aku ka wikiwiki o ka hana ʻana, no laila ʻaʻole e hoʻopau hou i ka pūpū.

Pilikia ʻekolu
Inā manaʻo ʻoe ua pau nā pilikia me nā "nodes e haʻalele ana i ka pūpū i ka manawa i manaʻo ʻole ʻia", ua kuhihewa ʻoe.

Ke hoʻonohonoho mākou i ka hana me nā indexes, ua koho mākou i mmapfs i e hoemi i ka manawa huli ma nā ʻāpana hou me ka mahele nui. He hewa kēia, no ka mea, i ka wā e hoʻohana ai i ka mmapfs ua paʻi ʻia ka faila i RAM, a laila hana mākou me ka faila palapala. Ma muli o kēia, ua ʻike ʻia i ka wā e hoʻāʻo ai ka GC e hoʻōki i nā kaula i ka noi, hele mākou i kahi wahi palekana no ka manawa lōʻihi loa, a ma ke ala i laila, pau ka noi i ka pane ʻana i nā noi a ka haku e pili ana i ke ola ʻana. . No laila, manaʻo ka haku ʻaʻole i loaʻa hou ka node i ka hui. Ma hope o kēia, ma hope o 5-10 kekona, hana ka ʻōpala, ola ka node, komo hou i ka hui a hoʻomaka i ka hoʻomaka ʻana i nā shards. Ua like loa ia me "ka hana i kūpono iā mākou" a ʻaʻole kūpono i kekahi mea koʻikoʻi.

No ka hoʻopau ʻana i kēia ʻano, ua hoʻololi mua mākou i nā niofs maʻamau, a laila, i ko mākou neʻe ʻana mai ka lima o nā mana o Elastic i ke ono, ua hoʻāʻo mākou i nā hybridfs, kahi i hoʻopuka ʻole ʻia ai kēia pilikia. Hiki iā ʻoe ke heluhelu hou aku e pili ana i nā ʻano waihona maanei.

Pilikia eha
A laila aia kekahi pilikia hoihoi loa a mākou i mālama ai no ka manawa hoʻopaʻa. Ua hopu mākou iā ia no 2-3 mau mahina no ka mea ʻaʻole hiki ke hoʻomaopopo ʻia kona ʻano.

I kekahi manawa hele ko mākou mau hoa hoʻonohonoho i Full GC, maʻamau ma hope o ka ʻaina awakea, ʻaʻole hoʻi mai laila mai. I ka manawa like, i ka wā e hoʻopaʻa inoa ai i ka hoʻopaneʻe GC, ua like ia me kēia: ua holo maikaʻi nā mea a pau, maikaʻi, maikaʻi, a laila hele koke nā mea āpau.

I ka wā mua, manaʻo mākou he mea hoʻohana hewa mākou e hoʻomaka ana i kekahi ʻano noi e kīkē ana i ka coordinator mai ke ʻano hana. Ua hoʻopaʻa inoa mākou i nā noi no ka manawa lōʻihi, e hoʻāʻo ana e ʻike i ka mea e hana nei.

ʻO ka hopena, ua ʻike ʻia i ka manawa e hoʻomaka ai kahi mea hoʻohana i kahi noi nui, a hiki i kahi coordinator Elasticsearch kikoʻī, ua pane aku kekahi mau nodes ma mua o nā mea ʻē aʻe.

A ʻoiai ke kali nei ka mea hoʻoponopono i ka pane mai nā nodes a pau, hōʻiliʻili ʻo ia i nā hopena i hoʻouna ʻia mai nā nodes i pane mua. No GC, ʻo ia ke ʻano o ka loli wikiwiki ʻana o kā mākou hoʻohana ʻana i ka puʻu. A ʻaʻole hiki i ka GC a mākou i hoʻohana ai i kēia hana.

ʻO ka hoʻoponopono wale nō i loaʻa iā mākou e hoʻololi i ke ʻano o ka hui i kēia kūlana ʻo ka neʻe ʻana i JDK13 a me ka hoʻohana ʻana i ka ʻohi ʻōpala Shenandoah. Ua hoʻopau kēia i ka pilikia, ua pau ka hāʻule ʻana o kā mākou coordinators.

ʻO kēia kahi i pau ai nā pilikia me Java a hoʻomaka nā pilikia bandwidth.

"Berries" me Elasticsearch: throughput

Elasticsearch pūʻulu 200 TB+

ʻO nā pilikia me ka throughput ke ʻano o ka hana paʻa ʻana o kā mākou puʻupuʻu, akā ma nā kiʻekiʻe o ka helu o nā palapala i kuhikuhi ʻia a i ka wā o ka hana ʻana, ʻaʻole lawa ka hana.

ʻO ka hōʻailona mua i ʻike ʻia: i ka wā o kekahi mau "pahū" i ka hana ʻana, i ka wā i hana koke ʻia ai ka nui o nā lāʻau, e hoʻomaka ana ka hewa kuhikuhi es_rejected_execution e uila pinepine i Graylog.

ʻO kēia ma muli o ka thread_pool.write.queue ma hoʻokahi node data, a hiki i ka manawa e hiki ai iā Elasticsearch ke hana i ka noi kuhikuhi a hoʻouka i ka ʻike i ka shard ma ka disk, hiki ke hūnā i nā noi 200 wale nō. A i loko Palapala Elasticsearch He liʻiliʻi loa ka ʻōlelo e pili ana i kēia ʻāpana. Hōʻike ʻia ka helu kiʻekiʻe o nā loina a me ka nui paʻamau.

ʻOiaʻiʻo, ua hele mākou e wili i kēia waiwai a ʻike mākou i kēia mau mea: ʻo ia hoʻi, i kā mākou hoʻonohonoho, a hiki i 300 mau noi i hūnā maikaʻi ʻia, a ʻoi aku ka waiwai kiʻekiʻe me ka lele hou ʻana i ka GC piha.

Eia kekahi, ʻoiai he mau pūʻulu memo kēia i hiki mai i loko o hoʻokahi noi, pono e hoʻololi iā Graylog i ʻole e kākau pinepine a ma nā pūʻulu liʻiliʻi, akā i nā pūʻulu nui a i ʻole hoʻokahi manawa i kēlā me kēia 3 kekona inā ʻaʻole i pau ka pūʻulu. I kēia hihia, ʻike ʻia ka ʻike a mākou e kākau ai ma Elasticsearch e loaʻa ʻaʻole i ʻelua kekona, akā i ʻelima (e kūpono loa iā mākou), akā ʻo ka helu o nā retrays e hana ʻia i mea e pana ai i kahi nui. hōʻemi ʻia ka pūʻulu ʻike.

He mea koʻikoʻi kēia i kēlā mau manawa i ka wā i hāʻule ai kekahi mea ma kahi a me ka huhū e hōʻike ana e pili ana iā ia, i ʻole e loaʻa i kahi Elastic spammed loa, a ma hope o kekahi manawa - nā nodes Graylog i hiki ʻole ke hoʻohana ʻia no ka clogged buffers.

Eia kekahi, i ka wā i loaʻa ai iā mākou kēia mau pahū like i ka hana ʻana, ua loaʻa iā mākou nā hoʻopiʻi mai nā polokalamu polokalamu a me nā mea hoʻāʻo: i ka manawa i makemake nui ai lākou i kēia mau lāʻau, hāʻawi ʻia lākou iā lākou me ka mālie.

Hoʻomaka lākou e noʻonoʻo. Ma kekahi ʻaoʻao, ua maopopo ua hoʻoponopono ʻia nā nīnau ʻimi ʻelua a me nā nīnau kuhikuhi kuhikuhi, ʻo ia hoʻi, ma nā mīkini kino like, a i kekahi ala a i ʻole e loaʻa kekahi mau huki.

Akā hiki ke hoʻokaʻawale ʻia kēia ma muli o ka ʻike ʻana i ke ono o nā mana o Elasticsearch, ua ʻike ʻia kahi algorithm e hiki ai iā ʻoe ke puʻunaue i nā nīnau ma waena o nā nodes ʻikepili kūpono ʻaʻole e like me ke kumu o ka round-robin random (ka pahu e kuhikuhi ana a paʻa i ka mea mua. -shard hiki ke paʻa loa, ʻaʻohe ala e pane koke ai), akā e hoʻouna i kēia noi i kahi pahu liʻiliʻi me kahi replica-shard, e pane wikiwiki aku. I nā huaʻōlelo ʻē aʻe, ua hōʻea mākou i use_adaptive_replica_selection: ʻoiaʻiʻo.

Hoʻomaka ke kiʻi heluhelu e like me kēia:

Elasticsearch pūʻulu 200 TB+

ʻO ka hoʻololi ʻana i kēia algorithm i hiki ai ke hoʻomaikaʻi nui i ka manawa nīnau i kēlā mau manawa i loaʻa iā mākou kahi kahe nui o nā lāʻau e kākau ai.

ʻO ka mea hope loa, ʻo ka pilikia nui ʻo ia ka wehe ʻole ʻana i ke kikowaena data.

ʻO ka mea a mākou i makemake ai mai ka puʻupuʻu ma hope koke o ka pau ʻana o ka pilina me hoʻokahi DC:

  • Inā loaʻa iā mākou kahi haku i kēia manawa i loko o ke kikowaena ʻikepili i hāʻule ʻole, a laila e koho hou ʻia a neʻe ʻia ma ke ʻano he node ʻē aʻe i kekahi DC.
  • E wehe koke ka haku i nā node hiki ʻole ke komo mai ka pūpū.
  • Ma muli o nā mea i koe, e hoʻomaopopo ʻo ia: i loko o ke kikowaena ʻikepili nalowale i loaʻa iā mākou nā ʻāpana mua a me ia mau mea, e hoʻolaha koke ʻo ia i nā shards replica hoʻohui i nā kikowaena ʻikepili i koe, a e hoʻomau mākou i ka helu ʻana i ka ʻikepili.
  • Ma muli o kēia, e hoʻohaʻahaʻa haʻahaʻa ka kākau ʻana a me ka heluhelu ʻana o ka cluster, akā ma ke ʻano maʻamau e hana nā mea āpau, ʻoiai lohi, akā paʻa.

E like me ka mea i ʻike ʻia, makemake mākou i kahi mea e like me kēia:

Elasticsearch pūʻulu 200 TB+

A loaʻa iā mākou kēia mau mea:

Elasticsearch pūʻulu 200 TB+

Pehea i hana ai kēia?

I ka hāʻule ʻana o ke kikowaena data, ua lilo ko mākou haku i ka bottleneck.

Почему?

ʻO ka ʻoiaʻiʻo he TaskBatcher ka haku, nona ke kuleana no ka hāʻawi ʻana i kekahi mau hana a me nā hanana i loko o ka hui. ʻO kēlā me kēia puka puka, ʻo ka hoʻolaha ʻana i kahi shard mai ke kope a hiki i ke kumu mua, kahi hana e hana ai i kahi shard ma kahi - hele mua kēia mau mea a pau i TaskBatcher, kahi e hana ʻia ai ma ke ʻano hoʻokahi.

I ka manawa o ka haʻalele ʻana i hoʻokahi kikowaena data, ua ʻike ʻia ua manaʻo nā nodes ʻikepili āpau i nā kikowaena data e ola nei i ko lākou kuleana e haʻi aku i ka haku "ua nalowale mākou i kēlā me kēia mau shards a me kēlā a me kēlā me kēia mau nodes data."

I ka manawa like, ua hoʻouna nā nodes data e ola nei i kēia ʻike i ka haku o kēia manawa a hoʻāʻo e kali no ka hōʻoia ʻana ua ʻae ʻo ia. ʻAʻole lākou i kali no kēia, ʻoiai ua loaʻa i ka haku nā hana i ʻoi aku ka wikiwiki ma mua o ka hiki iā ia ke pane. Ua hoʻopau nā nodes i nā noi hou, a ʻaʻole i hoʻāʻo ka haku i kēia manawa e pane iā lākou, akā ua komo piha i ka hana o ka hoʻokaʻawale ʻana i nā noi e ka mea nui.

Ma ke ʻano terminal, ua ʻike ʻia ua hoʻopaʻa ʻia nā nodes ʻikepili i ka haku a hiki i ka GC piha. Ma hope o kēlā, ua neʻe kā mākou kuleana haku i kekahi node aʻe, ua like loa ka mea i loaʻa iā ia, a ʻo ka hopena ua hāʻule loa ka hui.

Lawe mākou i nā ana, a ma mua o ka mana 6.4.0, kahi i hoʻopaʻa ʻia ai, ua lawa ia no mākou e hoʻopuka i nā nodes ʻikepili 10 wale nō mai 360 i mea e pani loa ai i ka hui.

Ua like me keia:

Elasticsearch pūʻulu 200 TB+

Ma hope o ka mana 6.4.0, kahi i hoʻopaʻa ʻia ai kēia pōpoki weliweli, hoʻōki nā nodes ʻikepili i ka pepehi ʻana i ka haku. Akā, ʻaʻole ia i hoʻolilo iā ia i "naʻauao." ʻO ia: ke hoʻopuka mākou i 2, 3 a i ʻole 10 (kekahi helu ʻē aʻe ma mua o hoʻokahi), loaʻa ka haku i kekahi memo mua e ʻōlelo ana ua haʻalele ka node A, a hoʻāʻo e haʻi i ka node B, node C e pili ana i kēia, node D.

A i kēia manawa, hiki ke hana wale ʻia kēia ma ka hoʻonohonoho ʻana i kahi manawa no ka hoʻāʻo ʻana e haʻi i kekahi e pili ana i kekahi mea, e like me 20-30 kekona, a pēlā e hoʻomalu ai i ka wikiwiki o ka neʻe ʻana o ke kikowaena ʻikepili mai ka pūpū.

Ma ke kumu, kūpono kēia i nā koi i hōʻike mua ʻia i ka huahana hope ma ke ʻano he ʻāpana o ka papahana, akā mai ka ʻike o ka "ʻepekema maʻemaʻe" he bug kēia. Ma ke ala, ua hoʻoponopono maikaʻi ʻia e nā mea hoʻomohala ma ka mana 7.2.

Eia kekahi, i ka wā i puka aku ai kekahi node data, ua ʻike ʻia ʻoi aku ka nui o ka hoʻolaha ʻana i ka ʻike e pili ana i kona puka ʻana ma mua o ka haʻi ʻana i ka pūʻulu holoʻokoʻa aia nā mea like a me nā mea mua ma luna o ia mea (i mea e hoʻolaha ai i kahi replica-shard i kahi ʻikepili ʻē aʻe. kikowaena ma ka mea mua, a ma ka ʻike hiki ke kākau ʻia ma luna o lākou).

No laila, i ka pau ʻana o nā mea a pau, ʻaʻole i hōʻailona koke ʻia nā nodes data i hoʻokuʻu ʻia. No laila, koi ʻia mākou e kali a pau nā pings i ka manawa i hoʻokuʻu ʻia i nā nodes ʻikepili i hoʻokuʻu ʻia, a ma hope wale nō e hoʻomaka ai kā mākou hui e haʻi iā mākou ma laila, ma laila, a ma laila mākou e hoʻomau i ka hoʻopaʻa ʻana i ka ʻike. Hiki iā ʻoe ke heluhelu hou aku e pili ana i kēia maanei.

ʻO ka hopena, ʻo ka hana o ka wehe ʻana i kahi kikowaena data i kēia lā e lawe iā mākou ma kahi o 5 mau minuke i ka hola wikiwiki. No ka nui a me ka clumsy colossus, he hopena maikaʻi kēia.

ʻO ka hopena, ua hiki mākou i ka hoʻoholo penei:

  • Loaʻa iā mākou he 360 ​​​​data nodes me 700 gigabyte disks.
  • 60 mau mea hoʻonohonoho no ka hoʻokele ʻana i nā kaʻa ma o kēia mau nodes ʻikepili like.
  • 40 mau haku a mākou i waiho ai ma ke ʻano he ʻano hoʻoilina mai nā mana ma mua o 6.4.0 - i mea e ola ai i ka haʻalele ʻana i ke kikowaena data, ua mākaukau mākou noʻonoʻo e nalowale i kekahi mau mīkini i mea e hōʻoiaʻiʻo ʻia ai ka loaʻa ʻana o kahi korum o nā haku a hiki i ka ʻo ke kūlana ʻino loa
  • ʻO nā hoʻāʻo ʻana e hoʻohui i nā kuleana ma ka pahu hoʻokahi ua hoʻokō ʻia me ka ʻoiaʻiʻo e haki ka node ma lalo o ka ukana.
  • Hoʻohana ka pūʻulu holoʻokoʻa i kahi puʻu. nui o 31 gigabytes: ʻo nā hoʻāʻo a pau e hōʻemi i ka nui i hopena i ka pepehi ʻana i kekahi mau node ma nā nīnau huli koʻikoʻi me ka wildcard alakaʻi a i ʻole ke kiʻi ʻana i ka mea hoʻokele kaapuni ma Elasticsearch ponoʻī.
  • Eia kekahi, no ka hōʻoia ʻana i ka hana ʻimi, ua hoʻāʻo mākou e mālama i ka helu o nā mea i loko o ka puʻupuʻu e like me ka liʻiliʻi, i mea e hana ai i nā hanana liʻiliʻi i hiki i ka bottleneck i loaʻa iā mākou i ka haku.

ʻO ka hope e pili ana i ka nānā ʻana

No ka hōʻoia i ka hana ʻana o kēia mau mea a pau e like me ka mea i manaʻo ʻia, nānā mākou i kēia:

  • Hōʻike kēlā me kēia node ʻikepili i kā mākou ao e noho nei, a aia kekahi mau ʻāpana ma luna. Ke hoʻopau mākou i kahi mea ma kahi, hōʻike ka puʻupuʻu ma hope o 2-3 kekona i ke kikowaena A ua hoʻopau mākou i nā nodes 2, 3, a me 4 - ʻo ia hoʻi, ma nā kikowaena data ʻē aʻe, ʻaʻole hiki iā mākou ke hoʻopau i kēlā mau nodes i hoʻokahi ʻāpana. hema.
  • Ke ʻike nei i ke ʻano o ka hana a ka haku, nānā pono mākou i ka nui o nā hana e kali nei. No ka mea, hoʻokahi hana paʻa, inā ʻaʻole i pau ka manawa, ʻo ka theoretically i kekahi kūlana pilikia hiki ke lilo i kumu, no ka laʻana, ʻaʻole hana ka hoʻolaha ʻana o kahi shard replica i ka mea mua, ʻo ia ke kumu e pau ai ka hana ʻana.
  • Ke nānā pono nei mākou i nā lohi o ka ʻohi ʻōpala, no ka mea, ua loaʻa iā mākou nā pilikia nui me kēia i ka wā o ka loiloi.
  • Hōʻole ma ke kaula e hoʻomaopopo mua i kahi o ka bottleneck.
  • ʻAe, nā metric maʻamau e like me heap, RAM a me I/O.

I ke kūkulu ʻana i ka nānā ʻana, pono ʻoe e noʻonoʻo i nā hiʻohiʻona o Thread Pool ma Elasticsearch. Elasticsearch Palapala wehewehe i nā koho hoʻonohonoho a me nā waiwai paʻamau no ka huli ʻana a me ka helu ʻana, akā hāmau loa e pili ana i ka thread_pool.management. Ke kaʻina nei kēia mau threads, ʻo ia hoʻi, nā nīnau e like me _cat/shards a me nā mea like ʻē aʻe, i kūpono ke hoʻohana i ke kākau ʻana i ka nānā ʻana. ʻO ka nui o ka puʻupuʻu, ʻoi aku ka nui o ia mau noi i hoʻokō ʻia i kēlā me kēia ʻāpana o ka manawa, a ʻo ka thread_pool.management i ʻōlelo ʻia ma mua ʻaʻole i hōʻike ʻia i loko o ka palapala kūhelu, akā ua kaupalena ʻia hoʻi e ka paʻamau i 5 mau kaula, i hoʻopau koke ʻia, ma hope. ka nānā 'ana i pau ka hana pono.

ʻO kaʻu mea e makemake ai e ʻōlelo i ka hopena: ua hana mākou! Ua hiki iā mākou ke hāʻawi i kā mākou mea papahana a me nā mea hoʻomohala i kahi mea hana, ma kahi kokoke i nā kūlana, hiki ke hāʻawi wikiwiki a hilinaʻi i ka ʻike e pili ana i nā mea e hana nei i ka hana.

ʻAe, ua lilo ia i mea paʻakikī, akā naʻe, ua hoʻokō mākou i kā mākou makemake i nā huahana i loaʻa, ʻaʻole pono mākou e hoʻopili a kākau hou no mākou iho.

Elasticsearch pūʻulu 200 TB+

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka