Elasticsearch ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ с Π½Π°Π΄ 200 Π’Π‘

Elasticsearch ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ с Π½Π°Π΄ 200 Π’Π‘

Бъ Elasticsearch сС ΡΠ±Π»ΡŠΡΠΊΠ²Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ. Но ΠΊΠ°ΠΊΠ²ΠΎ сС случва, ΠΊΠΎΠ³Π°Ρ‚ΠΎ искаш Π΄Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρˆ Π»ΠΎΠ³ΠΎΠ²Π΅ Π½Π° "особСно голямо количСство"? И Ρ‚ΠΎ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½ΠΎ Π΄Π° ΠΏΡ€Π΅ΠΆΠΈΠ²Π΅Π΅Ρˆ ΠΎΡ‚ΠΊΠ°Π·Π° Π½Π° Π΅Π΄ΠΈΠ½ ΠΎΡ‚ няколко Π΄Π°Ρ‚Π° Ρ†Π΅Π½Ρ‚ΡŠΡ€Π°? Какво Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄Π° ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ΅ΠΌΠ΅Ρˆ ΠΈ Π½Π° ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΠΈ камъни ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°Ρ‚ΡŠΠΊΠ½Π΅Ρˆ?

Π’ ΠžΠ΄Π½ΠΎΠΊΠ»Π°ΡΠ½ΠΈΠΊΠ°Ρ… Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Elasticsearch Π΄Π° Ρ€Π΅ΡˆΠΈΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅, Π° сСга сподСлямС с Π₯Π°Π±Ρ€Π° ΠΎΠΏΠΈΡ‚Π° си: Π·Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° ΠΈ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΠΈΡ‚Π΅ камъни.

Аз съм ΠŸΡŒΠΎΡ‚Ρ€ Π—Π°ΠΉΡ†Π΅Π², работя ΠΊΠ°Ρ‚ΠΎ систСмСн администратор Π² ΠžΠ΄Π½ΠΎΠΊΠ»Π°ΡΠ½ΠΈΠΊΠ°Ρ…. ΠŸΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° ΡΡŠΡ‰ΠΎ бях администратор, Ρ€Π°Π±ΠΎΡ‚ΠΈΡ… с Manticore Search, Sphinx Search, Elasticsearch. ВСроятно, Π°ΠΊΠΎ сС появи ΠΎΡ‰Π΅ някакво …search, Ρ‰Π΅ работя ΠΈ с Π½Π΅Π³ΠΎ. Участвам ΡΡŠΡ‰ΠΎ Π² Ρ€Π΅Π΄ΠΈΡ†Π° опСнсорс ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π½Π° Π΄ΠΎΠ±Ρ€ΠΎΠ²ΠΎΠ»Π½Π° основа.

ΠšΠΎΠ³Π°Ρ‚ΠΎ Π΄ΠΎΠΉΠ΄ΠΎΡ… Π² ΠžΠ΄Π½ΠΎΠΊΠ»Π°ΡΠ½ΠΈΠΊΠ°Ρ…, бях Π±Π΅Π·Ρ€Π°Π·ΡΡŠΠ΄Π΅Π½ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŽΡ‚ΠΎ ΠΈ ΠΊΠ°Π·Π°Ρ…, Ρ‡Π΅ умСя Π΄Π° работя с Elasticsearch. Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ сС Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π°Ρ… ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ… някои основни Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ… голямо Π·Π°Π΄Π°Π½ΠΈΠ΅ Π·Π° Ρ€Π΅Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° систСмата Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅, която ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°ΡˆΠ΅ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°.

Изисквания

Π˜Π·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡ‚Π° към систСмата бяха Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€Π°Π½ΠΈ ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½:

  • ΠšΠ°Ρ‚ΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Graylog. Π—Π°Ρ‰ΠΎΡ‚ΠΎ Π² компанията Π²Π΅Ρ‡Π΅ имашС ΠΎΠΏΠΈΡ‚ с Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, програмиститС ΠΈ тСстСритС Π³ΠΎ ΠΏΠΎΠ·Π½Π°Π²Π°Ρ…Π°, Ρ‚ΠΎΠΉ ΠΈΠΌ бСшС ΡƒΠ΄ΠΎΠ±Π΅Π½.
  • ОбСм Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅: срСдно 50-80 хиляди ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Π² сСкунда, Π½ΠΎ Π°ΠΊΠΎ Π½Π΅Ρ‰ΠΎ сС счупи, Ρ‚Ρ€Π°Ρ„ΠΈΠΊΡŠΡ‚ Π½Π΅ Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½, ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС 2-3 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ€Π΅Π΄Π° Π² сСкунда.
  • Π‘Π»Π΅Π΄ обсъТданС Π½Π° изискванията с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ относно скоростта Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ‚ΡŠΡ€ΡΠ΅Π½ΠΈΡΡ‚Π°, Ρ€Π°Π·Π±Ρ€Π°Ρ…ΠΌΠ΅, Ρ‡Π΅ типичният Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Ρ‚Π°ΠΊΠ°Π²Π° систСма Π΅ слСдният: Ρ…ΠΎΡ€Π°Ρ‚Π° Ρ‚ΡŠΡ€ΡΡΡ‚ Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° своСто ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° послСднитС Π΄Π²Π° Π΄Π½ΠΈ ΠΈ Π½Π΅ искат Π΄Π° Ρ‡Π°ΠΊΠ°Ρ‚ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° Π½Π° Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€Π°Π½ΠΎΡ‚ΠΎ Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ сСкунда.
  • АдминистраторитС настояваха систСмата Π΄Π° ΠΌΠΎΠΆΠ΅ лСсно Π΄Π° сС ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π° ΠΏΡ€ΠΈ нСобходимост, Π±Π΅Π· Π΄Π° Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄ΡŠΠ»Π±ΠΎΡ‡ΠΈΠ½Π½ΠΎ Π΄Π° сС Π²Π½ΠΈΠΊΠ²Π° Π² Π½Π°Ρ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ тя Π΅ устроСна.
  • ЕдинствСната Π·Π°Π΄Π°Ρ‡Π° Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°, която Ρ‚Π΅Π·ΠΈ систСми ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎ изискваха, бСшС Π΄Π° сС смСни някакво ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅.
  • ОсвСн Ρ‚ΠΎΠ²Π°, Π² ΠžΠ΄Π½ΠΎΠΊΠ»Π°ΡΠ½ΠΈΠΊΠ°Ρ… ΠΈΠΌΠ° прСкрасна тСхничСска традиция: всяка услуга, която пускамС, трябва Π΄Π° ΠΎΡ†Π΅Π»Π΅Π΅ слСд ΠΎΡ‚ΠΊΠ°Π· Π½Π° Π΄Π°Ρ‚Π° Ρ†Π΅Π½Ρ‚ΡŠΡ€ (Π½Π΅ΠΎΡ‡Π°ΠΊΠ²Π°Π½, Π½Π΅ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ ΠΈ напълно ΠΏΠΎ всяко Π²Ρ€Π΅ΠΌΠ΅).

ΠŸΠΎΡΠ»Π΅Π΄Π½ΠΎΡ‚ΠΎ изискванС Π·Π° рСализация Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½ΠΈ коства Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ усилия, Π·Π° ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

Π‘Ρ€Π΅Π΄Π°

Π Π°Π±ΠΎΡ‚ΠΈΠΌ Π½Π° Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ Π΄Π°Ρ‚Π° Ρ†Π΅Π½Ρ‚ΡŠΡ€Π°, ΠΊΠ°Ρ‚ΠΎ Π½ΠΎΠ΄ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° Elasticsearch ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚ само Π² Ρ‚Ρ€ΠΈ (ΠΏΠΎΡ€Π°Π΄ΠΈ Ρ€Π΅Π΄ΠΈΡ†Π° Π½Π΅-тСхничСски ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ).

Π’ Ρ‚Π΅Π·ΠΈ Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ Π΄Π°Ρ‚Π° Ρ†Π΅Π½Ρ‚ΡŠΡ€Π° ΠΈΠΌΠ° ΠΎΠΊΠΎΠ»ΠΎ 18 хиляди Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊΠ° Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅ β€” устройства, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини.

Π’Π°ΠΆΠ½ΠΎ свойство: стартиранСто Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ Podman Π½Π΅ Π½Π° физичСски машини, Π° Π½Π° собствСния ΠΎΠ±Π»Π°Ρ‡Π΅Π½ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ one-cloud. На ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ сС Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°Ρ‚ 2 ядра, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° 2.0Ghz v4 с Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° останалитС ядра Π² случай Π½Π° бСздСйствиС.

Π˜Π½Π°Ρ‡Π΅ ΠΊΠ°Π·Π°Π½ΠΎ:

Elasticsearch ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ с Π½Π°Π΄ 200 Π’Π‘

Вопология

ΠžΠ±Ρ‰ΠΈΡΡ‚ Π²ΠΈΠ΄ Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΠΈ сС ΡΡ‚Ρ€ΡƒΠ²Π°ΡˆΠ΅ слСдният:

  • 3-4 VIP адрСси стоят Π·Π°Π΄ А-записа Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° Graylog, Ρ‚ΠΎΠ²Π° Π΅ Π°Π΄Ρ€Π΅ΡΡŠΡ‚, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅.
  • ВсСки VIP прСдставлява балансировщик LVS.
  • Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π°, Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ стигат Π΄ΠΎ батСрията Graylog, част ΠΎΡ‚ Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΈΠ΄Π²Π°Ρ‚ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ GELF, част Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ syslog.
  • Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° всичко Ρ‚ΠΎΠ²Π° сС записва Π² батСрия ΠΎΡ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ΠΈ Π½Π° Elasticsearch Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΠ°Ρ€Ρ‚ΠΈΠ΄ΠΈ.
  • Π’Π΅, ΠΎΡ‚ своя страна, ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ заявки Π·Π° запис ΠΈ Ρ‡Π΅Ρ‚Π΅Π½Π΅ към ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ‚Π΅ Π½ΠΎΠ΄ΠΈ.

