
Π‘Ρ Elasticsearch ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ. ΠΠΎ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΡΠΊΠ°Ρ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π»ΠΎΠ³ΠΎΠ²Π΅ Π½Π° "ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π³ΠΎΠ»ΡΠΌΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ"? Π ΡΠΎ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½ΠΎ Π΄Π° ΠΏΡΠ΅ΠΆΠΈΠ²Π΅Π΅Ρ ΠΎΡΠΊΠ°Π·Π° Π½Π° Π΅Π΄ΠΈΠ½ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄Π°ΡΠ° ΡΠ΅Π½ΡΡΡΠ°? ΠΠ°ΠΊΠ²ΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π° ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ΅ΠΌΠ΅Ρ ΠΈ Π½Π° ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΠΈ ΠΊΠ°ΠΌΡΠ½ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΡΡΠΊΠ½Π΅Ρ?
Π ΠΠ΄Π½ΠΎΠΊΠ»Π°ΡΠ½ΠΈΠΊΠ°Ρ ΡΠ΅ΡΠΈΡ ΠΌΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Elasticsearch Π΄Π° ΡΠ΅ΡΠΈΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅, Π° ΡΠ΅Π³Π° ΡΠΏΠΎΠ΄Π΅Π»ΡΠΌΠ΅ Ρ Π₯Π°Π±ΡΠ° ΠΎΠΏΠΈΡΠ° ΡΠΈ: Π·Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° ΠΈ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΠΈΡΠ΅ ΠΊΠ°ΠΌΡΠ½ΠΈ.
ΠΠ· ΡΡΠΌ ΠΡΠΎΡΡ ΠΠ°ΠΉΡΠ΅Π², ΡΠ°Π±ΠΎΡΡ ΠΊΠ°ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ Π² ΠΠ΄Π½ΠΎΠΊΠ»Π°ΡΠ½ΠΈΠΊΠ°Ρ . ΠΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΡΡΡΠΎ Π±ΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ, ΡΠ°Π±ΠΎΡΠΈΡ Ρ Manticore Search, Sphinx Search, Elasticsearch. ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, Π°ΠΊΠΎ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ ΠΎΡΠ΅ Π½ΡΠΊΠ°ΠΊΠ²ΠΎ β¦search, ΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΈ Ρ Π½Π΅Π³ΠΎ. Π£ΡΠ°ΡΡΠ²Π°ΠΌ ΡΡΡΠΎ Π² ΡΠ΅Π΄ΠΈΡΠ° ΠΎΠΏΠ΅Π½ΡΠΎΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π½Π° Π΄ΠΎΠ±ΡΠΎΠ²ΠΎΠ»Π½Π° ΠΎΡΠ½ΠΎΠ²Π°.
ΠΠΎΠ³Π°ΡΠΎ Π΄ΠΎΠΉΠ΄ΠΎΡ Π² ΠΠ΄Π½ΠΎΠΊΠ»Π°ΡΠ½ΠΈΠΊΠ°Ρ , Π±ΡΡ Π±Π΅Π·ΡΠ°Π·ΡΡΠ΄Π΅Π½ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²ΡΡΠΎ ΠΈ ΠΊΠ°Π·Π°Ρ , ΡΠ΅ ΡΠΌΠ΅Ρ Π΄Π° ΡΠ°Π±ΠΎΡΡ Ρ Elasticsearch. Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΠ΅ Π°Π΄Π°ΠΏΡΠΈΡΠ°Ρ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡ Π½ΡΠΊΠΎΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ, ΠΏΠΎΠ»ΡΡΠΈΡ Π³ΠΎΠ»ΡΠΌΠΎ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π·Π° ΡΠ΅ΡΠΎΡΠΌΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅, ΠΊΠΎΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ΅ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°.
ΠΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ
ΠΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° ΠΊΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π±ΡΡ Π° ΡΠΎΡΠΌΡΠ»ΠΈΡΠ°Π½ΠΈ ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½:
- ΠΠ°ΡΠΎ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Graylog. ΠΠ°ΡΠΎΡΠΎ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Π²Π΅ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΎΠΏΠΈΡ Ρ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΠΈΡΠ΅ ΠΈ ΡΠ΅ΡΡΠ΅ΡΠΈΡΠ΅ Π³ΠΎ ΠΏΠΎΠ·Π½Π°Π²Π°Ρ Π°, ΡΠΎΠΉ ΠΈΠΌ Π±Π΅ΡΠ΅ ΡΠ΄ΠΎΠ±Π΅Π½.
- ΠΠ±Π΅ΠΌ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅: ΡΡΠ΅Π΄Π½ΠΎ 50-80 Ρ ΠΈΠ»ΡΠ΄ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°, Π½ΠΎ Π°ΠΊΠΎ Π½Π΅ΡΠΎ ΡΠ΅ ΡΡΡΠΏΠΈ, ΡΡΠ°ΡΠΈΠΊΡΡ Π½Π΅ Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½, ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ 2-3 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΡΠ΅Π΄Π° Π² ΡΠ΅ΠΊΡΠ½Π΄Π°.
- Π‘Π»Π΅Π΄ ΠΎΠ±ΡΡΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΡΡΡΠ΅Π½ΠΈΡΡΠ°, ΡΠ°Π·Π±ΡΠ°Ρ ΠΌΠ΅, ΡΠ΅ ΡΠΈΠΏΠΈΡΠ½ΠΈΡΡ Π²Π°ΡΠΈΠ°Π½Ρ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ°ΠΊΠ°Π²Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π΅ ΡΠ»Π΅Π΄Π½ΠΈΡΡ: Ρ ΠΎΡΠ°ΡΠ° ΡΡΡΡΡΡ Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅ Π½Π° ΡΠ²ΠΎΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π΄Π²Π° Π΄Π½ΠΈ ΠΈ Π½Π΅ ΠΈΡΠΊΠ°Ρ Π΄Π° ΡΠ°ΠΊΠ°Ρ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° Π½Π° ΡΠΎΡΠΌΡΠ»ΠΈΡΠ°Π½ΠΎΡΠΎ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΡΠ΅ΠΊΡΠ½Π΄Π°.
- ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈΡΠ΅ Π½Π°ΡΡΠΎΡΠ²Π°Ρ Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ° ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡ, Π±Π΅Π· Π΄Π° Π΅ Π½ΡΠΆΠ½ΠΎ Π΄ΡΠ»Π±ΠΎΡΠΈΠ½Π½ΠΎ Π΄Π° ΡΠ΅ Π²Π½ΠΈΠΊΠ²Π° Π² Π½Π°ΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ ΡΡ Π΅ ΡΡΡΡΠΎΠ΅Π½Π°.
- ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π°ΡΠ° Π·Π°Π΄Π°ΡΠ° Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅Π·ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ Π°, Π±Π΅ΡΠ΅ Π΄Π° ΡΠ΅ ΡΠΌΠ΅Π½ΠΈ Π½ΡΠΊΠ°ΠΊΠ²ΠΎ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅.
- ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π² ΠΠ΄Π½ΠΎΠΊΠ»Π°ΡΠ½ΠΈΠΊΠ°Ρ ΠΈΠΌΠ° ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½Π° ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠ° ΡΡΠ°Π΄ΠΈΡΠΈΡ: Π²ΡΡΠΊΠ° ΡΡΠ»ΡΠ³Π°, ΠΊΠΎΡΡΠΎ ΠΏΡΡΠΊΠ°ΠΌΠ΅, ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΡΠ΅Π»Π΅Π΅ ΡΠ»Π΅Π΄ ΠΎΡΠΊΠ°Π· Π½Π° Π΄Π°ΡΠ° ΡΠ΅Π½ΡΡΡ (Π½Π΅ΠΎΡΠ°ΠΊΠ²Π°Π½, Π½Π΅ΠΏΠ»Π°Π½ΠΈΡΠ°Π½ ΠΈ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΠΎ Π²ΡΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅).
ΠΠΎΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½Π΅ Π·Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ Π½ΠΈ ΠΊΠΎΡΡΠ²Π° Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ»ΠΈΡ, Π·Π° ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΡΠ°Π·ΠΊΠ°ΠΆΠ° ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ.
Π‘ΡΠ΅Π΄Π°
Π Π°Π±ΠΎΡΠΈΠΌ Π½Π° ΡΠ΅ΡΠΈΡΠΈ Π΄Π°ΡΠ° ΡΠ΅Π½ΡΡΡΠ°, ΠΊΠ°ΡΠΎ Π½ΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅ Π½Π° Elasticsearch ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ ΡΠ°ΠΌΠΎ Π² ΡΡΠΈ (ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠ΅Π΄ΠΈΡΠ° Π½Π΅-ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΡΠΈΠ½ΠΈ).
Π ΡΠ΅Π·ΠΈ ΡΠ΅ΡΠΈΡΠΈ Π΄Π°ΡΠ° ΡΠ΅Π½ΡΡΡΠ° ΠΈΠΌΠ° ΠΎΠΊΠΎΠ»ΠΎ 18 Ρ ΠΈΠ»ΡΠ΄ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊΠ° Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅ β ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ.
ΠΠ°ΠΆΠ½ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ: ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π½Π΅ Π½Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ, Π° Π½Π° . ΠΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Ρ 2 ΡΠ΄ΡΠ°, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° 2.0Ghz v4 Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ ΡΠ΄ΡΠ° Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° Π±Π΅Π·Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅.
ΠΠ½Π°ΡΠ΅ ΠΊΠ°Π·Π°Π½ΠΎ:

Π’ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡ
ΠΠ±ΡΠΈΡΡ Π²ΠΈΠ΄ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΌΠΈ ΡΠ΅ ΡΡΡΡΠ²Π°ΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΈΡΡ:
- 3-4 VIP Π°Π΄ΡΠ΅ΡΠΈ ΡΡΠΎΡΡ Π·Π°Π΄ Π-Π·Π°ΠΏΠΈΡΠ° Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° Graylog, ΡΠΎΠ²Π° Π΅ Π°Π΄ΡΠ΅ΡΡΡ, Π½Π° ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅.
- ΠΡΠ΅ΠΊΠΈ VIP ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ LVS.
- Π‘Π»Π΅Π΄ ΡΠΎΠ²Π°, Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅ ΡΡΠΈΠ³Π°Ρ Π΄ΠΎ Π±Π°ΡΠ΅ΡΠΈΡΡΠ° Graylog, ΡΠ°ΡΡ ΠΎΡ Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΈΠ΄Π²Π°Ρ Π² ΡΠΎΡΠΌΠ°Ρ GELF, ΡΠ°ΡΡ Π² ΡΠΎΡΠΌΠ°Ρ syslog.
- Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π° Π² Π±Π°ΡΠ΅ΡΠΈΡ ΠΎΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡΠΈ Π½Π° Elasticsearch Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΠ°ΡΡΠΈΠ΄ΠΈ.
- Π’Π΅, ΠΎΡ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½Π°, ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ Π·Π°ΡΠ²ΠΊΠΈ Π·Π° Π·Π°ΠΏΠΈΡ ΠΈ ΡΠ΅ΡΠ΅Π½Π΅ ΠΊΡΠΌ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ Π½ΠΎΠ΄ΠΈ.