Elasticsearch ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ с Π½Π°Π΄ 200 Π’Π‘

ВСрминология

Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π½Π΅ всички Π΄Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ Π΄ΠΎΠ±Ρ€Π΅ тСрминологията, Π·Π°Ρ‚ΠΎΠ²Π° Π±ΠΈΡ… искал Π΄Π° сС спра Π½Π° нСя.

Π’ Elasticsearch ΠΈΠΌΠ° няколко Ρ‚ΠΈΠΏΠ° Π½ΠΎΠ΄ΠΎΠ²Π΅ β€” master, coordinator, data node. Има ΠΈ Π΄Π²Π° Π΄Ρ€ΡƒΠ³ΠΈ Ρ‚ΠΈΠΏΠ° Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ трансформации Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅ ΠΈ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρƒ си, Π½ΠΎ Π½ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ само ΠΈΠ·Π±Ρ€ΠΎΠ΅Π½ΠΈΡ‚Π΅.

Master
Пингва всички ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π°Ρ‰ΠΈ Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Π½ΠΎΠ΄ΠΎΠ²Π΅, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Π°ΠΊΡ‚ΡƒΠ°Π»Π½Π° ΠΊΠ°Ρ€Ρ‚Π° Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° ΠΈ я разпространява ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΎΠ΄ΠΎΠ²Π΅Ρ‚Π΅, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΠΉΠ½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ°, Π·Π°Π½ΠΈΠΌΠ°Π²Π° сС с всякакъв Π²ΠΈΠ΄ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°.

ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€
Изпълнява Π΅Π΄Π½Π° СдинствСна Π·Π°Π΄Π°Ρ‡Π°: ΠΏΡ€ΠΈΠ΅ΠΌΠ° заявки ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΈΠ»ΠΈ запис ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π° Ρ‚ΠΎΠ·ΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. Π’ случай, Ρ‡Π΅ заявката Π΅ Π·Π° запис, вСроятно Ρ‰Π΅ ΠΏΠΈΡ‚Π° master Π² ΠΊΠΎΠΉ ΡˆΠ°Ρ€Π΄ Π½Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ индСкс Π΄Π° я ΠΏΠΎΠ»ΠΎΠΆΠΈ ΠΈ Ρ‰Π΅ прСнасочи заявката ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ.

Π”Π°Π½Π΅Π½ Π½ΠΎΠ΄
Π‘ΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Π΄Π°Π½Π½ΠΈ, ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° входящи Ρ‚ΡŠΡ€ΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²ΡŠΡ€Ρ…Ρƒ Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ‚Π΅ Π½Π° нСя ΡˆΠ°Ρ€Π΄ΠΎΠ²Π΅.

Graylog
Π’ΠΎΠ²Π° Π΅ Π½Π΅Ρ‰ΠΎ ΠΊΠ°Ρ‚ΠΎ сплав Kibana с Logstash Π² ELK стСк. Graylog ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π° Π² сСбС си ΠΈ UI, ΠΈ pipeline Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅. Под ΠΊΠ°ΠΏΠ°ΠΊΠ° Π½Π° Graylog работят Kafka ΠΈ Zookeeper, ΠΊΠΎΠΈΡ‚ΠΎ осигуряват ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎΡΡ‚ Π½Π° Graylog ΠΊΠ°Ρ‚ΠΎ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. Graylog ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠ΅ΡˆΠΈΡ€Π° Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ (Kafka) Π² случай Π½Π° Π½Π΅Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎΡΡ‚ Π½Π° Elasticsearch ΠΈ Π΄Π° повтаря Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½ΠΈ заявки Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΈ запис, Π΄Π° Π³Ρ€ΡƒΠΏΠΈΡ€Π° ΠΈ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π° Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ ΠΏΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°. ΠšΠ°Ρ‚ΠΎ Logstash, Graylog ΠΈΠΌΠ° функционалност Π·Π° модификация Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΠΈ запис Π² Elasticsearch.

ОсвСн Ρ‚ΠΎΠ²Π°, Π² Graylog ΠΈΠΌΠ° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΎ service discovery, позволяващо Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Π΅Π΄Π½Π° Π½Π°Π»ΠΈΡ‡Π½Π° Π½ΠΎΠ΄Π° Elasticsearch Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈ цялата ΠΊΠ°Ρ€Ρ‚Π° Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° ΠΈ Π΄Π° я Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π° ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΄Π°Π²Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° насочванС Π½Π° заявки към ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ.

Π’ΠΈΠ·ΡƒΠ°Π»Π½ΠΎ, Ρ‚ΠΎΠ²Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ‚Π°ΠΊΠ°:

Elasticsearch ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ с Π½Π°Π΄ 200 Π’Π‘

Π’ΠΎΠ²Π° Π΅ ΡΠΊΡ€ΠΈΠΉΠ½ΡˆΠΎΡ‚ ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ инстанс. Π’ΡƒΠΊ ΠΏΠΎ Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°ΠΌΠ΅ хистограма, ΠΈΠ·Π²Π΅ΠΆΠ΄Π°ΠΌΠ΅ Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅.

ИндСкси

Π’Ρ€ΡŠΡ‰Π°ΠΉΠΊΠΈ сС Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° систСмата, Π±ΠΈΡ… искал Π΄Π° сС спра ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π½Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ…ΠΌΠ΅ ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° индСкситС, Π·Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ всичко ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½ΠΎ.

На прСдставСната ΠΏΠΎ-Ρ€Π°Π½ΠΎ схСма, Ρ‚ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ»Π½ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ: Elasticsearch data nodes.

Π˜Π½Π΄Π΅ΠΊΡΡŠΡ‚ Π΅ голяма Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° ΡΡŠΡ‰Π½ΠΎΡΡ‚, ΡΡŠΡΡ‚ΠΎΡΡ‰a сС ΠΎΡ‚ ΡˆΠ°Ρ€Π΄ΠΎΠ²Π΅ Π½Π° Elasticsearch. ВсСки ΠΎΡ‚ ΡˆΠ°Ρ€Π΄ΠΎΠ²Π΅Ρ‚Π΅ Π½Π΅ Π΅ Π½ΠΈΡ‰ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Lucene индСкс. А всСки Lucene индСкс, ΠΎΡ‚ своя страна, сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ сСгмСнти.

Elasticsearch ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ с Π½Π°Π΄ 200 Π’Π‘

ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π΅, Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ…ΠΌΠ΅, Ρ‡Π΅ Π·Π° Π΄Π° осигурим изискванията Π·Π° скорост Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΠ±Π΅ΠΌΠΈ Π΄Π°Π½Π½ΠΈ, трябва Π΄Π° "Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ" Ρ‚Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ ΠΏΠΎ Π΄Π°Ρ‚Π°-Π½ΠΎΠ΄ΠΎΠ²Π΅Ρ‚Π΅.

Π’ΠΎΠ²Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ броят Π½Π° ΡˆΠ°Ρ€Π΄ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° индСкс (с Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ) трябва Π΄Π° бъдС строго Ρ€Π°Π²Π΅Π½ Π½Π° броя Π½Π° Π΄Π°Ρ‚Π°-Π½ΠΎΠ΄ΠΎΠ²Π΅Ρ‚Π΅. ΠŸΡŠΡ€Π²ΠΎ, Π·Π° Π΄Π° осигурим replication factor Ρ€Π°Π²Π΅Π½ Π½Π° Π΄Π²Π΅ (Ρ‚.Π΅. ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°Π³ΡƒΠ±ΠΈΠΌ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π°Ρ‚Π° ΠΎΡ‚ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°). А Π²Ρ‚ΠΎΡ€ΠΎ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°ΠΌΠ΅ заявки Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΈ запис Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΠΎΠ½Π΅ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π°Ρ‚Π° ΠΎΡ‚ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°.

ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΡŠΡ‚ Π½Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ…ΠΌΠ΅ Π½Π° 30 Π΄Π½ΠΈ.

Π Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΡˆΠ°Ρ€Π΄ΠΎΠ²Π΅Ρ‚Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС прСдстави Π³Ρ€Π°Ρ„ΠΈΡ‡Π½ΠΎ ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½:

Elasticsearch ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ с Π½Π°Π΄ 200 Π’Π‘

ЦСлият Ρ‚ΡŠΠΌΠ΅Π½ ΠΏΡ€Π°Π²ΠΎΡŠΠ³ΡŠΠ»Π½ΠΈΠΊ Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΡŠΡ‚. ЛСвият Ρ‡Π΅Ρ€Π²Π΅Π½ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ Π² Π½Π΅Π³ΠΎ Π΅ primary shard, ΠΏΡŠΡ€Π²ΠΈΡΡ‚ Π² индСкса. А синият ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ Π΅ replica shard. Π’Π΅ сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π΄Π°Ρ‚Π° Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ²Π΅.