Π’Π΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ
ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π½Π΅ Π²ΡΠΈΡΠΊΠΈ Π΄Π° ΡΠ°Π·Π±ΠΈΡΠ°Ρ Π΄ΠΎΠ±ΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ°, Π·Π°ΡΠΎΠ²Π° Π±ΠΈΡ ΠΈΡΠΊΠ°Π» Π΄Π° ΡΠ΅ ΡΠΏΡΠ° Π½Π° Π½Π΅Ρ.
Π 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 data nodes.
ΠΠ½Π΄Π΅ΠΊΡΡΡ Π΅ Π³ΠΎΠ»ΡΠΌΠ° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΡΡΡΠ½ΠΎΡΡ, ΡΡΡΡΠΎΡΡa ΡΠ΅ ΠΎΡ ΡΠ°ΡΠ΄ΠΎΠ²Π΅ Π½Π° Elasticsearch. ΠΡΠ΅ΠΊΠΈ ΠΎΡ ΡΠ°ΡΠ΄ΠΎΠ²Π΅ΡΠ΅ Π½Π΅ Π΅ Π½ΠΈΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Lucene ΠΈΠ½Π΄Π΅ΠΊΡ. Π Π²ΡΠ΅ΠΊΠΈ Lucene ΠΈΠ½Π΄Π΅ΠΊΡ, ΠΎΡ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½Π°, ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈ.

ΠΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π΅, Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ ΠΌΠ΅, ΡΠ΅ Π·Π° Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈΠΌ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π·Π° ΡΠΊΠΎΡΠΎΡΡ Π½Π° ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΠ±Π΅ΠΌΠΈ Π΄Π°Π½Π½ΠΈ, ΡΡΡΠ±Π²Π° Π΄Π° "ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ" ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ ΠΏΠΎ Π΄Π°ΡΠ°-Π½ΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅.
Π’ΠΎΠ²Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΠΎΠ²Π°, ΡΠ΅ Π±ΡΠΎΡΡ Π½Π° ΡΠ°ΡΠ΄ΠΎΠ²Π΅ΡΠ΅ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡ (Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ) ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΡΡΡΠΎΠ³ΠΎ ΡΠ°Π²Π΅Π½ Π½Π° Π±ΡΠΎΡ Π½Π° Π΄Π°ΡΠ°-Π½ΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅. ΠΡΡΠ²ΠΎ, Π·Π° Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈΠΌ replication factor ΡΠ°Π²Π΅Π½ Π½Π° Π΄Π²Π΅ (Ρ.Π΅. ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°Π³ΡΠ±ΠΈΠΌ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π°ΡΠ° ΠΎΡ ΠΊΠ»ΡΡΡΠ΅ΡΠ°). Π Π²ΡΠΎΡΠΎ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΠΌΠ΅ Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ ΠΈ Π·Π°ΠΏΠΈΡ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΏΠΎΠ½Π΅ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π°ΡΠ° ΠΎΡ ΠΊΠ»ΡΡΡΠ΅ΡΠ°.
ΠΠ΅ΡΠΈΠΎΠ΄ΡΡ Π½Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡ ΠΌΠ΅ Π½Π° 30 Π΄Π½ΠΈ.
Π Π°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°ΡΠ΄ΠΎΠ²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈ Π³ΡΠ°ΡΠΈΡΠ½ΠΎ ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½:

Π¦Π΅Π»ΠΈΡΡ ΡΡΠΌΠ΅Π½ ΠΏΡΠ°Π²ΠΎΡΠ³ΡΠ»Π½ΠΈΠΊ Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΡΡ. ΠΠ΅Π²ΠΈΡΡ ΡΠ΅ΡΠ²Π΅Π½ ΠΊΠ²Π°Π΄ΡΠ°Ρ Π² Π½Π΅Π³ΠΎ Π΅ primary shard, ΠΏΡΡΠ²ΠΈΡΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ°. Π ΡΠΈΠ½ΠΈΡΡ ΠΊΠ²Π°Π΄ΡΠ°Ρ Π΅ replica shard. Π’Π΅ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΄Π°ΡΠ° ΡΠ΅Π½ΡΡΠΎΠ²Π΅.
ΠΠΎΠ³Π°ΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ ΡΠ°ΡΠ΄, ΡΠΎΠΉ ΠΏΠΎΠΏΠ°Π΄Π° Π² ΡΡΠ΅ΡΠΈΡ Π΄Π°ΡΠ° ΡΠ΅Π½ΡΡΡ. Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΡΠ°ΠΊΠ°Π²Π° ΡΡΡΡΠΊΡΡΡΠ°, ΠΊΠΎΡΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Π·Π°Π³ΡΠ±Π° Π½Π° Π΄Π°ΡΠ° ΡΠ΅Π½ΡΡΡ Π±Π΅Π· Π·Π°Π³ΡΠ±Π° Π½Π° ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅:

Π ΠΎΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ΅, Ρ.Π΅. ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ² ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π½Π°ΠΉ-ΡΡΠ°ΡΠΈΡ, Π΅ Π·Π°Π΄Π°Π΄Π΅Π½Π° Π½Π° 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, ΠΊΠΎΠΉΡΠΎ Π²Π΅ΡΠ΅ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² Π΄ΡΡΠ³ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΡ.

ΠΡ Graylog ΠΊΡΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡΠ° ΠΏΡΠΈΡΡΠΈΠ³Π° ΡΡΡΡΠ΅Π½Π΅. ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡΡΡ Π³ΠΎ ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π° ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΠΊΠ°ΡΠΎ Elasticsearch ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° round-robin ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Ρ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ primary-shard ΠΈ replica-shard.

ΠΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅, Π² ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ 180, ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π½Π΅ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ, ΠΈ Π΄ΠΎΠΊΠ°ΡΠΎ ΡΠ΅ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ, ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡΡΡ Π½Π°ΡΡΡΠΏΠ²Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΡΠΎ Π² Π½Π΅Π³ΠΎ Π²Π΅ΡΠ΅ ΡΠ° βΠΈΠ·ΠΏΠ»ΡΠ»ΠΈβ ΠΏΠΎ-Π±ΡΡΠ·ΠΈΡΠ΅ Π΄Π°ΡΠ°-Π½ΠΎΠ΄ΠΈ. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ»ΠΈ ΡΡΠ»Π°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΅ ΠΏΡΠΈΡΡΠΈΠ³Π½Π°Π»Π°, ΠΈΠ»ΠΈ ΠΏΠΎ Π·Π°ΡΠ²ΠΊΠ° Π΅ Π΄ΠΎΡΡΠΈΠ³Π½Π°Ρ ΡΠ°ΠΉΠΌΠ°ΡΡ, Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
Π¦ΡΠ»Π°ΡΠ° ΡΠ°Π·ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΡΠ΅Π΄Π½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΡΡΡΡΠ΅Π½ΠΈΡΡΠ° ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ 48 ΡΠ°ΡΠ° Π·Π° 300-400ms, Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅Π·ΠΈ Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ leading wildcard.
βΠ¦Π²Π΅ΡΡΡΠ°β Ρ Elasticsearch: Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° Java

ΠΠ° Π΄Π° ΠΏΡΠΎΡΠ°Π±ΠΎΡΠΈ Π²ΡΠΈΡΠΊΠΎ ΡΠ°ΠΊΠ°, ΠΊΠ°ΠΊΡΠΎ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΠΈΡΠΊΠ°Ρ ΠΌΠ΅, Π΄ΡΠ»Π³ΠΎ Π½Π°ΡΡΡΠΎΠΉΠ²Π°Ρ ΠΌΠ΅ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΠΈ Π½Π΅ΡΠ° Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ°.
ΠΡΡΠ²Π°ΡΠ° ΡΠ°ΡΡ ΠΎΡ ΠΎΡΠΊΡΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π±Π΅ΡΠ΅ ΡΠ²ΡΡΠ·Π°Π½Π° Ρ ΡΠΎΠ²Π°, ΠΊΠ°ΠΊ 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: ΠΏΡΠΎΠΏΡΡΠΊΠ½Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ

ΠΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ½Π°ΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ ΠΎΠ·Π½Π°ΡΠ°Π²Π°Ρ, ΡΠ΅ Π½Π°ΡΠΈΡΡ ΠΊΠ»ΡΡΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠΈ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎ, Π½ΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΠΈΠΊΠΎΠ²Π΅ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠΈΡΠ΅ Π½Π° ΠΌΠ°Π½Π΅Π²ΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠ½Π°.
ΠΡΡΠ²ΠΈΡΡ Π·Π°Π±Π΅Π»ΡΠ·Π°Π½ ΡΠΈΠΌΠΏΡΠΎΠΌ: ΠΏΡΠΈ Π½ΡΠΊΠ°ΠΊΠ²ΠΈ Β«Π²Π·ΡΠΈΠ²ΠΎΠ²Π΅Β» Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ·ΠΊΠΎ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»ΡΠΌΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π»ΠΎΠ³ΠΎΠ²Π΅, Π² Graylog Π·Π°ΠΏΠΎΡΠ²Π° Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π° Π³ΡΠ΅ΡΠΊΠ° ΠΏΡΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½Π΅ΡΠΎ es_rejected_execution.
Π’ΠΎΠ²Π° ΡΠ΅ ΡΠ»ΡΡΠ²Π°ΡΠ΅, Π·Π°ΡΠΎΡΠΎ thread_pool.write.queue Π½Π° Π΅Π΄Π½Π° Π΄Π°ΡΠ°-Π½ΠΎΠ΄Π° ΠΏΡΠ΅Π΄ΠΈ Elasticsearch Π΄Π° ΡΡΠΏΠ΅Π΅ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΈ Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Π·Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½Π΅ ΠΈ Π΄Π° Π·Π°ΠΏΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π² ΡΠ°ΡΠ΄ Π½Π° Π΄ΠΈΡΠΊ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠ΅ΡΠΈΡΠ° ΡΠ°ΠΌΠΎ 200 Π·Π°ΡΠ²ΠΊΠΈ. Π Π² Π·Π° ΡΠΎΠ·ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΅ ΠΊΠ°Π·Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΠΊΠΎ. ΠΠΎΡΠΎΡΠ΅Π½ΠΎ Π΅ ΡΠ°ΠΌΠΎ Π»ΠΈΠΌΠΈΡΡΡ Π½Π° Π½ΠΈΡΠΊΠΈΡΠ΅ ΠΈ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ.
Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΠ΅ΡΠΈΡ ΠΌΠ΅ Π΄Π° Π½Π°ΡΡΡΠΎΠΈΠΌ ΡΠΎΠ²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ ΠΌΠ΅ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ: ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π² Π½Π°ΡΠΈΡ ΡΠ΅ΡΡΠΏ Π΄ΠΎΡΡΠ° Π΄ΠΎΠ±ΡΠ΅ ΡΠ΅ ΠΊΠ΅ΡΠΈΡΠ°Ρ Π΄ΠΎ 300 Π·Π°ΡΠ²ΠΊΠΈ, Π° ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΅ ΡΠ²ΡΡΠ·Π°Π½ΠΎ Ρ ΡΠΎΠ²Π°, ΡΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΎ ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ Π² Full GC.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΡΠ°Π²Π° Π²ΡΠΏΡΠΎΡ Π·Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΎΡ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΈΡΡΠΈΠ³Π°Ρ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π΅Π΄Π½ΠΎ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅, Π±Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈ Graylog, Π·Π° Π΄Π° Π·Π°ΠΏΠΈΡΠ²Π° Π½Π΅ ΡΠ΅ΡΡΠΎ ΠΈ Π½Π° ΠΌΠ°Π»ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ, Π° Π½Π° ΠΎΠ³ΡΠΎΠΌΠ½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΈΠ»ΠΈ Π½Π° Π²ΡΠ΅ΠΊΠΈ 3 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, Π°ΠΊΠΎ ΠΏΠ°ΠΊΠ΅ΡΡΡ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ ΠΏΡΠ»Π΅Π½. Π ΡΠ°ΠΊΡΠ² ΡΠ»ΡΡΠ°ΠΉ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ°, ΠΊΠΎΡΡΠΎ Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π² Elasticsearch, ΡΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ½Π° Π½Π΅ ΡΠ»Π΅Π΄ Π΄Π²Π΅ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, Π° ΡΠ»Π΅Π΄ ΠΏΠ΅Ρ (ΠΊΠΎΠ΅ΡΠΎ Π½ΠΈ ΡΡΡΡΠΎΠΉΠ²Π° Π½Π°ΠΏΡΠ»Π½ΠΎ), Π½ΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π° Π±ΡΠΎΡ Π½Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΈΡΠ΅ ΠΎΠΏΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ, Π·Π° Π΄Π° ΠΏΡΠΎΠ±ΡΡΠ°ΠΌΠ΅ Π³ΠΎΠ»ΡΠΌ ΠΏΠ°ΠΊΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
Π’ΠΎΠ²Π° Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠΈΡΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ Π½Π΅ΡΠΎ Π½ΡΠΊΡΠ΄Π΅ Π΅ ΠΏΠ°Π΄Π½Π°Π»ΠΎ ΠΈ ΡΡΠΎΡΡΠ½ΠΎ ΡΡΠΎΠ±ΡΠ°Π²Π° Π·Π° ΡΠΎΠ²Π°, Π·Π° Π΄Π° Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠΏΠ°ΠΌΠ²Π°Π½ΠΈΡ Elastic, Π° ΡΠ»Π΅Π΄ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ β Π½Π΅ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π½ΠΎΠ΄ΠΈ Graylog ΠΏΠΎΡΠ°Π΄ΠΈ Π·Π°ΠΏΡΡΠ΅Π½ΠΈ Π±ΡΡΠ΅ΡΠΈ.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°Ρ Π° ΡΠ΅Π·ΠΈ Π΅ΠΊΡΠΏΠ»ΠΎΠ·ΠΈΠΈ Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡΡΠ°, ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ ΠΌΠ΅ ΠΆΠ°Π»Π±ΠΈ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΠΈ ΠΈ ΡΠ΅ΡΡΠ΅ΡΠΈ: Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌ ΡΡΡΠ±Π²Π°Ρ ΡΠ΅Π·ΠΈ Π»ΠΎΠ³ΠΎΠ²Π΅, ΡΠ΅ ΠΈΠΌ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π±Π°Π²Π½ΠΎ.
ΠΠ°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π·ΡΠ»Π΅Π΄Π²Π°ΠΌΠ΅. ΠΡ Π΅Π΄Π½Π° ΡΡΡΠ°Π½Π°, Π±Π΅ΡΠ΅ ΡΡΠ½ΠΎ, ΡΠ΅ ΠΈ ΡΡΡΡΠ΅ΡΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ, ΠΈ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ Π·Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½Π΅ ΡΠ΅Π°Π»Π½ΠΎ ΡΠ°Π±ΠΎΡΡΡ Π½Π° Π΅Π΄Π½ΠΈ ΠΈ ΡΡΡΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ, ΠΈ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΠΏΠ°Π΄ΠΎΠ²Π΅ ΡΠ΅ Π½Π°ΡΡΡΠΏΡΡ.
ΠΠΎ ΡΠΎΠ²Π° ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»Π΅Π½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ²ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π² ΡΠ΅ΡΡΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° Elasticsearch, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ Π΄Π°ΡΠ°-Π½ΠΎΠ΄ΠΈ Π½Π΅ Π½Π° ΡΠ»ΡΡΠ°Π΅Π½ ΠΏΡΠΈΠ½ΡΠΈΠΏ round-robin (ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π° Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈ Π΄ΡΡΠΆΠΈ primary-shard, ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°Π΅Ρ ΠΈ Π΄Π° Π½ΡΠΌΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ Π±ΡΡΠ·ΠΎ), Π° Π΄Π° Π½Π°ΡΠΎΡΠΈΡΠ΅ ΡΠΎΠ²Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ ΠΊΡΠΌ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ replica-shard, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ. Π‘ Π΄ΡΡΠ³ΠΈ Π΄ΡΠΌΠΈ, ΡΡΠΈΠ³Π½Π°Ρ ΠΌΠ΅ Π΄ΠΎ use_adaptive_replica_selection: true.
ΠΠ°ΡΡΠΈΠ½Π° Π½Π° ΡΠ΅ΡΠ΅Π½Π΅ΡΠΎ Π·Π°ΠΏΠΎΡΠ²Π° Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°:

ΠΡΠ΅Ρ ΠΎΠ΄ΡΡ ΠΊΡΠΌ ΡΠΎΠ·ΠΈ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠΈΡΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ°ΡΠ΅ Π³ΠΎΠ»ΡΠΌ ΠΏΠΎΡΠΎΠΊ ΠΎΡ Π»ΠΎΠ³ΠΎΠ²Π΅ Π·Π° Π·Π°ΠΏΠΈΡ.
ΠΠ°ΠΊΡΠ°Ρ, ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π±Π΅ΡΠ΅ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½ΠΎΡΠΎ ΠΈΠ·Π²Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΡΠ°.
ΠΠ°ΠΊΠ²ΠΎ ΠΈΡΠΊΠ°Ρ ΠΌΠ΅ ΠΎΡ ΠΊΠ»ΡΡΡΠ΅ΡΠ° Π²Π΅Π΄Π½Π°Π³Π° ΡΠ»Π΅Π΄ Π·Π°Π³ΡΠ±Π°ΡΠ° Π½Π° Π²ΡΡΠ·ΠΊΠ° Ρ Π΅Π΄ΠΈΠ½ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΡ:
- ΠΠΊΠΎ Π² ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΡ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° ΡΠ΅ΠΊΡΡΠΈΡΡ master, ΡΠΎΠΉ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΈΠ·Π±ΡΠ°Π½ ΠΈ ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ ΠΊΠ°ΡΠΎ ΡΠΎΠ»Ρ Π½Π° Π΄ΡΡΠ³Π° Π½ΠΎΠ΄Π° Π² Π΄ΡΡΠ³ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΡ.
- ΠΠ°ΡΡΡΡΡΡ Π±ΡΡΠ·ΠΎ ΡΠ΅ ΠΈΠ·Ρ Π²ΡΡΠ»ΠΈ ΠΎΡ ΠΊΠ»ΡΡΡΠ΅ΡΠ° Π²ΡΠΈΡΠΊΠΈ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π½ΠΎΠ΄ΠΈ.
- ΠΠ° ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅, ΡΠΎΠΉ ΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅: Π² ΠΈΠ·Π³ΡΠ±Π΅Π½ΠΈΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΡ ΡΠΌΠ΅ ΠΈΠΌΠ°Π»ΠΈ ΡΠ°ΠΊΠΈΠ²Π° primary-ΡΠ°ΡΠ΄Ρ, Π±ΡΡΠ·ΠΎ ΡΠ΅ ΠΏΡΠΎΠΌΠΎΡΠΈΡΠ° ΠΊΠΎΠΌΠΏΠ»ΠΈΠΌΠ΅Π½ΡΠ°ΡΠ½ΠΈ replica-ΡΠ°ΡΠ΄Ρ Π² ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠΎΠ²Π΅ ΠΈ ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅.
- Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π°, ΡΠ΅ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°ΠΌΠ΅ ΠΏΠ»Π°Π²Π½ΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΏΡΡΠΊΠ½Π°ΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° Π·Π° Π·Π°ΠΏΠΈΡ ΠΈ ΡΠ΅ΡΠ΅Π½Π΅, Π½ΠΎ Π² ΡΠ΅Π»ΠΎΠΌ Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ, ΠΌΠ°ΠΊΠ°Ρ ΠΈ Π±Π°Π²Π½ΠΎ, Π½ΠΎ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎ.
ΠΠ°ΠΊΡΠΎ ΡΠ΅ ΠΎΠΊΠ°Π·Π°, ΠΈΡΠΊΠ°Ρ ΠΌΠ΅ Π½Π΅ΡΠΎ ΡΠ°ΠΊΠΎΠ²Π°:

Π ΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ:

ΠΠ°ΠΊ ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ»ΡΡΠΈ?
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° ΠΏΠ°Π΄Π°Π½Π΅ΡΠΎ Π½Π° Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΡΠ°, Π½Π° Π½Π°Ρ Π½ΠΈ ΡΡΠ°Π½Π° ΡΡΡΠ½ΠΎ Ρ ΠΌΠ°ΠΉΡΡΠΎΡΠ°.
ΠΠ°ΡΠΎ?
Π€Π°ΠΊΡΡΡ Π΅, ΡΠ΅ Π² ΠΌΠ°ΠΉΡΡΠΎΡΠ° ΠΈΠΌΠ° TaskBatcher, ΠΊΠΎΠΉΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π·Π° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΡΡΠ±ΠΈΡΠΈΡ. ΠΡΠ΅ΠΊΠΈ ΠΈΠ·Ρ ΠΎΠ΄ Π½Π° Π½ΠΎΠ΄Π°, Π²ΡΡΠΊΠΎ ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠ°ΡΠ΄ ΠΎΡ replica Π² primary, Π²ΡΡΠΊΠ° Π·Π°Π΄Π°ΡΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π½ΡΠΊΠ°ΠΊΡΠ² ΡΠ°ΡΠ΄ β Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΏΠΎΠΏΠ°Π΄Π° ΠΏΡΡΠ²ΠΎ Π² TaskBatcher, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΠΈ Π² Π΅Π΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ.
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΅Π΄ΠΈΠ½ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΡ, Π²ΡΠΈΡΠΊΠΈ Π΄Π°ΡΠ°-Π½ΠΎΠ΄ΠΈ Π² ΠΎΡΠ΅Π»Π΅Π»ΠΈΡΠ΅ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠΎΠ²Π΅ ΡΠΌΡΡΠ°Ρ Π° Π·Π° ΡΠ²ΠΎΠΉ Π΄ΡΠ»Π³ Π΄Π° ΡΠ²Π΅Π΄ΠΎΠΌΡΡ ΠΌΠ°ΠΉΡΡΠΎΡΠ° 'Π½ΠΈΠ΅ Π·Π°Π³ΡΠ±ΠΈΡ ΠΌΠ΅ ΡΠ°ΠΊΠΈΠ²Π° ΡΠ°ΡΠ΄ΠΎΠ²Π΅ ΠΈ ΡΠ°ΠΊΠΈΠ²Π° Π΄Π°ΡΠ°-Π½ΠΎΠ΄ΠΈ'.
Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΎΡΠ΅Π»Π΅Π»ΠΈΡΠ΅ Π΄Π°ΡΠ°-Π½ΠΎΠ΄ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ Π° ΡΡΠ»Π°ΡΠ° ΡΠ°Π·ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π° ΡΠ΅ΠΊΡΡΠΈΡ ΠΌΠ°ΠΉΡΡΠΎΡ ΠΈ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°Ρ Π° Π΄Π° ΠΈΠ·ΡΠ°ΠΊΠ°Ρ ΠΏΠΎΡΠ²ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅, ΡΠ΅ ΡΠΎΠΉ Ρ Π΅ ΠΏΡΠΈΠ΅Π». Π’Π΅ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡ Π° ΡΠΎΠ²Π° ΠΏΠΎΡΠ²ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΌΠ°ΠΉΡΡΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΡΠ΅ Π·Π°Π΄Π°ΡΠΈΡΠ΅ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΡΡΠΏΡΠ²Π°ΡΠ΅ Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ. ΠΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΠ²ΡΠ°ΡΡΡ Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ°ΡΡ, Π° ΠΌΠ°ΠΉΡΡΠΎΡΡΡ ΠΏΠΎ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅ Π²Π΅ΡΠ΅ Π΄ΠΎΡΠΈ Π½Π΅ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΡΠ΅ Π΄Π° ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° ΡΡΡ , Π° Π±Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΠΎΠ³ΡΠ»Π½Π°Ρ ΠΎΡ Π·Π°Π΄Π°ΡΠ°ΡΠ° Π·Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΠΏΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ.
Π ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π½ΠΈΡ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΡΠ΅ ΡΠ΅, ΡΠ΅ Π΄Π°ΡΠ°-Π½ΠΎΠ΄ΠΈ ΡΠΏΠ°ΠΌΡΡ ΠΌΠ°ΠΉΡΡΠΎΡΠ° Π΄ΠΎ ΡΠ°ΠΊΠ°Π²Π° ΡΡΠ΅ΠΏΠ΅Π½, ΡΠ΅ ΡΠΎΠΉ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°ΡΠ΅ Π² full GC. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠΎΠ»ΡΡΠ° Π½Π° ΠΌΠ°ΠΉΡΡΠΎΡΠ° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°ΡΠ΅ Π½Π° Π½ΡΠΊΠ°ΠΊΡΠ² ΡΠ»Π΅Π΄Π²Π°Ρ Π½ΠΎΠ΄, Ρ Π½Π΅Π³ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°ΡΠ΅ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΡΡΠΎΡΠΎ ΠΈ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΠΊΠ»ΡΡΡΡΡΡΡ ΡΠ΅ ΡΠ°Π·ΠΏΠ°Π΄Π°ΡΠ΅ Π½Π°ΠΏΡΠ»Π½ΠΎ.
ΠΡΠ°Π²ΠΈΡ ΠΌΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Π½ΠΈΡ ΠΈ Π΄ΠΎ Π²Π΅ΡΡΠΈΡ 6.4.0, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠΎΠ²Π° Π±Π΅ΡΠ΅ ΠΏΠΎΠΏΡΠ°Π²Π΅Π½ΠΎ, Π½ΠΈ Π±Π΅ΡΠ΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°ΠΌΠ΅ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΌΠΎ 10 Π΄Π°ΡΠ°-Π½ΠΎΠ΄Π° ΠΎΡ 360, Π·Π° Π΄Π° ΡΠ°Π·ΠΏΠ°Π΄Π½Π΅ΠΌ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΊΠ»ΡΡΡΡΡΠ°.
ΠΠ·Π³Π»Π΅ΠΆΠ΄Π°ΡΠ΅ ΡΠΎΠ²Π° ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ ΡΠ°ΠΊΠ°:

Π‘Π»Π΅Π΄ Π²Π΅ΡΡΠΈΡ 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. ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°ΡΠΈ ΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π·Π° ΡΡΡΡΠ΅Π½Π΅ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½Π΅, Π½ΠΎ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΡΠ΅ΠΌΡΠ»ΡΠ°Π²Π° Π·Π° thread_pool.management. Π’Π΅Π·ΠΈ ΡΡΠ΅Π΄ΠΎΠ²Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡ, Π·Π°ΡΠ²ΠΊΠΈ ΠΎΡ ΡΠΈΠΏΠ° _cat/shards ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³. ΠΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌ Π΅ ΠΊΠ»Π°ΡΡΠ΅ΡΡΡ, ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ°ΠΊΠΈΠ²Π° Π·Π°ΡΠ²ΠΊΠΈ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π·Π° Π΅Π΄ΠΈΠ½ΠΈΡΠ° Π²ΡΠ΅ΠΌΠ΅, Π° ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΈΡΡ thread_pool.management, ΠΎΡΠ²Π΅Π½ ΡΠ΅ Π½Π΅ Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ Π² ΠΎΡΠΈΡΠΈΠ°Π»Π½Π°ΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° 5 ΡΡΠ΅Π΄Π°, ΠΊΠΎΠ΅ΡΠΎ Π±ΡΡΠ·ΠΎ ΡΠ΅ ΠΈΠ·ΡΠ΅ΡΠΏΠ²Π°, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΡΡ ΡΠΏΠΈΡΠ° Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ.
Π‘ΠΊΡΠΏΠΈ ΠΊΠΎΠ»Π΅Π³ΠΈ, ΠΈΡΠΊΠ°ΠΌ Π΄Π° ΠΊΠ°ΠΆΠ° Π² Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅: ΠΏΠΎΡΡΠΈΠ³Π½Π°Ρ ΠΌΠ΅ Π³ΠΎ! Π£ΡΠΏΡΡ ΠΌΠ΅ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠΌ Π½Π° Π½Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΠΈ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ² Π²ΡΡΠΊΠ° ΡΠΈΡΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅ Π±ΡΡΠ·ΠΎ ΠΈ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡΡΠ°.
ΠΠ°, ΡΠΎΠ²Π° Π±Π΅ΡΠ΅ Π΄ΠΎΡΡΠ° ΡΠ»ΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π° ΡΡΠΏΡΡ ΠΌΠ΅ Π΄Π° ΠΎΠ±Π΅Π΄ΠΈΠ½ΠΈΠΌ Π½Π°ΡΠΈΡΠ΅ ΠΆΠ΅Π»Π°Π½ΠΈΡ Π² Π²Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°ΠΌΠ΅ ΠΈ ΠΏΡΠ΅ΠΎΠΏΡΠ°Π²ΡΠΌΠ΅.

ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