ΠšΠΎΠ³Π°Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ ΡˆΠ°Ρ€Π΄, Ρ‚ΠΎΠΉ ΠΏΠΎΠΏΠ°Π΄Π° Π² трСтия Π΄Π°Ρ‚Π° Ρ†Π΅Π½Ρ‚ΡŠΡ€. Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ Ρ‚Π°ΠΊΠ°Π²Π° структура, която осигурява Π·Π°Π³ΡƒΠ±Π° Π½Π° Π΄Π°Ρ‚Π° Ρ†Π΅Π½Ρ‚ΡŠΡ€ Π±Π΅Π· Π·Π°Π³ΡƒΠ±Π° Π½Π° консистСнтност Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅:

Elasticsearch ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ с Π½Π°Π΄ 200 Π’Π‘

Ротацията Π½Π° индСкситС, Ρ‚.Π΅. ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ² индСкс ΠΈ ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½Π°ΠΉ-стария, Π΅ Π·Π°Π΄Π°Π΄Π΅Π½Π° Π½Π° 48 часа (спорСд ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° индСкса: послСднитС 48 часа сС Ρ‚ΡŠΡ€ΡΡΡ‚ Π½Π°ΠΉ-чСсто).

Π’ΠΎΠ·ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» Π·Π° ротация Π½Π° индСкситС Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ със слСднитС ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ:

ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π° Π΄Π°Ρ‚Π° Π½ΠΎΠ΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈ Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅, ΠΎΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° производитСлността Π΅ ΠΏΠΎ-ΠΈΠ·Π³ΠΎΠ΄Π½ΠΎ Π΄Π° сС ΠΎΠΏΡ€Π°ΡˆΠ²Π° Π΅Π΄ΠΈΠ½ ΡˆΠ°Ρ€Π΄, Π°ΠΊΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ ΠΌΡƒ Π΅ сравним с Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° Ρ…ΠΈΠΏΠ° Π½Π° Π½ΠΎΠ΄Π°Ρ‚Π°. Π’ΠΎΠ²Π° позволява Π΄Π° сС Π·Π°ΠΏΠ°Π·ΠΈ "Π³ΠΎΡ€Π΅Ρ‰Π°Ρ‚Π°" част Π½Π° индСкса Π² Ρ…ΠΈΠΏΠ° ΠΈ Π±ΡŠΡ€Π·ΠΎ Π΄Π° сС ΠΏΠΎΠ»ΡƒΡ‡ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ нСя. ΠšΠΎΠ³Π°Ρ‚ΠΎ "Π³ΠΎΡ€Π΅Ρ‰ΠΈΡ‚Π΅ части" станат ΠΌΠ½ΠΎΠ³ΠΎ, скоростта Π½Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ ΠΏΠΎ индСкса намалява.

ΠšΠΎΠ³Π°Ρ‚ΠΎ Π½ΠΎΠ΄Π°Ρ‚Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ Π΄Π° изпълнява Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅Ρ‚ΠΎ Π½Π° Π΅Π΄ΠΈΠ½ ΡˆΠ°Ρ€Π΄, тя разпрСдСля Π±Ρ€ΠΎΠΉ нишки, Ρ€Π°Π²Π΅Π½ Π½Π° броя Π½Π° Ρ…ΠΈΠΏΠ΅Ρ€Ρ‚Ρ€Π΅Π΄ΠΈΠ½Π³ΠΎΠ²ΠΈΡ‚Π΅ ядра Π½Π° физичСската машина. Ако Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅Ρ‚ΠΎ ΠΎΠ±Ρ…Π²Π°Ρ‰Π° голям Π±Ρ€ΠΎΠΉ ΡˆΠ°Ρ€Π΄ΠΎΠ²Π΅, броят Π½Π° Π½ΠΈΡˆΠΊΠΈΡ‚Π΅ нараства ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ. Π’ΠΎΠ²Π° Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ влияС Π½Π° скоростта Π½Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ ΠΈ ΠΎΠΊΠ°Π·Π²Π° лошо влияниС Π²ΡŠΡ€Ρ…Ρƒ индСксиранСто Π½Π° Π½ΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ.

Π—Π° Π΄Π° осигурим Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° латСнтност Π½Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅Ρ‚ΠΎ, Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ SSD. Π—Π° Π±ΡŠΡ€Π·Π°Ρ‚Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° запитвания ΠΌΠ°ΡˆΠΈΠ½ΠΈΡ‚Π΅, Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚ Ρ‚Π΅Π·ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, трябва Π΄Π° ΠΈΠΌΠ°Ρ‚ ΠΏΠΎΠ½Π΅ 56 ядра. Числото 56 Π΅ ΠΈΠ·Π±Ρ€Π°Π½ΠΎ ΠΊΠ°Ρ‚ΠΎ условно Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ, опрСдСлящо броя Π½Π° Π½ΠΈΡˆΠΊΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Elasticsearch Ρ‰Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° Π² процСса Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°. Π’ Elasticsearch ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π½Π° thread pool зависят Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ броя Π½Π° Π½Π°Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ ядра, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΡ‚ своя страна ΠΎΠΊΠ°Π·Π²Π° пряко влияниС Π½Π° нСобходимия Π±Ρ€ΠΎΠΉ Π½ΠΎΠ΄ΠΎΠ²Π΅ Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° "ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ядра β€” ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π½ΠΎΠ΄ΠΎΠ²Π΅".

Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка сС ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°, Ρ‡Π΅ срСдно Π΅Π΄ΠΈΠ½ ΡˆΠ°Ρ€Π΄ Ρ‚Π΅ΠΆΠΈ ΠΎΠΊΠΎΠ»ΠΎ 20 Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚Π° ΠΈ Π½Π° 1 индСкс сС ΠΏΠ°Π΄Π°Ρ‚ 360 ΡˆΠ°Ρ€Π΄ΠΎΠ²Π΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ, Π°ΠΊΠΎ Π³ΠΈ Ρ€ΠΎΡ‚ΠΈΡ€Π°Ρ…ΠΌΠ΅ Π½Π° всСки 48 часа, ΠΈΠΌΠ°ΠΌΠ΅ 15 ΠΎΡ‚ тях. ВсСки индСкс ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Π΄Π°Π½Π½ΠΈ Π·Π° 2 Π΄Π½ΠΈ.

Π‘Ρ…Π΅ΠΌΠΈ Π·Π° запис ΠΈ Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ

НСка Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊ Π² Ρ‚Π°Π·ΠΈ систСма сС записват Π΄Π°Π½Π½ΠΈ.

Π”Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ исканС ΠΎΡ‚ Graylog Π² ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€Π°. НапримСр, искамС Π΄Π° индСксирамС 2-3 хиляди Ρ€Π΅Π΄Π°.

ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ΡŠΡ‚, ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΉΠΊΠΈ заявка ΠΎΡ‚ Graylog, Π·Π°ΠΏΠΈΡ‚Π²Π° майстор: β€žΠ’ заявката Π·Π° индСксация ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ бСшС посочСн индСкс, Π½ΠΎ Π² ΠΊΠΎΠΉ ΡˆΠ°Ρ€Π΄ Π΄Π° сС запишС β€” Π½Π΅ Π΅ ΡƒΡ‚ΠΎΡ‡Π½Π΅Π½ΠΎ.”

ΠœΠ°ΠΉΡΡ‚ΠΎΡ€ΡŠΡ‚ отговаря: β€žΠ—Π°ΠΏΠΈΡˆΠΈ Ρ‚Π°Π·ΠΈ информация Π² ΡˆΠ°Ρ€Π΄ Π½ΠΎΠΌΠ΅Ρ€ 71”, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ тя сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° Π½Π°ΠΏΡ€Π°Π²ΠΎ към ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ Π΄Π°Ρ‚Π°-Π½ΠΎΠ΄Π°, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС Π½Π°ΠΌΠΈΡ€Π° primary-shard Π½ΠΎΠΌΠ΅Ρ€ 71.

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π»ΠΎΠ³ΡŠΡ‚ Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ сС Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈΡ€Π° Π½Π° replica-shard, ΠΊΠΎΠΉΡ‚ΠΎ Π²Π΅Ρ‡Π΅ сС Π½Π°ΠΌΠΈΡ€Π° Π² Π΄Ρ€ΡƒΠ³ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚ΡŠΡ€.

Elasticsearch ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ с Π½Π°Π΄ 200 Π’Π‘

ΠžΡ‚ Graylog към ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€Π° пристига Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅. ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Π³ΠΎ прСнасочва ΠΏΠΎ индСкса, ΠΊΠ°Ρ‚ΠΎ Elasticsearch ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° round-robin разпрСдСля заявкитС ΠΌΠ΅ΠΆΠ΄Ρƒ primary-shard ΠΈ replica-shard.

Elasticsearch ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ с Π½Π°Π΄ 200 Π’Π‘

НодовСтС, Π² количСство 180, отговарят Π½Π΅Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ, ΠΈ Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Ρ‚Π΅ отговарят, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Π½Π°Ρ‚Ρ€ΡƒΠΏΠ²Π° информация, която Π² Π½Π΅Π³ΠΎ Π²Π΅Ρ‡Π΅ са β€žΠΈΠ·ΠΏΠ»ΡŽΠ»ΠΈβ€ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΈΡ‚Π΅ Π΄Π°Ρ‚Π°-Π½ΠΎΠ΄ΠΈ. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ»ΠΈ цялата информация Π΅ пристигнала, ΠΈΠ»ΠΈ ΠΏΠΎ заявка Π΅ достигнат Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚, я прСдоставя Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

Цялата Ρ‚Π°Π·ΠΈ систСма срСдно ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° Ρ‚ΡŠΡ€ΡΠ΅Π½ΠΈΡΡ‚Π° ΠΏΠΎ послСднитС 48 часа Π·Π° 300-400ms, с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚Π΅Π·ΠΈ заявки, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ°Ρ‚ leading wildcard.

β€žΠ¦Π²Π΅Ρ‚ΡΡ‚Π°β€ с Elasticsearch: настройка Π½Π° Java

Elasticsearch ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ с Π½Π°Π΄ 200 Π’Π‘

Π—Π° Π΄Π° ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚ΠΈ всичко Ρ‚Π°ΠΊΠ°, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ искахмС, дълго настройвахмС Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΈ Π½Π΅Ρ‰Π° Π² кластСра.

ΠŸΡŠΡ€Π²Π°Ρ‚Π° част ΠΎΡ‚ ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ бСшС ΡΠ²ΡŠΡ€Π·Π°Π½Π° с Ρ‚ΠΎΠ²Π°, ΠΊΠ°ΠΊ Java Π΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ настроСна ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π² Elasticsearch.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡŠΡ€Π²Π°
ΠΠ°Π±Π»ΡŽΠ΄Π°Π²Π°Ρ…ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Π·Π° Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ Π½Π° Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° Lucene, ΠΊΠΎΠ³Π°Ρ‚ΠΎ са стартирани background job-ΠΎΠ²Π΅, сливанСто Π½Π° сСгмСнти Lucene Π·Π°Π²ΡŠΡ€ΡˆΠ²Π° с Π³Ρ€Π΅ΡˆΠΊΠ°. Π’ Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ сС виТдашС, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π΅ OutOfMemoryError Π³Ρ€Π΅ΡˆΠΊΠ°. По тСлСмСтрия Π²ΠΈΠΆΠ΄Π°Ρ…ΠΌΠ΅, Ρ‡Π΅ Ρ…ΠΈΠΏΡŠΡ‚ Π΅ свободСн ΠΈ Π½Π΅ бСшС ясно Π·Π°Ρ‰ΠΎ Ρ‚Π°Π·ΠΈ опСрация сС проваля.

Изясни сС, Ρ‡Π΅ сливанСто Π½Π° Lucene индСкситС сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° извън Ρ…ΠΈΠΏΠ°. А ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ са доста строго ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ ΠΏΠΎ потрСбяванитС рСсурси. Π’ Ρ‚Π΅Π·ΠΈ рСсурси сС Π²ΠΊΠ»ΡŽΡ‡Π²Π°ΡˆΠ΅ само Ρ…ΠΈΠΏΡŠΡ‚ (стойността heap.size бСшС ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ€Π°Π²Π½Π° Π½Π° RAM), Π° някои off-heap ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сС проваляха с Π³Ρ€Π΅ΡˆΠΊΠ° ΠΏΡ€ΠΈ алокацията Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚, Π°ΠΊΠΎ ΠΏΠΎ някаква ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π½Π΅ успяваха Π΄Π° сС ΡΡŠΠ±Π΅Ρ€Π°Ρ‚ Π² Ρ‚Π΅Π·ΠΈ ~500MB, ΠΊΠΎΠΈΡ‚ΠΎ остават Π΄ΠΎ Π»ΠΈΠΌΠΈΡ‚Π°.

Π€ΠΈΠΊΡΡŠΡ‚ бСшС доста Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»Π΅Π½: ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ…ΠΌΠ΅ наличния ΠΎΠ±Π΅ΠΌ RAM Π·Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ Π·Π°Π±Ρ€Π°Π²ΠΈΡ…ΠΌΠ΅, Ρ‡Π΅ ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ смС ΠΈΠΌΠ°Π»ΠΈ Ρ‚Π°ΠΊΠΈΠ²Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ.

Π’Ρ‚ΠΎΡ€Π°Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°
Π‘Π»Π΅Π΄ ΠΎΠΊΠΎΠ»ΠΎ 4-5 Π΄Π½ΠΈ слСд стартиранС Π½Π° кластСра забСлязахмС, Ρ‡Π΅ Π΄Π°Ρ‚Π°-Π½ΠΎΠ΄ΠΎΠ²Π΅Ρ‚Π΅ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎ Π΄Π° ΠΈΠ·ΠΏΠ°Π΄Π°Ρ‚ ΠΎΡ‚ кластСра ΠΈ слСд Ρ‚ΠΎΠ²Π° сС Π²Ρ€ΡŠΡ‰Π°Ρ‚ Π² Π½Π΅Π³ΠΎ слСд 10-20 сСкунди.

ΠšΠΎΠ³Π°Ρ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° сС разслСдва, установихмС, Ρ‡Π΅ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° off-heap Π² Elasticsearch Π½Π΅ сС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π° практичСски ΠΏΠΎ никакъв Π½Π°Ρ‡ΠΈΠ½. ΠšΠΎΠ³Π°Ρ‚ΠΎ прСдоставихмС Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΏΠ°ΠΌΠ΅Ρ‚, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° запълвамС direct buffer pools с Ρ€Π°Π·Π»ΠΈΡ‡Π½Π° информация, ΠΈ тя сС освобоТдавашС само слСд ΠΊΠ°Ρ‚ΠΎ сС ΡΡ‚Π°Ρ€Ρ‚ΠΈΡ€Π°ΡˆΠ΅ explicit GC ΠΎΡ‚ страна Π½Π° Elasticsearch.

Π’ някои случаи Ρ‚Π°Π·ΠΈ опСрация ΠΎΡ‚Π½Π΅ΠΌΠ°ΡˆΠ΅ доста Π²Ρ€Π΅ΠΌΠ΅, ΠΈ ΠΏΡ€Π΅Π· Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΡŠΡ‚ ΡƒΡΠΏΡΠ²Π°ΡˆΠ΅ Π΄Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π° Ρ‚ΠΎΠ·ΠΈ възСл ΠΊΠ°Ρ‚ΠΎ Π²Π΅Ρ‡Π΅ излязъл. Π’ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π΅ Π΄ΠΎΠ±Ρ€Π΅ описан. Ρ‚ΡƒΠΊ.

Π Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ бСшС слСдното: ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ…ΠΌΠ΅ Π½Π° Java Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° основната част ΠΎΡ‚ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° извън Ρ…ΠΈΠΏΠ° Π·Π° Ρ‚Π΅Π·ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ…ΠΌΠ΅ я Π΄ΠΎ 16 Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚Π° (-XX:MaxDirectMemorySize=16g), постигайки Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ explicit GC сС извиквашС Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-чСсто ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ΡˆΠ΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ, ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ Π½Π΅ Π΄Π΅ΡΡ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€Π°ΡˆΠ΅ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°.

Π’Ρ€Π΅Ρ‚ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ
Ако мислитС, Ρ‡Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ с "възли, напускащи ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Π² Π½Π°ΠΉ-нСпрСдвидимия ΠΌΠΎΠΌΠ΅Π½Ρ‚" Ρ‚ΡƒΠΊ ΡΠ²ΡŠΡ€ΡˆΠ²Π°Ρ‚, Π³Ρ€Π΅ΡˆΠΈΡ‚Π΅.

ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ…ΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с индСкситС, ΠΈΠ·Π±Ρ€Π°Ρ…ΠΌΠ΅ mmapfs, Π·Π° Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ ΠΏΠΎ свСТитС ΡˆΠ°Ρ€Π΄ΠΎΠ²Π΅ с голяма сСгмСнтация. Π’ΠΎΠ²Π° бСшС доста Π³Ρ€ΡƒΠ±Π° Π³Ρ€Π΅ΡˆΠΊΠ°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° mmapfs Ρ„Π°ΠΉΠ»ΡŠΡ‚ сС ΠΌΠ°ΠΏΠ²Π° Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ‚Π° ΠΏΠ°ΠΌΠ΅Ρ‚, Π° слСд Ρ‚ΠΎΠ²Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ Π²Π΅Ρ‡Π΅ с мапнатия Ρ„Π°ΠΉΠ». ΠŸΠΎΡ€Π°Π΄ΠΈ Ρ‚ΠΎΠ²Π°, ΠΏΡ€ΠΈ ΠΎΠΏΠΈΡ‚ GC Π΄Π° спрС Π½ΠΈΡˆΠΊΠΈΡ‚Π΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Π½ΠΈ ΠΎΡ‚Π½Π΅ΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅, Π·Π° Π΄Π° достигнСм Π΄ΠΎ safepoint, ΠΈ ΠΏΠΎ ΠΏΡŠΡ‚Ρ към Π½Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ спира Π΄Π° отговаря Π½Π° запитванията Π½Π° мастСра относно Ρ‚ΠΎΠ²Π° Π΄Π°Π»ΠΈ Π΅ ΠΆΠΈΠ²ΠΎ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ, мастСра счита, Ρ‡Π΅ Π²ΡŠΠ·Π΅Π»ΡŠΡ‚ Π²Π΅Ρ‡Π΅ Π½Π΅ ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π° Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π°, слСд ΠΎΠΊΠΎΠ»ΠΎ 5-10 сСкунди, garbage collector Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°, Π²ΡŠΠ·Π΅Π»ΡŠΡ‚ сС съТивява, ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π²Π»ΠΈΠ·Π° Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° ΠΈ Π·Π°ΠΏΠΎΡ‡Π²Π° инициализация Π½Π° ΡˆΠ°Ρ€Π΄ΠΎΠ²Π΅Ρ‚Π΅. Всичко Ρ‚ΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ напомняшС Π½Π° "продукцията, която заслуТавамС" ΠΈ Π½Π΅ бСшС подходящо Π·Π° Π½Π΅Ρ‰ΠΎ сСриозно.

Π—Π° Π΄Π° сС ΠΈΠ·Π±Π°Π²ΠΈΠΌ ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΏΡŠΡ€Π²ΠΎ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Ρ…ΠΌΠ΅ Π½Π° стандартния niofs, Π° слСд Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС ΠΌΠΈΠ³Ρ€ΠΈΡ€Π°Ρ…ΠΌΠ΅ ΠΎΡ‚ ΠΏΠ΅Ρ‚ΠΈΡ‚Π΅ вСрсии Π½Π° Elastic Π½Π° ΡˆΠ΅ΡΡ‚ΠΈΡ‚Π΅, ΠΎΠΏΠΈΡ‚Π°Ρ…ΠΌΠ΅ hybridfs, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π΅ сС Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°ΡˆΠ΅. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π·Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ сторидТ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅. Ρ‚ΡƒΠΊ..

Π§Π΅Ρ‚Π²ΡŠΡ€Ρ‚ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ
Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° имашС ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ ΠΌΠ½ΠΎΠ³ΠΎ интСрСсСн ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΠΉΡ‚ΠΎ Π»Π΅Ρ‡ΠΈΡ…ΠΌΠ΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ дълго. ЛовяхмС Π³ΠΎ 2-3 мСсСца, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΌΠΎΠ΄Π΅Π»ΡŠΡ‚ ΠΌΡƒ бСшС Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ.

Понякога Π½Π°ΡˆΠΈΡ‚Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ΠΈ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Ρ…Π° Π² Full GC, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ слСдобСд, ΠΈ слСд Ρ‚ΠΎΠ²Π° Π½Π΅ сС Π²Ρ€ΡŠΡ‰Π°Ρ…Π°. По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Π»ΠΎΠ³Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° забавянията Π½Π° GC, Ρ‚ΠΎΠ²Π° изглСТдашС Ρ‚Π°ΠΊΠ°: всичко Π²ΡŠΡ€Π²Π΅ΡˆΠ΅ Π΄ΠΎΠ±Ρ€Π΅, Π΄ΠΎΠ±Ρ€Π΅, Π΄ΠΎΠ±Ρ€Π΅, Π° послС - ΠΈ всичко рязко стана лошо.

ΠŸΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ мислСхмС, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ зъл ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π», ΠΊΠΎΠΉΡ‚ΠΎ стартира някаква заявка, която ΠΈΠ·Π²Π΅ΠΆΠ΄Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€Π° ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ. Π”ΡŠΠ»Π³ΠΎ Π»ΠΎΠ³Π²Π°Ρ…ΠΌΠ΅ заявкитС, ΠΎΠΏΠΈΡ‚Π²Π°ΠΉΠΊΠΈ сС Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ сС случва.

Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка сС ΠΎΠΊΠ°Π·Π°, Ρ‡Π΅ ΠΊΠΎΠ³Π°Ρ‚ΠΎ някой ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» стартира ΠΎΠ³Ρ€ΠΎΠΌΠ½Π° заявка ΠΈ тя ΠΏΠΎΠΏΠ°Π΄Π° Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ Elasticsearch, някои Π½ΠΎΠ΄ΠΎΠ²Π΅ отговарят ΠΏΠΎ-дълго ΠΎΡ‚ останалитС.

И Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ, ΠΏΡ€Π΅Π· ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Ρ‡Π°ΠΊΠ° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ ΠΎΡ‚ всички Π½ΠΎΠ΄ΠΎΠ²Π΅, Ρ‚ΠΎΠΉ Ρ‚Ρ€ΡƒΠΏΠ° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈ ΠΎΡ‚ Π²Π΅Ρ‡Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Π½ΠΎΠ΄ΠΎΠ²Π΅. Π—Π° GC Ρ‚ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΡŠΡ‚ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Ρ…ΠΈΠΏΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡŠΡ€Π·ΠΎ сС промСня. И Ρ‚ΠΎΠ·ΠΈ GC, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅, Π½Π΅ сС ΡΠΏΡ€Π°Π²ΡΡˆΠ΅ с Ρ‚Π°Π·ΠΈ Π·Π°Π΄Π°Ρ‡Π°.

ЕдинствСното Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π°ΠΌΠ΅Ρ€ΠΈΡ…ΠΌΠ΅ Π·Π° промяна Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° кластСра Π² Ρ‚Π°ΠΊΠ°Π²Π° ситуация, Π΅ миграция към JDK13 ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΡŠΠ±ΠΈΡ€Π°Ρ‡Π° Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ Shenandoah. Π’ΠΎΠ²Π° Ρ€Π΅ΡˆΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π²Π΅Ρ‡Π΅ Π½Π΅ ΡƒΠΌΠΈΡ€Π°Ρ…Π°.

Π‘ Ρ‚ΠΎΠ²Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ с Java ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈΡ…Π° ΠΈ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ с пропускната способност.

Β«Π―Π³ΠΎΠ΄ΠΊΠΈΡ‚Π΅Β» с Elasticsearch: пропускна способност

Elasticsearch ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ с Π½Π°Π΄ 200 Π’Π‘

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ с пропускната способност ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°Ρ‚, Ρ‡Π΅ Π½Π°ΡˆΠΈΡΡ‚ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Ρ€Π°Π±ΠΎΡ‚ΠΈ стабилно, Π½ΠΎ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΏΠΈΠΊΠΎΠ²Π΅ Π½Π° индСксируСмитС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° ΠΌΠ°Π½Π΅Π²Ρ€ΠΈ производитСлността Π΅ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½Π°.

ΠŸΡŠΡ€Π²ΠΈΡΡ‚ забСлязан симптом: ΠΏΡ€ΠΈ някакви Β«Π²Π·Ρ€ΠΈΠ²ΠΎΠ²Π΅Β» Π½Π° продукцията, ΠΊΠΎΠ³Π°Ρ‚ΠΎ рязко сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΠΌΠ½ΠΎΠ³ΠΎ голямо количСство Π»ΠΎΠ³ΠΎΠ²Π΅, Π² Graylog Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° сС появява Π³Ρ€Π΅ΡˆΠΊΠ° ΠΏΡ€ΠΈ индСксиранСто es_rejected_execution.

Π’ΠΎΠ²Π° сС ΡΠ»ΡƒΡ‡Π²Π°ΡˆΠ΅, Π·Π°Ρ‰ΠΎΡ‚ΠΎ thread_pool.write.queue Π½Π° Π΅Π΄Π½Π° Π΄Π°Ρ‚Π°-Π½ΠΎΠ΄Π° ΠΏΡ€Π΅Π΄ΠΈ Elasticsearch Π΄Π° успСС Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈ заявката Π·Π° индСксиранС ΠΈ Π΄Π° запишС информацията Π² ΡˆΠ°Ρ€Π΄ Π½Π° диск ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠ΅ΡˆΠΈΡ€Π° само 200 заявки. И Π² докумСнтацията Π½Π° Elasticsearch Π·Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ сС ΠΊΠ°Π·Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΠΊΠΎ. ΠŸΠΎΡΠΎΡ‡Π΅Π½ΠΎ Π΅ само Π»ΠΈΠΌΠΈΡ‚ΡŠΡ‚ Π½Π° Π½ΠΈΡˆΠΊΠΈΡ‚Π΅ ΠΈ подразбирания Ρ€Π°Π·ΠΌΠ΅Ρ€.

Π Π°Π·Π±ΠΈΡ€Π° сС, Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° настроим Ρ‚ΠΎΠ²Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ установихмС слСдното: ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π² нашия ΡΠ΅Ρ‚ΡŠΠΏ доста Π΄ΠΎΠ±Ρ€Π΅ сС ΠΊΠ΅ΡˆΠΈΡ€Π°Ρ‚ Π΄ΠΎ 300 заявки, Π° ΠΏΠΎ-голямо Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎ с Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ Ρ‰Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌ Π² Full GC.

ОсвСн Ρ‚ΠΎΠ²Π°, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ става Π²ΡŠΠΏΡ€ΠΎΡ Π·Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΎΡ‚ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ, ΠΊΠΎΠΈΡ‚ΠΎ пристигат Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π΅Π΄Π½ΠΎ Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅, бСшС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Π° сС настрои Graylog, Π·Π° Π΄Π° записва Π½Π΅ чСсто ΠΈ Π½Π° ΠΌΠ°Π»ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, Π° Π½Π° ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΈΠ»ΠΈ Π½Π° всСки 3 сСкунди, Π°ΠΊΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ пълСн. Π’ Ρ‚Π°ΠΊΡŠΠ² случай, информацията, която записвамС Π² Elasticsearch, става Π΄ΠΎΡΡ‚ΡŠΠΏΠ½Π° Π½Π΅ слСд Π΄Π²Π΅ сСкунди, Π° слСд ΠΏΠ΅Ρ‚ (ΠΊΠΎΠ΅Ρ‚ΠΎ Π½ΠΈ устройва напълно), Π½ΠΎ намалява броя Π½Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΈΡ‚Π΅ ΠΎΠΏΠΈΡ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ, Π·Π° Π΄Π° ΠΏΡ€ΠΎΠ±ΡƒΡ‚Π°ΠΌΠ΅ голям ΠΏΠ°ΠΊΠ΅Ρ‚ информация.

Π’ΠΎΠ²Π° Π΅ особСно Π²Π°ΠΆΠ½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π½Π΅Ρ‰ΠΎ някъдС Π΅ ΠΏΠ°Π΄Π½Π°Π»ΠΎ ΠΈ яростно ΡΡŠΠΎΠ±Ρ‰Π°Π²Π° Π·Π° Ρ‚ΠΎΠ²Π°, Π·Π° Π΄Π° Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ напълно спамвания Elastic, Π° слСд извСстно Π²Ρ€Π΅ΠΌΠ΅ β€” Π½Π΅Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ Π½ΠΎΠ΄ΠΈ Graylog ΠΏΠΎΡ€Π°Π΄ΠΈ Π·Π°ΠΏΡƒΡˆΠ΅Π½ΠΈ Π±ΡƒΡ„Π΅Ρ€ΠΈ.

ОсвСн Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС случваха Ρ‚Π΅Π·ΠΈ Сксплозии Π½Π° продукцията, ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ…ΠΌΠ΅ ΠΆΠ°Π»Π±ΠΈ ΠΎΡ‚ програмисти ΠΈ тСстСри: Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠΌ трябват Ρ‚Π΅Π·ΠΈ Π»ΠΎΠ³ΠΎΠ²Π΅, Ρ‚Π΅ ΠΈΠΌ сС ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π±Π°Π²Π½ΠΎ.

Π—Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° сС разслСдвамС. ΠžΡ‚ Π΅Π΄Π½Π° страна, бСшС ясно, Ρ‡Π΅ ΠΈ Ρ‚ΡŠΡ€ΡΠ΅Ρ‰ΠΈΡ‚Π΅ заявки, ΠΈ заявкитС Π·Π° индСксиранС Ρ€Π΅Π°Π»Π½ΠΎ работят Π½Π° Π΅Π΄Π½ΠΈ ΠΈ ΡΡŠΡ‰ΠΈ физичСски машини, ΠΈ Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ спадовС Ρ‰Π΅ Π½Π°ΡΡ‚ΡŠΠΏΡΡ‚.

Но Ρ‚ΠΎΠ²Π° частично моТСшС Π΄Π° бъдС Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»Π΅Π½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° новия Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π² ΡˆΠ΅ΡΡ‚ΠΈ вСрсии Π½Π° Elasticsearch, ΠΊΠΎΠΉΡ‚ΠΎ позволява разпрСдСлянС Π½Π° запитванията ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ‚Π΅ Π΄Π°Ρ‚Π°-Π½ΠΎΠ΄ΠΈ Π½Π΅ Π½Π° случаСн ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ round-robin (ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ сС Π·Π°Π½ΠΈΠΌΠ°Π²Π° с индСксиранСто ΠΈ Π΄ΡŠΡ€ΠΆΠΈ primary-shard, ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°Π΅Ρ‚ ΠΈ Π΄Π° няма Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ Π±ΡŠΡ€Π·ΠΎ), Π° Π΄Π° насочитС Ρ‚ΠΎΠ²Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ към ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с replica-shard, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ. Π‘ Π΄Ρ€ΡƒΠ³ΠΈ Π΄ΡƒΠΌΠΈ, стигнахмС Π΄ΠΎ use_adaptive_replica_selection: true.

ΠšΠ°Ρ€Ρ‚ΠΈΠ½Π° Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅Ρ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°:

Elasticsearch ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ с Π½Π°Π΄ 200 Π’Π‘

ΠŸΡ€Π΅Ρ…ΠΎΠ΄ΡŠΡ‚ към Ρ‚ΠΎΠ·ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ имашС голям ΠΏΠΎΡ‚ΠΎΠΊ ΠΎΡ‚ Π»ΠΎΠ³ΠΎΠ²Π΅ Π·Π° запис.

Накрая, основният ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ бСшС Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½ΠΎΡ‚ΠΎ ΠΈΠ·Π²Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚ΡŠΡ€Π°.

Какво искахмС ΠΎΡ‚ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Π²Π΅Π΄Π½Π°Π³Π° слСд Π·Π°Π³ΡƒΠ±Π°Ρ‚Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ° с Π΅Π΄ΠΈΠ½ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚ΡŠΡ€:

  • Ако Π² ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚ΡŠΡ€ сС Π½Π°ΠΌΠΈΡ€Π° тСкущият master, Ρ‚ΠΎΠΉ Ρ‰Π΅ бъдС ΠΏΡ€Π΅ΠΈΠ·Π±Ρ€Π°Π½ ΠΈ Ρ‰Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ ΠΊΠ°Ρ‚ΠΎ роля Π½Π° Π΄Ρ€ΡƒΠ³Π° Π½ΠΎΠ΄Π° Π² Π΄Ρ€ΡƒΠ³ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚ΡŠΡ€.
  • ΠœΠ°ΡΡ‚ΡŠΡ€ΡŠΡ‚ Π±ΡŠΡ€Π·ΠΎ Ρ‰Π΅ ΠΈΠ·Ρ…Π²ΡŠΡ€Π»ΠΈ ΠΎΡ‚ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° всички Π½Π΅Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Π½ΠΎΠ΄ΠΈ.
  • На основа Π½Π° останалитС, Ρ‚ΠΎΠΉ Ρ‰Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅: Π² изгубСния Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚ΡŠΡ€ смС ΠΈΠΌΠ°Π»ΠΈ Ρ‚Π°ΠΊΠΈΠ²Π° primary-ΡˆΠ°Ρ€Π΄Ρ‹, Π±ΡŠΡ€Π·ΠΎ Ρ‰Π΅ ΠΏΡ€ΠΎΠΌΠΎΡ‚ΠΈΡ€Π° ΠΊΠΎΠΌΠΏΠ»ΠΈΠΌΠ΅Π½Ρ‚Π°Ρ€Π½ΠΈ replica-ΡˆΠ°Ρ€Π΄Ρ‹ Π² останалитС Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ²Π΅ ΠΈ Ρ‰Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΠΌ индСксацията Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅.
  • Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π°, Ρ‰Π΅ наблюдавамС ΠΏΠ»Π°Π²Π½ΠΎ намаляванС Π½Π° пропускната способност Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Π·Π° запис ΠΈ Ρ‡Π΅Ρ‚Π΅Π½Π΅, Π½ΠΎ Π² Ρ†Π΅Π»ΠΎΠΌ всичко Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ, ΠΌΠ°ΠΊΠ°Ρ€ ΠΈ Π±Π°Π²Π½ΠΎ, Π½ΠΎ стабилно.

ΠšΠ°ΠΊΡ‚ΠΎ сС ΠΎΠΊΠ°Π·Π°, искахмС Π½Π΅Ρ‰ΠΎ Ρ‚Π°ΠΊΠΎΠ²Π°:

Elasticsearch ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ с Π½Π°Π΄ 200 Π’Π‘

А ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ слСдното:

Elasticsearch ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ с Π½Π°Π΄ 200 Π’Π‘

Как Ρ‚Π°ΠΊΠ° сС случи?

Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° ΠΏΠ°Π΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚ΡŠΡ€Π°, Π½Π° нас Π½ΠΈ стана тясно с майстора.

Π—Π°Ρ‰ΠΎ?

Π€Π°ΠΊΡ‚ΡŠΡ‚ Π΅, Ρ‡Π΅ Π² майстора ΠΈΠΌΠ° TaskBatcher, ΠΊΠΎΠΉΡ‚ΠΎ отговаря Π·Π° разпространСниСто Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ. ВсСки ΠΈΠ·Ρ…ΠΎΠ΄ Π½Π° Π½ΠΎΠ΄Π°, всяко повишаванС Π½Π° ΡˆΠ°Ρ€Π΄ ΠΎΡ‚ replica Π² primary, всяка Π·Π°Π΄Π°Ρ‡Π° Π·Π° създаванС Π½Π° някакъв ΡˆΠ°Ρ€Π΄ β€” всичко Ρ‚ΠΎΠ²Π° ΠΏΠΎΠΏΠ°Π΄Π° ΠΏΡŠΡ€Π²ΠΎ Π² TaskBatcher, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° послСдоватСлно ΠΈ Π² Π΅Π΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ.

Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΅Π΄ΠΈΠ½ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚ΡŠΡ€, всички Π΄Π°Ρ‚Π°-Π½ΠΎΠ΄ΠΈ Π² ΠΎΡ†Π΅Π»Π΅Π»ΠΈΡ‚Π΅ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ²Π΅ смятаха Π·Π° свой дълг Π΄Π° увСдомят майстора 'Π½ΠΈΠ΅ Π·Π°Π³ΡƒΠ±ΠΈΡ…ΠΌΠ΅ Ρ‚Π°ΠΊΠΈΠ²Π° ΡˆΠ°Ρ€Π΄ΠΎΠ²Π΅ ΠΈ Ρ‚Π°ΠΊΠΈΠ²Π° Π΄Π°Ρ‚Π°-Π½ΠΎΠ΄ΠΈ'.

Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΎΡ†Π΅Π»Π΅Π»ΠΈΡ‚Π΅ Π΄Π°Ρ‚Π°-Π½ΠΎΠ΄ΠΈ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ…Π° цялата Ρ‚Π°Π·ΠΈ информация Π½Π° тСкущия майстор ΠΈ сС ΠΎΠΏΠΈΡ‚Π²Π°Ρ…Π° Π΄Π° ΠΈΠ·Ρ‡Π°ΠΊΠ°Ρ‚ ΠΏΠΎΡ‚Π²ΡŠΡ€ΠΆΠ΄Π΅Π½ΠΈΠ΅, Ρ‡Π΅ Ρ‚ΠΎΠΉ я Π΅ ΠΏΡ€ΠΈΠ΅Π». Π’Π΅ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…Π° Ρ‚ΠΎΠ²Π° ΠΏΠΎΡ‚Π²ΡŠΡ€ΠΆΠ΄Π΅Π½ΠΈΠ΅, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΌΠ°ΠΉΡΡ‚ΠΎΡ€ΡŠΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΡˆΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΡƒΡΠΏΡΠ²Π°ΡˆΠ΅ Π΄Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ. НодовСтС повтаряха заявкитС ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚, Π° ΠΌΠ°ΠΉΡΡ‚ΠΎΡ€ΡŠΡ‚ ΠΏΠΎ Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ Π²Π΅Ρ‡Π΅ Π΄ΠΎΡ€ΠΈ Π½Π΅ сС ΠΎΠΏΠΈΡ‚Π²Π°ΡˆΠ΅ Π΄Π° отговаря Π½Π° тях, Π° Π±Π΅ напълно ΠΏΠΎΠ³ΡŠΠ»Π½Π°Ρ‚ ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π·Π° сортиранС Π½Π° заявкитС ΠΏΠΎ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚.

Π’ тСрминалния Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΡˆΠ΅ сС, Ρ‡Π΅ Π΄Π°Ρ‚Π°-Π½ΠΎΠ΄ΠΈ спамят майстора Π΄ΠΎ Ρ‚Π°ΠΊΠ°Π²Π° стСпСн, Ρ‡Π΅ Ρ‚ΠΎΠΉ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΡˆΠ΅ Π² full GC. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ролята Π½Π° майстора ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΡˆΠ΅ Π½Π° някакъв слСдващ Π½ΠΎΠ΄, с Π½Π΅Π³ΠΎ сС ΡΠ»ΡƒΡ‡Π²Π°ΡˆΠ΅ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΡΡŠΡ‰ΠΎΡ‚ΠΎ ΠΈ Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΠΊΠ»ΡŠΡΡ‚ΡŠΡ€ΡŠΡ‚ сС Ρ€Π°Π·ΠΏΠ°Π΄Π°ΡˆΠ΅ напълно.

ΠŸΡ€Π°Π²ΠΈΡ…ΠΌΠ΅ измСрвания ΠΈ Π΄ΠΎ вСрсия 6.4.0, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Ρ‚ΠΎΠ²Π° бСшС ΠΏΠΎΠΏΡ€Π°Π²Π΅Π½ΠΎ, Π½ΠΈ бСшС Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΄Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°ΠΌΠ΅ Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ само 10 Π΄Π°Ρ‚Π°-Π½ΠΎΠ΄Π° ΠΎΡ‚ 360, Π·Π° Π΄Π° Ρ€Π°Π·ΠΏΠ°Π΄Π½Π΅ΠΌ напълно ΠΊΠ»ΡŠΡΡ‚ΡŠΡ€Π°.

ИзглСТдашС Ρ‚ΠΎΠ²Π° ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ‚Π°ΠΊΠ°:

Elasticsearch ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ с Π½Π°Π΄ 200 Π’Π‘

Π‘Π»Π΅Π΄ вСрсия 6.4.0, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ…Π° Ρ‚ΠΎΠ·ΠΈ уТасСн Π±Π°Π³, Π΄Π°Ρ‚Π°-Π½ΠΎΠ΄ΠΈΡ‚Π΅ спряха Π΄Π° ΡƒΠ±ΠΈΠ²Π°Ρ‚ майстора. Но Ρ‚ΠΎΠΉ Π½Π΅ стана 'ΠΏΠΎ-ΡƒΠΌΠ΅Π½' ΠΎΡ‚ Ρ‚ΠΎΠ²Π°. А ΠΈΠΌΠ΅Π½Π½ΠΎ: ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°ΠΌΠ΅ 2, 3 ΠΈΠ»ΠΈ 10 (всяко количСство, Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°) Π΄Π°Ρ‚Π°-Π½ΠΎΠ΄ΠΈ, ΠΌΠ°ΠΉΡΡ‚ΠΎΡ€ΡŠΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° някакво ΠΏΡŠΡ€Π²ΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΊΠ°Π·Π²Π°, Ρ‡Π΅ Π½ΠΎΠ΄Π° А Π΅ излязла ΠΈ сС ΠΎΠΏΠΈΡ‚Π²Π° Π΄Π° Ρ€Π°Π·ΠΊΠ°ΠΆΠ΅ Π·Π° Ρ‚ΠΎΠ²Π° Π½Π° Π½ΠΎΠ΄Π° B, Π½ΠΎΠ΄Π° C, Π½ΠΎΠ΄Π° D.

Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° СдинствСният Π½Π°Ρ‡ΠΈΠ½ Π΄Π° сС справим с Ρ‚ΠΎΠ²Π° Π΅ Ρ‡Ρ€Π΅Π· Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ ΠΎΡ‚ 20-30 сСкунди Π·Π° ΠΎΠΏΠΈΡ‚ΠΈ Π΄Π° сС Ρ€Π°Π·ΠΊΠ°ΠΆΠ΅ Π½Π° някого Π½Π΅Ρ‰ΠΎ, ΠΈ ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ Π΄Π° управлявамС скоростта Π½Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Ρ‚Π° Ρ†Π΅Π½Ρ‚ΡŠΡ€Π° ΠΎΡ‚ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°.

Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, Ρ‚ΠΎΠ²Π° отговаря Π½Π° изискванията, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ бяха поставСни към крайния ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½ΠΎ ΠΎΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° 'чистата Π½Π°ΡƒΠΊΠ°' Ρ‚ΠΎΠ²Π° Π΅ бъг. ΠšΠΎΠΉΡ‚ΠΎ, ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, бСшС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΠΎΠΏΡ€Π°Π²Π΅Π½ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π² вСрсия 7.2.

ЀактичСски, ΠΊΠΎΠ³Π°Ρ‚ΠΎ някой Π΄Π°Ρ‚Π°-Π½ΠΎΠ΄ излСзСшС, сС оказвашС, Ρ‡Π΅ Π΅ ΠΏΠΎ-Π²Π°ΠΆΠ½ΠΎ Π΄Π° сС разпространи информация Π·Π° Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π΄Π° сС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€Π° цСлият ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€, Ρ‡Π΅ Π½Π° Π½Π΅Π³ΠΎ са сС Π½Π°ΠΌΠΈΡ€Π°Π»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ primary-shards (Π·Π° Π΄Π° сС ΠΏΡ€ΠΎΠΌΠΎΡ‚ΠΈΡ€Π° replica-shard Π² Π΄Ρ€ΡƒΠ³ Π΄Π°Ρ‚Π° Ρ†Π΅Π½Ρ‚ΡŠΡ€ Π² primary, ΠΈ Π΄Π° Π΅ възмоТно записванСто Π½Π° информация).

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ всичко Π΅ 'ΠΎΡ‚ΡˆΡƒΠΌΡΠ»ΠΎ', ΠΈΠ·Π»Π΅Π·Π»ΠΈΡ‚Π΅ Π΄Π°Ρ‚Π°-Π½ΠΎΠ΄ΠΎΠ²Π΅ Π½Π΅ сС ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Ρ‚ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΠΊΠ°Ρ‚ΠΎ stale. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ, Π½ΠΈΠ΅ смС ΠΏΡ€ΠΈΠ½ΡƒΠ΄Π΅Π½ΠΈ Π΄Π° ΠΈΠ·Ρ‡Π°ΠΊΠ°ΠΌΠ΅, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΈΡ‚Π΅ Π½Π° всички ΠΏΠΈΠ½Π³ΠΈ Π΄ΠΎ ΠΈΠ·Π»Π΅Π·Π»ΠΈΡ‚Π΅ Π΄Π°Ρ‚Π°-Π½ΠΎΠ΄ΠΎΠ²Π΅ сС ΠΈΠ·Ρ‚Π΅ΠΊΠ°Ρ‚, ΠΈ Π΅Π΄Π²Π° слСд Ρ‚ΠΎΠ²Π° Π½Π°ΡˆΠΈΡΡ‚ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° Ρ€Π°Π·ΠΊΠ°Π·Π²Π° Π·Π° Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ Ρ‚ΡƒΠΊ-Ρ‚Π°ΠΌ ΠΈ Ρ‚Π°ΠΌ-Ρ‚Π°ΠΌ трябва Π΄Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈ записванСто Π½Π° информация. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π·Π° Ρ‚ΠΎΠ²Π° Ρ‚ΡƒΠΊ..

Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка опСрацията ΠΏΠΎ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Ρ‚Π° Ρ†Π΅Π½Ρ‚ΡŠΡ€Π° днСс ΠΎΡ‚Π½Π΅ΠΌΠ° ΠΎΠΊΠΎΠ»ΠΎ 5 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ Π² ΠΏΠΈΠΊΠΎΠ²ΠΈΡ‚Π΅ часовС. Π—Π° Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° голяма ΠΈ Ρ‚Ρ€ΠΎΠΌΠ°Π²Π° машина, Ρ‚ΠΎΠ²Π° Π΅ доста Π΄ΠΎΠ±ΡŠΡ€ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚.

Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка стигнахмС Π΄ΠΎ слСдното Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅:

  • ИмамС 360 Π΄Π°Ρ‚Π°-Π½ΠΎΠ΄ΠΎΠ²Π΅ с дисковС ΠΎΡ‚ 700 Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚Π°.
  • 60 ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€Π° Π·Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅Π·ΠΈ Π΄Π°Ρ‚Π°-Π½ΠΎΠ΄ΠΎΠ²Π΅.
  • 40 мастСри, ΠΊΠΎΠΈΡ‚ΠΎ бяха оставСни ΠΊΠ°Ρ‚ΠΎ наслСдство ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈ вСрсии Π΄ΠΎ 6.4.0 β€” Π·Π° Π΄Π° ΠΏΡ€Π΅ΠΆΠΈΠ²Π΅Π΅ΠΌ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄Π°Ρ‚Π° Ρ†Π΅Π½Ρ‚ΡŠΡ€Π°, бяхмС ΠΌΠΎΡ€Π°Π»Π½ΠΎ Π³ΠΎΡ‚ΠΎΠ²ΠΈ Π΄Π° Π·Π°Π³ΡƒΠ±ΠΈΠΌ няколко машини, Π·Π° Π΄Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°ΠΌΠ΅, Ρ‡Π΅ Π΄ΠΎΡ€ΠΈ ΠΏΡ€ΠΈ Π½Π°ΠΉ-лошия сцСнарий ΠΈΠΌΠ°ΠΌΠ΅ ΠΊΠ²ΠΎΡ€ΡƒΠΌ ΠΎΡ‚ мастСри.
  • Π›ΡŽΠ±ΠΈΡ‚Π΅ ΠΎΠΏΠΈΡ‚ΠΈ Π·Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€ΠΎΠ»ΠΈ Π½Π° Π΅Π΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ сС ΡΠ±Π»ΡŠΡΠΊΠ²Π°Ρ…Π° с Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ късно Π½ΠΎΠ΄ΡŠΡ‚ сС ΡΡ‡ΡƒΠΏΠ²Π°ΡˆΠ΅ ΠΏΠΎΠ΄ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅.
  • Π’ цСлия ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° heap.size, Ρ€Π°Π²Π΅Π½ Π½Π° 31 Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚: всички ΠΎΠΏΠΈΡ‚ΠΈ Π·Π° намаляванС Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π΄ΠΎΠ²Π΅Π΄ΠΎΡ…Π° Π΄ΠΎ Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ ΠΏΡ€ΠΈ Ρ‚Π΅ΠΆΠΊΠΈ Ρ‚ΡŠΡ€ΡΠ΅Π½ΠΈΡ с leading wildcard ΠΈΠ»ΠΈ ΡƒΠΌΠΈΡ€Π°Ρ‚ някои Π½ΠΎΠ΄ΠΎΠ²Π΅, ΠΈΠ»ΠΈ circuit breaker Π² самия Elasticsearch сС Π·Π°Π΄Π΅ΠΉΡΡ‚Π²Π°ΡˆΠ΅.
  • ОсвСн Ρ‚ΠΎΠ²Π°, Π·Π° осигуряванС Π½Π° производитСлността Π½Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅Ρ‚ΠΎ, сС стрСмяхмС Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°ΠΌΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ количСство ΠΎΠ±Π΅ΠΊΡ‚ΠΈ Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°, Π·Π° Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°ΠΌΠ΅ възмоТно Π½Π°ΠΉ-ΠΌΠ°Π»ΠΊΠΎ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ Π² Π½Π°ΠΉ-тясната Ρ‚ΠΎΡ‡ΠΊΠ°, която стигнахмС Π² мастСра.

Накрая, ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°

Π—Π° Π΄Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π° всичко Ρ‚Π°ΠΊΠ°, ΠΊΠ°ΠΊΡ‚ΠΎ Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½ΠΎ, слСдим Π·Π° слСдното:

  • Всяка Π΄Π°Ρ‚Π°-Π½ΠΎΠ΄Π° Π΄ΠΎΠΊΠ»Π°Π΄Π²Π° Π² Π½Π°ΡˆΠ΅Ρ‚ΠΎ ΠΎΠ±Π»Π°ΠΊΠΎ, Ρ‡Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° ΠΈ Π½Π° нСя са Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ΡˆΠ°Ρ€Π΄ΠΎΠ²Π΅. ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°ΠΌΠ΅ Π½Π΅Ρ‰ΠΎ, ΠΊΠ»Π°ΡΡ‚Π΅Ρ€ΡŠΡ‚ слСд 2-3 сСкунди Π΄ΠΎΠΊΠ»Π°Π΄Π²Π°, Ρ‡Π΅ Π² Ρ†Π΅Π½Ρ‚ΡŠΡ€ А смС ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Π½ΠΎΠ΄Π° 2, 3 ΠΈ 4 β€” Ρ‚ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΈ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ²Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎ никакъв Π½Π°Ρ‡ΠΈΠ½ Π΄Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°ΠΌΠ΅ Ρ‚Π΅Π·ΠΈ Π½ΠΎΠ΄ΠΈ, Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ остана ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΡˆΠ°Ρ€Π΄.
  • Π—Π½Π°Π΅ΠΉΠΊΠΈ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° мастСра, Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ слСдим броя Π½Π° pending-Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅. Π—Π°Ρ‰ΠΎΡ‚ΠΎ Π΄ΠΎΡ€ΠΈ Π΅Π΄Π½Π° зависнала Π·Π°Π΄Π°Ρ‡Π°, Π°ΠΊΠΎ Π½Π΅ бъдС ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π½Π°Π²Ρ€Π΅ΠΌΠ΅, Ρ‚Π΅ΠΎΡ€Π΅Ρ‚ΠΈΡ‡Π½ΠΎ Π² някоя СкстрСмна ситуация ΠΌΠΎΠΆΠ΅ Π΄Π° станС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π°, ΠΏΠΎΡ€Π°Π΄ΠΈ която Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, промоцията Π½Π° replica-ΡˆΠ°Ρ€Π΄Π° Π² primary, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ спрС индСксацията.
  • Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ слСдим забавянията Π½Π° garbage collector, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π²Π΅Ρ‡Π΅ смС ΠΈΠΌΠ°Π»ΠΈ сСриозни ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с Ρ‚ΠΎΠ²Π° ΠΏΡ€ΠΈ оптимизацията.
  • Π Π΅Π΄ΠΆΠ΅ΠΊΡ‚ΠΈΡ‚Π΅ ΠΏΠΎ Ρ‚Ρ€Π΅Π΄ΠΎΠ²Π΅Ρ‚Π΅, Π·Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ къдС сС Π½Π°ΠΌΠΈΡ€Π° 'Π±ΡƒΡ‚ΠΈΠ»ΠΎΡ‡Π½ΠΎΡ‚ΠΎ Π³ΡŠΡ€Π»ΠΎ'.
  • И стандартнитС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΠΊΠ°Ρ‚ΠΎ heap, RAM ΠΈ I/O.

ΠŸΡ€ΠΈ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π΅ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° сС Π²Π·Π΅ΠΌΠ°Ρ‚ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ особСноститС Π½Π° Thread Pool Π² Elasticsearch. ДокумСнтацията Π½Π° Elasticsearch опрСдСля Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π·Π° настройки ΠΈ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‰ΠΈ сС стойности Π·Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ ΠΈ индСксиранС, Π½ΠΎ напълно ΠΏΡ€Π΅ΠΌΡŠΠ»Ρ‡Π°Π²Π° Π·Π° thread_pool.management. Π’Π΅Π·ΠΈ Ρ‚Ρ€Π΅Π΄ΠΎΠ²Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚, Π² частност, заявки ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° _cat/shards ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΏΡ€ΠΈ написванСто Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. ΠšΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎ-голям Π΅ ΠΊΠ»Π°ΡΡ‚Π΅Ρ€ΡŠΡ‚, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅ Ρ‚Π°ΠΊΠΈΠ²Π° заявки сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π·Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Π²Ρ€Π΅ΠΌΠ΅, Π° спомСнатият thread_pool.management, освСн Ρ‡Π΅ Π½Π΅ Π΅ прСдставСн Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½Π°Ρ‚Π° докумСнтация, Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° 5 Ρ‚Ρ€Π΅Π΄Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π±ΡŠΡ€Π·ΠΎ сС ΠΈΠ·Ρ‡Π΅Ρ€ΠΏΠ²Π°, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΡŠΡ‚ спира Π΄Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π° ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ.

Бкъпи ΠΊΠΎΠ»Π΅Π³ΠΈ, искам Π΄Π° ΠΊΠ°ΠΆΠ° Π² Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅: постигнахмС Π³ΠΎ! УспяхмС Π΄Π° прСдоставим Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ програмисти ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ инструмСнт, ΠΊΠΎΠΉΡ‚ΠΎ практичСски във всяка ситуация ΠΌΠΎΠΆΠ΅ Π±ΡŠΡ€Π·ΠΎ ΠΈ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ Π΄Π° прСдостави информация Π·Π° Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ сС случва Π² продукцията.

Π”Π°, Ρ‚ΠΎΠ²Π° бСшС доста слоТно, Π½ΠΎ Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° успяхмС Π΄Π° ΠΎΠ±Π΅Π΄ΠΈΠ½ΠΈΠΌ Π½Π°ΡˆΠΈΡ‚Π΅ ТСлания Π² Π²Π΅Ρ‡Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ сС Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°ΠΌΠ΅ ΠΈ прСоправямС.

Elasticsearch ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ с Π½Π°Π΄ 200 Π’Π‘

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster