Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΠΌ Π΄Π° сС Π·Π°ΠΏΠΎΠ·Π½Π°Π΅Ρ‚Π΅ с Ρ€Π°Π·ΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ°Ρ‚Π° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π° ΠΎΡ‚ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° 2016 Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° АндрСй Бальников "Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql"

Π’ Ρ‚ΠΎΠ·ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌ основнитС Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ‚ Π½Π° Π΅Ρ‚Π°ΠΏΠ° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π΅ ΠΈ написванС Π½Π° ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. Π©Π΅ сС фокусирам само Π½Π° Ρ‚Π΅Π·ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² Postgresql. ОбикновСно, Ρ‚Π΅ са Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° края Π½Π° производитСлността Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° систСма ΠΊΠ°Ρ‚ΠΎ цяло, ΠΌΠ°ΠΊΠ°Ρ€ Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π΄Π° Π½Π΅ Π΅ Π±ΠΈΠ»ΠΎ Π²ΠΈΠ΄ΠΈΠΌΠΎ.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

Π Π°Π΄Π²Π°ΠΌ сС Π΄Π° Π²ΠΈ привСтствам! Π’ΠΎΠ·ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ Π½Π΅ Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° тСхничСски, ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ ΠΎΡ‚ моя ΠΊΠΎΠ»Π΅Π³Π°. Π’ΠΎΠΉ Π΅ насочСн основно към Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π°, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ голям Π±Ρ€ΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ. И Ρ‚Π΅ всички правят Π΅Π΄Π½ΠΈ ΠΈ ΡΡŠΡ‰ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ. Π©Π΅ Π²ΠΈ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° Π·Π° тях. Π©Π΅ обясня ΠΊΠ°ΠΊΠ²ΠΈ Ρ„Π°Ρ‚Π°Π»Π½ΠΈ ΠΈ лоши послСдици водят Ρ‚Π΅Π·ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

Π—Π°Ρ‰ΠΎ сС правят Π³Ρ€Π΅ΡˆΠΊΠΈ? Π’Π΅ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ ΠΏΠΎ Π΄Π²Π΅ основни ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ: Π½Π° авось, ΠΌΠΎΠΆΠ΅ Π±ΠΈ Ρ‰Π΅ ΠΌΠΈΠ½Π΅, ΠΈ ΠΏΠΎΡ€Π°Π΄ΠΈ Π½Π΅Π·Π½Π°Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€ΠΎΡ‚ΠΈΡ‡Π°Ρ‚ Π½Π° Π½ΠΈΠ²ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π°Π·Π°Ρ‚Π° ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π² самата Π±Π°Π·Π°.

Π©Π΅ Π²ΠΈ Π΄Π°ΠΌ Ρ‚Ρ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° с уТасни Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‰ΠΈ ΠΊΠ°ΠΊ всичко Π΅ станало лошо. Накратко Ρ‰Π΅ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° Π·Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‚Π°ΠΌ ΠΏΡ€ΠΎΡ‚ΠΈΡ‡Π°. И ΠΊΠ°ΠΊ Π΄Π° сС справим с тях, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС случат, ΠΈ ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡ€Π΅Π²Π°Π½Ρ‚ΠΈΠ²Π½ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π·Π° прСдотвратяванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ. Π©Π΅ Π²ΠΈ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° Π·Π° ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ инструмСнти ΠΈ Ρ‰Π΅ Π΄Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²Π΅.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Ρ… тСстова Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Π² която ΠΈΠΌΠ°Ρ… Π΄Π²Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ. Π•Π΄Π½Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ‡ΠΊΠ° Π΅ със смСткитС Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅, Π° Π΄Ρ€ΡƒΠ³Π°Ρ‚Π° с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ ΠΏΠΎ Ρ‚Π΅Π·ΠΈ смСтки. И с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° пСриодичност обновявамС ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈΡ‚Π΅ ΠΏΠΎ Ρ‚Π΅Π·ΠΈ смСтки.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

Π˜Π·Ρ…ΠΎΠ΄Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°: тя Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ ΠΌΠ°Π»ΠΊΠ°, 2 MB. Π’Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ ΠΏΠΎ Π±Π°Π·Π°Ρ‚Π° ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΡΡŠΡ‰ΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Ρ€ΠΎ. И Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π΅ доста Π΄ΠΎΠ±Ρ€ΠΎ – 2000 ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² сСкунда ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

ΠŸΡ€Π΅Π· Ρ‚ΠΎΠ·ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ Ρ‰Π΅ Π²ΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π°ΠΌ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Π·Π° Π΄Π° бъдС ясно ΠΊΠ°ΠΊΠ²ΠΎ сС случва. Π’ΠΈΠ½Π°Π³ΠΈ Ρ‰Π΅ ΠΈΠΌΠ° 2 слайда с Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. ΠŸΡŠΡ€Π²ΠΈΡΡ‚ слайд – Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ сС случва ΠΊΠ°Ρ‚ΠΎ цяло Π½Π° ΡΡŠΡ€Π²Π΅Ρ€Π°.

Π’ Ρ‚Π°Π·ΠΈ ситуация Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ наистина ΠΈΠΌΠ°ΠΌΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π° с малък Ρ€Π°Π·ΠΌΠ΅Ρ€. Π˜Π½Π΄Π΅ΠΊΡΡŠΡ‚ Π΅ малък - 2 MB. Π’ΠΎΠ²Π° Π΅ ΠΏΡŠΡ€Π²ΠΈΡΡ‚ Π³Ρ€Π°Ρ„ΠΈΠΊ отляво.

Π‘Ρ€Π΅Π΄Π½ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° ΡΡŠΡ‰ΠΎ Π΅ стабилно ΠΈ ΠΌΠ°Π»ΠΊΠΎ. Π’ΠΎΠ²Π° Π΅ горният дСсСн Π³Ρ€Π°Ρ„ΠΈΠΊ.

ЛСвият Π΄ΠΎΠ»Π΅Π½ Π³Ρ€Π°Ρ„ΠΈΠΊ ΠΏΠΎΠΊΠ°Π·Π²Π° Π½Π°ΠΉ-Π΄ΡŠΠ»Π³ΠΈΡ‚Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π±ΡŠΡ€Π·ΠΎ. ΠΠ²Ρ‚ΠΎΠ²Π°ΠΊΡƒΡƒΠΌΡŠΡ‚ всС ΠΎΡ‰Π΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ Ρ‚ΡƒΠΊ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Ρ‚ΠΎΠ²Π° бСшС стартов тСст. БлСдващият Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΈ Ρ‰Π΅ бъдС ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π·Π° нас.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

Вторият слайд Π²ΠΈΠ½Π°Π³ΠΈ Ρ‰Π΅ бъдС посвСтСн Π½Π° тСстваната Ρ‚Π°Π±Π»ΠΈΡ†Π°. Π’ Ρ‚Π°Π·ΠΈ ситуация постоянно обновявамС оставащитС суми ΠΏΠΎ смСткитС Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ срСдното Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° опСрацията Π·Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΅ доста Π΄ΠΎΠ±Ρ€ΠΎ, ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ милисСкунда. ЗабСлязвамС, Ρ‡Π΅ рСсурситС Π½Π° процСсора (Ρ‚ΠΎΠ²Π° Π΅ дСсният Π³ΠΎΡ€Π΅Π½ Π³Ρ€Π°Ρ„ΠΈΠΊ) ΡΡŠΡ‰ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ ΠΈ Π² относитСлно ΠΌΠ°Π»ΠΊΠΈ количСства.

ДСсният Π΄ΠΎΠ»Π΅Π½ Π³Ρ€Π°Ρ„ΠΈΠΊ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠΎΠ»ΠΊΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π° ΠΈ дискова ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Ρ‚ΡŠΡ€ΡΠΈΠΌ нСобходимия Ρ€Π΅Π΄, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ. Броят Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π΅ 2000 Π² сСкунда, ΠΊΠ°ΠΊΡ‚ΠΎ спомСнах ΠΏΠΎ-Ρ€Π°Π½ΠΎ.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

И сСга сС случва трагСдия. По някаква ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° възниква дълга Π·Π°Π±Ρ€Π°Π²Π΅Π½Π° транзакция. ΠŸΡ€ΠΈΡ‡ΠΈΠ½ΠΈΡ‚Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ са Π±Π°Π½Π°Π»Π½ΠΈ:

  • Π•Π΄Π½Π° ΠΎΡ‚ Π½Π°ΠΉ-разпространСнитС Π΅, Ρ‡Π΅ Π² прилоТСнския ΠΊΠΎΠ΄ Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ Π΄Π° сС ΡΠ²ΡŠΡ€Π·Π²Π°ΠΌΠ΅ с външна услуга. И Ρ‚Π°Π·ΠΈ услуга Π½Π΅ Π½ΠΈ отговаря. Π’.Π΅. ΠΎΡ‚Π²ΠΎΡ€ΠΈΠ»ΠΈ смС транзакция, внСсли смС промяна Π² Π±Π°Π·Π°Ρ‚Π° ΠΈ ΠΎΡ‚ΠΈΡˆΠ»ΠΈ смС Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ ΠΈΠΌΠ΅ΠΉΠ»Π° ΠΈΠ»ΠΈ Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅ΠΌ с Π΄Ρ€ΡƒΠ³Π° услуга Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° инфраструктура, ΠΈ ΠΏΠΎ някаква ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° тя Π½Π΅ Π½ΠΈ отговаря. И сСсията Π½ΠΈ остава висяща Π² ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ – Π½Π΅ Π·Π½Π°Π΅ΠΌ ΠΊΠΎΠ³Π° Ρ‰Π΅ бъдС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π°.
  • Π’Ρ‚ΠΎΡ€Π°Ρ‚Π° ситуация Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π² ΠΊΠΎΠ΄Π° Π½ΠΈ ΠΏΠΎ някаква ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π΅ възникнал exception. И Π½ΠΈΠ΅ Π½Π΅ смС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈΠ»ΠΈ затварянСто Π½Π° транзакцията Π² exception. ΠŸΠΎΠ»ΡƒΡ‡Π°Π²Π° сС висяща сСсия с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½Π° транзакция.
  • И послСдната – Ρ‚ΠΎΠ²Π° ΡΡŠΡ‰ΠΎ Π΅ доста чСсто срСщан случай. Π’ΠΎΠ²Π° Π΅ нСкачСствСн ΠΊΠΎΠ΄. Някои Ρ„Ρ€Π΅ΠΉΠΌΠΎΠ²Π΅ отварят транзакция. Вя остава висяща, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Ρ‡Π΅ тя Π΅ Ρ‚Π°ΠΌ.

Към ΠΊΠ°ΠΊΠ²ΠΎ водят Ρ‚Π°ΠΊΠΈΠ²Π° Π½Π΅Ρ‰Π°?

Към Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ ΠΈ индСкситС Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ Π΄Π° сС ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Ρ‚ рязко. Π’ΠΎΠ²Π° Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Ρ„Π΅ΠΊΡ‚ΡŠΡ‚ bloat. Π—Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Ρ‚ΠΎΠ²Π° Ρ‰Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ рязко Ρ‰Π΅ сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ, Ρ‰Π΅ сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Ρ‰Π΅ пострада. Π—Π°Ρ‰ΠΎΡ‚ΠΎ Π°ΠΊΠΎ Π² ΠΊΠΎΠ΄Π° стС отдСляли 10 милисСкунди Π·Π° заявка към Π±Π°Π·Π°Ρ‚Π°, 10 милисСкунди Π·Π° собствСната си Π»ΠΎΠ³ΠΈΠΊΠ°, Ρ‚ΠΎ функцията Π²ΠΈ Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈΠ»Π° 20 милисСкунди. А сСга ситуацията Ρ‰Π΅ Π΅ напълно Ρ‚ΡŠΠΆΠ½Π°.

НСка Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ сС случва. ЛСвият Π΄ΠΎΠ»Π΅Π½ Π³Ρ€Π°Ρ„ΠΈΠΊ ΠΏΠΎΠΊΠ°Π·Π²Π°, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ дълга транзакция. И Π°ΠΊΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ лСвия Π³ΠΎΡ€Π΅Π½ Π³Ρ€Π°Ρ„ΠΈΠΊ, Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΎΡ‚ Π΄Π²Π° ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π° рязко Π΅ скочил Π΄ΠΎ 300 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π°. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ количСството Π΄Π°Π½Π½ΠΈ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π½Π΅ сС Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ»ΠΎ, Ρ‚.Π΅. Ρ‚Π°ΠΌ ΠΈΠΌΠ° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ количСство Π±ΠΎΠΊΠ»ΡƒΠΊ.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

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

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

Какво сС случва с Π½Π°ΡˆΠ°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°? Π‘ΡŠΡ‰ΠΎΡ‚ΠΎ. Π‘Ρ€Π΅Π΄Π½ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π½ΠΈ рязко сС Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»ΠΎ. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΏΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±Π΅Π½ΠΈΡ‚Π΅ рСсурси Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° процСсора Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΎ. Π’ΠΎΠ²Π° Π΅ горният дСсСн Π³Ρ€Π°Ρ„ΠΈΠΊ. И сС Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»ΠΎ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΠΎΡ€ΡŠΡ‚ сС ΠΎΠΏΠΈΡ‚Π²Π° Π΄Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄Π° ΠΊΡƒΠΏ Π½Π΅Π½ΡƒΠΆΠ½ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° Π΅Π΄ΠΈΠ½ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ. Π’ΠΎΠ²Π° Π΅ долният дСсСн Π³Ρ€Π°Ρ„ΠΈΠΊ. И ΠΊΠ°Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ – броят Π½Π° повикванията Π² сСкунда рязко Π·Π°ΠΏΠΎΡ‡Π½Π° Π΄Π° ΠΏΠ°Π΄Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π΅ успява Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΡΡŠΡ‰ΠΎΡ‚ΠΎ количСство заявки.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

Врябва Π΄Π° сС Π²ΡŠΡ€Π½Π΅ΠΌ към нормалност. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π°ΠΌΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅, Ρ‡Π΅ Π΄ΡŠΠ»Π³ΠΈΡ‚Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ водят Π΄ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. НамСрим ΠΈ ΡƒΠ½ΠΈΡ‰ΠΎΠΆΠ°Π²Π°ΠΌΠ΅ Ρ‚Π°Π·ΠΈ транзакция. И всичко сС Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°. Всичко Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠ°ΠΊΡ‚ΠΎ трябва.

УспокоявамС сС, Π½ΠΎ слСд извСстно Π²Ρ€Π΅ΠΌΠ΅ Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ Π΄Π° забСлязвамС, Ρ‡Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ Ρ‚Π°ΠΊΠ°, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ Π°Π²Π°Ρ€ΠΈΠΉΠ½Π°Ρ‚Π° ситуация. ЗаявкитС всС ΠΎΡ‰Π΅ сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ, ΠΈ Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ. Π’ конкрСтния ΠΌΠΈ случай, скоростта Π΅ Π·Π°Π±Π°Π²Π΅Π½Π° с Π΅Π΄Π½Π° Π΄ΠΎ Π΄Π²Π΅ Ρ‚Ρ€Π΅Ρ‚ΠΈ. НатоварванСто Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° ΡΡŠΡ‰ΠΎ Π΅ ΠΏΠΎ-високо, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ бСшС ΠΏΡ€Π΅Π΄ΠΈ аварията.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

И Π²ΡŠΠΏΡ€ΠΎΡΡŠΡ‚ Π΅: β€žΠšΠ°ΠΊΠ²ΠΎ сС случва с Π±Π°Π·Π°Ρ‚Π° Π² Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚?β€œ. Π‘ Π±Π°Π·Π°Ρ‚Π° сС случва слСдното. На Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π²ΠΈΠΆΠ΄Π°Ρ‚Π΅, Ρ‡Π΅ тя Π΅ спряна ΠΈ Ρ‚Π°ΠΌ наистина няма дълги Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Но Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° аварията Ρ„Π°Ρ‚Π°Π»Π½ΠΎ нараснаха. И ΠΎΡ‚Ρ‚ΠΎΠ³Π°Π²Π° Π½Π΅ намаляха. Π‘Ρ€Π΅Π΄Π½ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° Π±Π°Π·Π° сС стабилизира. И ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° работят Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎ с ΠΏΡ€ΠΈΠ΅ΠΌΠ»ΠΈΠ²Π° Π·Π° нас скорост. Автоматичният Π²Π°ΠΊΡƒΡƒΠΌ стана ΠΏΠΎ-Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΈ Π·Π°ΠΏΠΎΡ‡Π½Π° Π΄Π° ΠΏΡ€Π°Π²ΠΈ Π½Π΅Ρ‰ΠΎ с Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ трябва Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΏΠΎ-голямо количСство Π΄Π°Π½Π½ΠΈ.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

По ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° провСряваната Ρ‚Π°Π±Π»ΠΎ със смСтки, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ промСнямС ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈΡ‚Π΅: Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° сС Π΅ Π²ΡŠΡ€Π½Π°Π»ΠΎ Π² Π½ΠΎΡ€ΠΌΠ°Ρ‚Π°. Но Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Ρ‚ΠΎ Π΅ ΠΎΠΊΠΎΠ»ΠΎ 1.5 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-високо.

И ΠΏΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° процСсора Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π΅ сС Π΅ Π²ΡŠΡ€Π½Π°Π»ΠΎ Π΄ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ ΠΏΡ€Π΅Π΄ΠΈ аварията. ΠŸΡ€ΠΈΡ‡ΠΈΠ½ΠΈΡ‚Π΅ сС крият Π² дСсния Π΄ΠΎΠ»Π΅Π½ Π³Ρ€Π°Ρ„ΠΈΠΊ. Π’ΠΈΠ΄Π½ΠΎ Π΅, Ρ‡Π΅ Ρ‚Π°ΠΌ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ количСство ΠΏΠ°ΠΌΠ΅Ρ‚. ВоСст, Π·Π° Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ нуТния Ρ€Π΅Π΄, Ρ…Π°Ρ€Ρ‡ΠΈΠΌ рСсурситС Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚Π²Π°ΠΌΠ΅ Π±Π΅Π·ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π΄Π°Π½Π½ΠΈ. Броят Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π² сСкунда сС Π΅ стабилизирал.

Π’ ΠΎΠ±Ρ‰ΠΈ Π»ΠΈΠ½ΠΈΠΈ Π΅ Π΄ΠΎΠ±Ρ€Π΅, Π½ΠΎ ситуацията Π΅ ΠΏΠΎ-лоша, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ. Ясна дСградация Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Π² слСдствиС Π½Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ с Ρ‚Π°Π·ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

И Π·Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ сС случва, Π°ΠΊΠΎ Π½Π΅ стС Π±ΠΈΠ»ΠΈ Π½Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° прСзСнтация, сСга ΠΌΠ°Π»ΠΊΠΎ тСория. ВСория Π·Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ процСс. Какво Π΅ Π°Π²Ρ‚ΠΎ-Π²Π°ΠΊΡƒΡƒΠΌ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡ€Π°Π²ΠΈ?

Накратко, Π·Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅. Π’ Π΅Π΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΠΌΠ°ΠΌΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π°. Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΈΠΌΠ°ΠΌΠ΅ Ρ€Π΅Π΄ΠΎΠ²Π΅. Π’Π΅Π·ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ, ΠΆΠΈΠ²ΠΈ, Π½ΡƒΠΆΠ½ΠΈ Π½ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°. На ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°Ρ‚Π° Ρ‚Π΅ са ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ΠΈ с Π·Π΅Π»Π΅Π½ цвят. И ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΡŠΡ€Ρ‚Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π²Π΅Ρ‡Π΅ са ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ, ΠΎΠ±Π½ΠΎΠ²Π΅Π½ΠΈ, ΠΏΠΎ тях са появили Π½ΠΎΠ²ΠΈ записи. Π’Π΅ са ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ Π²Π΅Ρ‡Π΅ нСинтСрСсни Π·Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. Но остават Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π·Π°Ρ€Π°Π΄ΠΈ особСноститС Π½Π° Postgres.

Π—Π°Ρ‰ΠΎ Π΅ Π½ΡƒΠΆΠ΅Π½ Π°Π²Ρ‚ΠΎ-Π²Π°ΠΊΡƒΡƒΠΌ? Авто-Π²Π°ΠΊΡƒΡƒΠΌ Π² Π΅Π΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΠ΄Π²Π°, ΠΎΠ±Ρ€ΡŠΡ‰Π° сС към Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΈ я ΠΏΠΈΡ‚Π°: 'Π”Π°ΠΉ ΠΌΠΈ, моля, id Π½Π° Π½Π°ΠΉ-старата транзакция, която Π΅ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ'. Π‘Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Π²Ρ€ΡŠΡ‰Π° Ρ‚ΠΎΠ·ΠΈ id. И Π°Π²Ρ‚ΠΎ-Π²Π°ΠΊΡƒΡƒΠΌ, ΠΎΠΏΠΈΡ€Π°ΠΉΠΊΠΈ сС Π½Π° Π½Π΅Π³ΠΎ, ΠΏΡ€Π΅Π³Π»Π΅ΠΆΠ΄Π° Ρ€Π΅Π΄ΠΎΠ²Π΅Ρ‚Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. Ако Π²ΠΈΠ΄ΠΈ, Ρ‡Π΅ някои Ρ€Π΅Π΄ΠΎΠ²Π΅ са Π±ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΈ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-стари Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΎΠΉ ΠΈΠΌΠ° ΠΏΡ€Π°Π²ΠΎ Π΄Π° Π³ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈ ΠΊΠ°Ρ‚ΠΎ Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡ€Π΅ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅, записвайки Π½ΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ Ρ‚Π°ΠΌ. Π’ΠΎΠ²Π° Π΅ Ρ„ΠΎΠ½ΠΎΠ² процСс.

ΠŸΡ€Π΅Π· Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°ΠΌΠ΅ измСнСния Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. И Π½Π° Ρ‚Π΅Π·ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡ€Π΅ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅, записвамС Π½ΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ. Π’Π°ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ ΠΊΡ€ΡŠΠ³ΠΎΠ²Ρ€Π°Ρ‚, тоСст, Π²ΠΈΠ½Π°Π³ΠΈ Π² Ρ‚Π°ΠΌ сС появяват стари ΠΌΡŠΡ€Ρ‚Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅, Π° вмСсто тях записвамС Π½ΠΎΠ²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π½ΠΈ трябват. И Ρ‚ΠΎΠ²Π° Π΅ Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с PostgreSQL.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

Какво сС случи ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° аварията? Как ΠΏΡ€ΠΎΡ‚ΠΈΡ‡Π°ΡˆΠ΅ Ρ‚ΠΎΠ·ΠΈ процСс?

Π˜ΠΌΠ°Ρ…ΠΌΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π° Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, някои Ρ€Π΅Π΄ΠΎΠ²Π΅ бяха Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ, Π° Π΄Ρ€ΡƒΠ³ΠΈ ΠΌΡŠΡ€Ρ‚Π²ΠΈ. Π”ΠΎΠΉΠ΄Π΅ автоматичният Π²Π°ΠΊΡƒΡƒΠΌ. Π’ΠΎΠΉ ΠΏΠΎΠΏΠΈΡ‚Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΠΊΠ²Π° Π΅ Π½Π°ΠΉ-старата Π½ΠΈ транзакция ΠΈ какъв Π΅ нСйният id. ΠŸΠΎΠ»ΡƒΡ‡ΠΈ Ρ‚ΠΎΠ·ΠΈ id, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ часовС Π½Π°Π·Π°Π΄ ΠΈΠ»ΠΈ ΠΎΡ‚ дСсСт ΠΌΠΈΠ½ΡƒΡ‚ΠΈ. Π’ΠΎΠ²Π° зависи ΠΎΡ‚ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. И Π·Π°ΠΏΠΎΡ‡Π½Π° Π΄Π° Ρ‚ΡŠΡ€ΡΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π° ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π΅ΠΌΠΈ. И Π½Π΅ Π½Π°ΠΌΠ΅Ρ€ΠΈ Ρ‚Π°ΠΊΠΈΠ²Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² Π½Π°ΡˆΠ°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°.

Но ΠΏΡ€Π΅Π· Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. НСщо ΠΏΡ€Π°Π²ΠΈΠΌ Π² нСя, обновявамС, промСнямС Π΄Π°Π½Π½ΠΈ. А ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΏΡ€Π°Π²ΠΈ Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΏΡ€Π΅Π· Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅? Няма ΠΊΠ°ΠΊ Π΄Π° Π½Π΅ записва Π½ΠΎΠ²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² края Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°. И Ρ‚Π°ΠΊΠ° Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° нараства.

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Π½ΠΈ трябват Π·Π΅Π»Π΅Π½ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°. Но ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ‚Π°ΠΊΡŠΠ² ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅, Ρ‡Π΅ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΡŠΡ‚ Π½Π° Π·Π΅Π»Π΅Π½ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ нисък Π² цСлия ΠΎΠ±Π΅ΠΌ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°.

ΠšΠΎΠ³Π°Ρ‚ΠΎ изпълнявамС заявка, Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ трябва Π΄Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄Π° всички Ρ€Π΅Π΄ΠΎΠ²Π΅: ΠΊΠ°ΠΊΡ‚ΠΎ Ρ‡Π΅Ρ€Π²Π΅Π½ΠΈ, Ρ‚Π°ΠΊΠ° ΠΈ Π·Π΅Π»Π΅Π½ΠΈ, Π·Π° Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Ρ€Π΅Π΄. И Π΅Ρ„Π΅ΠΊΡ‚ΡŠΡ‚ ΠΎΡ‚ Π½Π°Π΄ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° с Π±Π΅Π·ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π΄Π°Π½Π½ΠΈ сС Π½Π°Ρ€ΠΈΡ‡Π° Β«bloatΒ», ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π·Π°Π΅ΠΌΠ° Π½Π°ΡˆΠ΅Ρ‚ΠΎ дисково пространство. БпомнятС Π»ΠΈ си, Ρ‡Π΅ бСшС 2 MB, Π° стана 300 MB? А сСга смСнСтС ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ΠΈΡ‚Π΅ с Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ΠΈ ΠΈ Π±ΡŠΡ€Π·ΠΎ Ρ‰Π΅ сС Π»ΠΈΡˆΠΈΡ‚Π΅ ΠΎΡ‚ всички Π½Π°Π»ΠΈΡ‡Π½ΠΈ дискови рСсурси.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

Какви послСдствия ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π·Π° нас?

  • Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΡŠΡ‚ нараснаха 150 ΠΏΡŠΡ‚ΠΈ. Някои ΠΎΡ‚ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ ΠΈΠΌΠ°Ρ‚ ΠΏΠΎ-Ρ„Π°Ρ‚Π°Π»Π½ΠΈ случаи, ΠΊΠΎΠ³Π°Ρ‚ΠΎ просто мястото Π½Π° диска Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° ΡΠ²ΡŠΡ€ΡˆΠ²Π°.
  • Π Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ сам ΠΏΠΎ сСбС си Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ намалява. Автоматичният Π²Π°ΠΊΡƒΡƒΠΌ Π² някои случаи ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡ‚Ρ€Π΅ΠΆΠ΅ края Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°, Π°ΠΊΠΎ Ρ‚Π°ΠΌ ΠΈΠΌΠ° само ΠΌΡŠΡ€Ρ‚Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅. Но ΠΏΠΎΡ€Π°Π΄ΠΈ постоянната ротация, Π΅Π΄ΠΈΠ½ Π·Π΅Π»Π΅Π½ Ρ€Π΅Π΄ ΠΌΠΎΠΆΠ΅ Π΄Π° останС Π² края ΠΈ Π΄Π° Π½Π΅ сС обновява, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ Ρ‰Π΅ сС записват някъдС Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. Но Ρ‚ΠΎΠ²Π° Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΌΠ°Π»ΠΊΠΎ вСроятно ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅, Ρ‡Π΅ Π½Π΅ Π±ΠΈΠ²Π° Π΄Π° сС надяватС, Ρ‡Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° сама ΠΏΠΎ сСбС си Ρ‰Π΅ Π½Π°ΠΌΠ°Π»Π΅Π΅.
  • Π‘Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ трябва Π΄Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄Π° цялата ΠΊΡƒΠΏΡ‡ΠΈΠ½Π° Π±Π΅Π·ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅. И Π½ΠΈΠ΅ Π³ΡƒΠ±ΠΈΠΌ дискови рСсурси, процСсорни рСсурси ΠΈ СнСргия.
  • И Ρ‚ΠΎΠ²Π° пряко влияС Π½Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π°ΠΊΠΎ Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Ρ…Π°Ρ€Ρ‡Π΅Ρ…ΠΌΠ΅ 10 милисСкунди Π·Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅, 10 милисСкунди Π·Π° нашия ΠΊΠΎΠ΄, Ρ‚ΠΎ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° авария Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° Ρ…Π°Ρ€Ρ‡ΠΈΠΌ сСкунда Π·Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ ΠΈ 10 милисСкунди Π·Π° ΠΊΠΎΠ΄Π°, Ρ‚.Π΅. производитСлността Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ спадна с ΠΏΠΎΡ€ΡΠ΄ΡŠΠΊ. И ΠΊΠΎΠ³Π°Ρ‚ΠΎ аварията бСшС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π°, Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° Ρ…Π°Ρ€Ρ‡ΠΈΠΌ 20 милисСкунди Π·Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅, 10 милисСкунди Π·Π° ΠΊΠΎΠ΄Π°. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ всС ΠΏΠ°ΠΊ смС спаднали Π² производитСлността с 1.5 ΠΏΡŠΡ‚ΠΈ. И всичко Ρ‚ΠΎΠ²Π° Π·Π°Ρ€Π°Π΄ΠΈ Π΅Π΄Π½Π° транзакция, която сС Π΅ Π·Π°Π΄ΡŠΡ€ΠΆΠ°Π»Π°, ΠΈ Ρ‚ΠΎ вСроятно ΠΏΠΎ наша Π²ΠΈΠ½Π°.
  • И Π²ΡŠΠΏΡ€ΠΎΡΡŠΡ‚ Π΅: «Как Π΄Π° Π²ΡŠΡ€Π½Π΅ΠΌ всичко ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ?Β», Π·Π° Π΄Π° станС всичко Π΄ΠΎΠ±Ρ€Π΅ ΠΈ запитванията Π΄Π° работят Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° Π±ΡŠΡ€Π·ΠΎ, ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ аварията.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

Π—Π° Ρ‚ΠΎΠ²Π° ΠΈΠΌΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ†ΠΈΠΊΡŠΠ» ΠΎΡ‚ дСйности, ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°.

ΠŸΡŠΡ€Π²ΠΎ трябва Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΈΡ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»ΠΈ. Π Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅, Ρ‡Π΅ Π·Π° някои Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ запиститС Π²ΡŠΡ€Π²ΡΡ‚ ΠΏΠΎ-Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ, Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ - ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ. И Π·Π° Ρ‚ΠΎΠ²Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ pgstattuple. ΠšΠ°Ρ‚ΠΎ инсталиратС Ρ‚ΠΎΠ²Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ запитвания, ΠΊΠΎΠΈΡ‚ΠΎ Π΄Π° Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»ΠΈ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ.

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Ρ‚Π΅Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, Ρ‚Π΅ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ компрСсирани. Π—Π° Ρ‚ΠΎΠ²Π° Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ° инструмСнти. Π’ Π½Π°ΡˆΠ°Ρ‚Π° компания ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Ρ‚Ρ€ΠΈ инструмСнта. ΠŸΡŠΡ€Π²ΠΈΡΡ‚ – Π²Π³Ρ€Π°Π΄Π΅Π½ VACUUM FULL. Π’ΠΎΠΉ Π΅ ТСсток, строг ΠΈ бСзмилостСн, Π½ΠΎ понякога Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π΅Π½. Pg_repack ΠΈ pgcompacttable – Ρ‚ΠΎΠ²Π° Π΅ външно ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° компрСсиранС Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ. И Ρ‚Π΅ сС отнасят ΠΏΠΎ-Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ към Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ.

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ сС Π² зависимост ΠΎΡ‚ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈ Π΅ ΠΏΠΎ-ΡƒΠ΄ΠΎΠ±Π½ΠΎ. Но Π·Π° Ρ‚ΠΎΠ²Π° Ρ‰Π΅ говоря Π² края. Най-Π²Π°ΠΆΠ½ΠΎΡ‚ΠΎ Π΅, Ρ‡Π΅ ΠΈΠΌΠ° Ρ‚Ρ€ΠΈ инструмСнта. Π˜ΠΌΠ°Ρ‚Π΅ ΠΈΠ·Π±ΠΎΡ€.

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ всичко ΠΏΠΎΠΏΡ€Π°Π²ΠΈΠΌ ΠΈ сС ΡƒΠ²Π΅Ρ€ΠΈΠΌ, Ρ‡Π΅ всичко Π΅ Π½Π°Ρ€Π΅Π΄, трябва Π΄Π° Π·Π½Π°Π΅ΠΌ ΠΊΠ°ΠΊ Π΄Π° ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΠΌ Ρ‚Π°Π·ΠΈ ситуация Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅:

  • Вя сС прСдотвратява съвсСм лСсно. Врябва Π΄Π° слСдитС Π·Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° сСсиитС Π½Π° основния ΡΡŠΡ€Π²ΡŠΡ€. ОсобСно опасни сСсии са Ρ‚Π΅Π·ΠΈ Π² ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ idle in transaction. Π’ΠΎΠ²Π° са Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΡ‚Π²ΠΎΡ€ΠΈΠ»ΠΈ транзакция, Π½Π°ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ Π½Π΅Ρ‰ΠΎ ΠΈ ΠΈΠ·Π»Π΅Π·Π»ΠΈ ΠΈΠ»ΠΈ просто сС Π·Π°Π΄ΡŠΡ€ΠΆΠ°Π»ΠΈ, Π·Π°Π³ΡƒΠ±ΠΈΠ»ΠΈ сС Π² ΠΊΠΎΠ΄Π°.
  • И Π·Π° вас, ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ, Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° тСстватС ΠΊΠΎΠ΄Π° във Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π΅Π·ΠΈ ситуации. НС Π΅ слоТно Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅. Π’ΠΎΠ²Π° Ρ‰Π΅ бъдС ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°. Π©Π΅ ΠΈΠ·Π±Π΅Π³Π½Π΅Ρ‚Π΅ голямо количСство "дСтски" ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с дълги Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

Π’ Ρ‚Π΅Π·ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ исках Π΄Π° Π²ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ слСд ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Π΄ΠΎΡ… VACUUM FULL Π²ΡŠΡ€Ρ…Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. Π’ΠΎΠ²Π° Π½Π΅ Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎ.

Π Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π²Π΅Π΄Π½Π°Π³Π° сС Π²ΡŠΡ€Π½Π° Π² Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π½ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ ΠΎΡ‚ няколко ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π°. Π’ΠΎΠ²Π° Π½Π΅ ΠΎΠΊΠ°Π·Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ влияниС Π½Π° срСдното Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ ΠΎΡ‚ ΡΡŠΡ€Π²ΡŠΡ€Π°.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

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

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

Π‘ Ρ‚ΠΎΠ²Π° ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π° ΠΏΡŠΡ€Π²Π°Ρ‚Π° история. Вя Π΅ Π½Π°ΠΉ-разпространСната ΠΈ сС случва Π½Π° всички, нСзависимо ΠΎΡ‚ ΠΎΠΏΠΈΡ‚Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΊΠΎΠ»ΠΊΠΎ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ програмисти ΠΈΠΌΠ°. Π Π°Π½ΠΎ ΠΈΠ»ΠΈ късно Ρ‚ΠΎΠ²Π° сС случва.

Π’Ρ‚ΠΎΡ€Π°Ρ‚Π° история, Π² която разпрСдСлямС Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈΡ‚Π΅ рСсурси.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

  • НиС Π²Π΅Ρ‡Π΅ смС пораснали ΠΈ смС сСриозни ΠΈΠ³Ρ€Π°Ρ‡ΠΈ. Π Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° ΠΈ Π±ΠΈ Π±ΠΈΠ»ΠΎ Π΄ΠΎΠ±Ρ€Π΅ Π΄Π° балансирамС Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ: Π΄Π° пишСм Π½Π° ΠœΠ°ΡΡ‚Π΅Ρ€Π°, Π° Π΄Π° Ρ‡Π΅Ρ‚Π΅ΠΌ ΠΎΡ‚ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π°. ОбикновСно Ρ‚Π°Π·ΠΈ ситуация възниква, ΠΊΠΎΠ³Π°Ρ‚ΠΎ искамС Π΄Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈ ΠΈΠ»ΠΈ ETL. Π‘ΠΈΠ·Π½Π΅ΡΡŠΡ‚ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ²ΠΎΠ»Π΅Π½ ΠΎΡ‚ Ρ‚ΠΎΠ²Π°. Иска Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈ с ΠΌΠ½ΠΎΠ³ΠΎ слоТна Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°.
  • ΠžΡ‚ΠΊΡ€ΠΈΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈ ΠΎΡ‚Π½Π΅ΠΌΠ°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ часовС, Π·Π°Ρ‰ΠΎΡ‚ΠΎ слоТната Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС изчисли Π·Π° милисСкунди. НиС, ΠΊΠ°Ρ‚ΠΎ смСли ΠΌΠΎΠΌΡ‡Π΅Ρ‚Π°, пишСм ΠΊΠΎΠ΄. ΠŸΡ€Π°Π²ΠΈΠΌ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ вставки, ΠΊΠ°Ρ‚ΠΎ записвамС Π½Π° ΠœΠ°ΡΡ‚Π΅Ρ€Π°, Π° ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈΡ‚Π΅ изпълнявамС Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π°.
  • РазпрСдСлямС Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ.
  • Всичко Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ. НиС смС супСр.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

Как ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ситуацията? ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π½Π° Ρ‚Π΅Π·ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ… ΠΈ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΎΡ‚ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π°. Всички останали Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ сС отнасят само Π·Π° ΠœΠ°ΡΡ‚Π΅Ρ€-сСрвСра.

Π’Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° с ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈΡ‚Π΅ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ. Има ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ тях. Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ срСдното Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° Π΅ стабилно. Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½Π° транзакция, която Ρ€Π°Π±ΠΎΡ‚ΠΈ 2 часа. Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ автоматичният Π²Π°ΠΊΡƒΡƒΠΌ Ρ€Π°Π±ΠΎΡ‚ΠΈ спокойно, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°ΠΉΠΊΠΈ ΠΌΡŠΡ€Ρ‚Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅. И всичко ΠΏΡ€ΠΈ нас Π΅ Π΄ΠΎΠ±Ρ€Π΅.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π·Π° тСстовата Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈΡ‚Π΅ ΠΏΠΎ смСткитС. И ΠΏΡ€ΠΈ нас ΡΡŠΡ‰ΠΎ ΠΈΠΌΠ° стабилно Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ ΠΏΠΎ Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ, стабилно ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° рСсурси. Всичко Π΅ Π½Π°Ρ€Π΅Π΄.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

Всичко Π΅ Π΄ΠΎΠ±Ρ€Π΅, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈΡ‚Π΅ Π½ΠΈ Π½Π΅ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ отстрСлвани ΠΏΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ с рСпликацията. И Ρ‚Π΅ сС отстрСлват с постоянна пСриодичност.

Π—Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΠΌ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈ Π΄Π° Ρ‡Π΅Ρ‚Π΅ΠΌ Π·Π°Ρ‰ΠΎ Ρ‚ΠΎΠ²Π° сС случва. И Π½Π°ΠΌΠΈΡ€Π°ΠΌΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

ΠŸΡŠΡ€Π²ΠΎΡ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΅ Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ забавянСто Π½Π° рСпликацията. Π—Π½Π°Π΅ΠΌ, Ρ‡Π΅ Π½Π°ΡˆΠΈΡΡ‚ ΠΎΡ‚Ρ‡Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚ΠΈ 3 часа. Π‘Π»Π°Π³Π°ΠΌΠ΅ забавянС Π½Π° рСпликацията – 3 часа. Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°ΠΌΠ΅ всичко, Π½ΠΎ всС ΠΏΠ°ΠΊ ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈΡ‚Π΅ понякога отстрСлват.

ИскамС всичко Π΄Π° Π΅ ΠΏΠ΅Ρ€Ρ„Π΅ΠΊΡ‚Π½ΠΎ. ΠŸΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° сС Ρ€ΠΎΠ²ΠΈΠΌ. И Π½Π°ΠΌΠΈΡ€Π°ΠΌΠ΅ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ страхотна настройка – hot_standby_feedback. АктивирамС я. Hot_standby_feedback Π½ΠΈ позволява Π΄Π° Π·Π°Π΄ΡŠΡ€ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° автоматичния Π²Π°ΠΊΡƒΡƒΠΌ Π½Π° мастСра. Π’Π°ΠΊΠ° изцяло сС избавямС ΠΎΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΈΡ‚Π΅ Π½Π° рСпликацията. И всичко Ρ€Π°Π±ΠΎΡ‚ΠΈ Π΄ΠΎΠ±Ρ€Π΅ с ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈΡ‚Π΅.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

А ΠΊΠ°ΠΊΠ²ΠΎ сС случва с ΠΌΠ°ΡΡ‚ΡŠΡ€ ΡΡŠΡ€Π²ΡŠΡ€Π° Π² Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅? А с ΠΌΠ°ΡΡ‚ΡŠΡ€ ΡΡŠΡ€Π²ΡŠΡ€Π° Π½ΠΈ сС случва Ρ‚ΠΎΡ‚Π°Π»Π½Π° Π±Π΅Π΄Π°. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° наблюдавамС Π³Ρ€Π°Ρ„ΠΈΠΊΠΈΡ‚Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ… ΠΈ Π΄Π²Π΅Ρ‚Π΅ настройки. И Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ сСсията Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π° ΠΏΠΎ някакъв Π½Π°Ρ‡ΠΈΠ½ Π·Π°ΠΏΠΎΡ‡Π½Π° Π΄Π° влияС Π½Π° ситуацията Π½Π° ΠΌΠ°ΡΡ‚ΡŠΡ€ ΡΡŠΡ€Π²ΡŠΡ€Π°. Вя наистина влияС, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π΅ спряла автоматичния Π²Π°ΠΊΡƒΡƒΠΌ, ΠΊΠΎΠΉΡ‚ΠΎ чисти ΠΌΡŠΡ€Ρ‚Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅. Π Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΎΡ‚Π½ΠΎΠ²ΠΎ скочи Π΄ΠΎ нСбСсата. Π‘Ρ€Π΅Π΄Π½ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° изпълнСниС Π½Π° запитванията Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΡΡŠΡ‰ΠΎ нарасна драстично. АвтоматичнитС Π²Π°ΠΊΡƒΡƒΠΌΠΈ ΠΌΠ°Π»ΠΊΠΎ сС Π½Π°ΠΏΡŠΠ½Π°Ρ…Π°.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π·Π° Π½Π°ΡˆΠ°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΏΠΎ нСя ΡΡŠΡ‰ΠΎ скочи Π΄ΠΎ нСбСсата. ΠŸΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° процСсорни рСсурси ΡΡŠΡ‰ΠΎ сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ драстично. ΠžΡ‚Π½ΠΎΠ²ΠΎ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΏΡ€Π΅Π· голямо количСство ΠΌΡŠΡ€Ρ‚Π²ΠΈ Π±Π΅Π·ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅. И Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° Ρ‚Π°Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°, броят Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ намаля.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

Как Ρ‰Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚ΠΎΠ²Π°, Π°ΠΊΠΎ Π½Π΅ Π·Π½Π°Π΅ΠΌ Π·Π° ΠΊΠ°ΠΊΠ²ΠΎ говоря?

  • Π—Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. Ако смС сС сблъсквали с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π² ΠΏΡŠΡ€Π²Π°Ρ‚Π° част, Π·Π½Π°Π΅ΠΌ, Ρ‡Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ Π² Π΄ΡŠΠ»Π³Π°Ρ‚Π° транзакция, ΠΈ ΠΎΡ‚ΠΈΠ²Π°ΠΌΠ΅ ΠΏΡ€ΠΈ ΠœΠ°ΡΡ‚Π΅Ρ€Π°. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ ΠΏΡ€ΠΈ нас Π½Π° ΠœΠ°ΡΡ‚Π΅Ρ€Π°. Π’ΠΎΠΉ Π΅ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½. Загрява сС, Π° Load Average Π΅ ΠΏΠΎΠ΄ сто.
  • Запитванията Ρ‚Π°ΠΌ сС забавят, Π½ΠΎ Π½Π΅ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ дълги Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. И Π½Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠ²Π° Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π°. НС Π·Π½Π°Π΅ΠΌ къдС Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΠΌ.
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π°ΠΌΠ΅ ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΎΡ‚ΠΎ ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅. МоТС Π±ΠΈ смС ΠΈΠΌΠ°Π»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с RAID. МоТС Π΄Π° смС ΠΈΠ·Π³ΡƒΠ±ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΠΊΠ° ΠΏΠ°ΠΌΠ΅Ρ‚. ΠšΠ°ΠΊΠ²ΠΎΡ‚ΠΎ ΠΈ Π΄Π° Π΅, Π½ΠΈΡ‰ΠΎ Π½Π΅ Π΅ Ρ‚Π°ΠΌ. Но Π½Π΅, ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ са Π½ΠΎΠ²ΠΈ, всичко Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ.
  • Всички бягат: администратори, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΡŠΡ‚. Нищо Π½Π΅ ΠΏΠΎΠΌΠ°Π³Π°.
  • И Π² Π΅Π΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ всичко извСднъТ Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° сС оправя само.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

На Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π° ΠΏΠΎ Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΎ ΠΈ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΎ. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ ΠΎΡ‚Ρ‡Π΅Ρ‚. Π‘ΠΈΠ·Π½Π΅ΡΡŠΡ‚ всС ΠΎΡ‰Π΅ Π΅ Π΄ΠΎΠ²ΠΎΠ»Π΅Π½. ΠšΠ°ΠΊΡ‚ΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π½ΠΈ ΠΎΡ‚Π½ΠΎΠ²ΠΎ сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ ΠΈ Π½Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π΄Π° сС свива. На Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ‚Π° със сСсиитС оставих ΠΏΠ°Ρ€Ρ‡Π΅ ΠΎΡ‚ Ρ‚Π°Π·ΠΈ дълга транзакция с Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π°, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΎΡ†Π΅Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ»ΠΊΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΌΠΈΠ½Π°Π²Π°, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ ситуацията сС стабилизира.

БСсията ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈ. И само слСд извСстно Π²Ρ€Π΅ΠΌΠ΅ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ сС Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΈΡ€Π° Π΄ΠΎ някаква стСпСн. Π‘Ρ€Π΅Π΄Π½ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° запитванията Π½Π° ΠœΠ°ΡΡ‚Π΅Ρ€Π° сС Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΈΡ€Π°. Π—Π°Ρ‰ΠΎΡ‚ΠΎ, накрая, Π°Π²Ρ‚ΠΎΠ²Π°ΠΊΡƒΡƒΠΌΡŠΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° почиства ΠΈ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π° ΠΌΡŠΡ€Ρ‚Π²ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅. И Ρ‚ΠΎΠΉ Π·Π°ΠΏΠΎΡ‡Π½Π° Π΄Π° Π²ΡŠΡ€ΡˆΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° си. И ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π±ΡŠΡ€Π·ΠΎ я Π²ΡŠΡ€ΡˆΠΈ, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° Π±ΡŠΡ€Π·ΠΎ Ρ‰Π΅ сС ΠΎΠΏΡ€Π°Π²ΠΈΠΌ.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

На ΠΈΠ·ΠΏΠΈΡ‚Π½Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ обновявамС ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈΡ‚Π΅ ΠΏΠΎ смСткитС, Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Ρ‚ΠΎΡ‡Π½ΠΎ ΡΡŠΡ‰Π°Ρ‚Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π°. Π‘Ρ€Π΅Π΄Π½ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° смСткитС ΡΡŠΡ‰ΠΎ постСпСнно сС Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΈΡ€Π°. РСсурситС, потрСбявани ΠΎΡ‚ процСсора, ΡΡŠΡ‰ΠΎ намаляват. И броят Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π² сСкунда сС Π²Ρ€ΡŠΡ‰Π° Π² Π½ΠΎΡ€ΠΌΠ°Ρ‚Π°. Но ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π½Π΅ Π² Ρ‚Π°ΠΊΠ°Π²Π° Π½ΠΎΡ€ΠΌΠ°, ΠΊΠ°ΠΊΠ²Π°Ρ‚ΠΎ ΠΈΠΌΠ°Ρ…ΠΌΠ΅ ΠΏΡ€Π΅Π΄ΠΈ аварията.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ спад Π² производитСлността, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π² ΠΏΡŠΡ€Π²ΠΈΡ случай, с 1.5 Π΄ΠΎ 2 ΠΏΡŠΡ‚ΠΈ, Π° понякога ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅.

ИзглСТда, Ρ‡Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…ΠΌΠ΅ всичко ΠΊΠ°ΠΊΡ‚ΠΎ трябва. Π Π°Π·Π±ΠΈΡ…ΠΌΠ΅ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ. ΠžΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π΅ стои Π±Π΅Π· Ρ€Π°Π±ΠΎΡ‚Π°. Π£ΠΌΠ½ΠΎ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ…ΠΌΠ΅ запитванията, Π½ΠΎ ΠΈ всС ΠΏΠ°ΠΊ всичко ΠΈΠ·Π»Π΅Π·Π΅ Π·Π»Π΅.

  • НС Π²ΠΊΠ»ΡŽΡ‡Π²Π°ΠΉΡ‚Π΅ hot_standby_feedback? Π”Π°, Π½Π΅ сС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° Π΄Π° сС Π²ΠΊΠ»ΡŽΡ‡Π²Π° Π±Π΅Π· особСни ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ. Π—Π°Ρ‰ΠΎΡ‚ΠΎ Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ пряко влияС Π½Π° главния ΡΡŠΡ€Π²ΡŠΡ€ ΠΈ спира Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° Π°Π²Ρ‚ΠΎΠ·Π°ΠΊΡƒΠΏΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Ρ‚Π°ΠΌ. Ако Π³ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π½Π° някоя Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° ΠΈ Π·Π°Π±Ρ€Π°Π²ΠΈΡ‚Π΅ Π·Π° Π½Π΅Π³ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈΡ‚Π΅ главния ΡΡŠΡ€Π²ΡŠΡ€ ΠΈ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ сСриозни ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.
  • Врябва Π»ΠΈ Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ max_standby_streaming_delay? Π”Π°, Ρ‚Π°ΠΊΠ° Π΅ Π·Π° ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈΡ‚Π΅. Ако ΠΈΠΌΠ°Ρ‚Π΅ тричасов ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΈ Π½Π΅ искатС Π΄Π° сС ΠΏΡ€ΠΎΠ²Π°Π»ΠΈ Π·Π°Ρ€Π°Π΄ΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΈ Π² рСпликацията, просто ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Ρ‚Π΅ забавянСто. Π”ΡŠΠ»Π³ΠΈΡΡ‚ ΠΎΡ‚Ρ‡Π΅Ρ‚ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ изисква Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са пристигнали Π² Π±Π°Π·Π°Ρ‚Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°. Ако Π΅ тричасов, ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Π³ΠΎ стартиратС Π·Π° стар ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ. Няма Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π»ΠΈ Ρ‰Π΅ Π΅ Ρ‚Ρ€ΠΈ ΠΈΠ»ΠΈ ΡˆΠ΅ΡΡ‚ часа забавянС, Π½ΠΎ Π²ΠΈΠ΅ Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚Π΅ стабилни ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈ ΠΈ няма Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с ΠΏΠ°Π΄Π°Π½Π΅Ρ‚ΠΎ ΠΈΠΌ.
  • ЕстСствСно, трябва Π΄Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Ρ‚Π΅ Π΄ΡŠΠ»Π³ΠΈΡ‚Π΅ сСсии Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈΡ‚Π΅, особСно Π°ΠΊΠΎ Ρ€Π΅ΡˆΠΈΡ‚Π΅ Π΄Π° Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ hot_standby_feedback Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π°. Π—Π°Ρ‰ΠΎΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС случи ΠΊΠ°ΠΊΠ²ΠΎΡ‚ΠΎ ΠΈ Π΄Π° Π±ΠΈΠ»ΠΎ. Π”Π°Π»ΠΈ стС Ρ‚Π°Π·ΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Π·Π° Π΄Π° тСствува заявки. Π’ΠΎΠΉ Π΅ написал Π½Π°Π»ΡƒΠ΄Π½ΠΈΡ‡Π°Π² Π·Π°ΠΏΠΈΡ‚, стартира Π³ΠΎ ΠΈ Π΅ ΠΎΡ‚ΠΈΡˆΡŠΠ» Π΄Π° ΠΏΠΈΠ΅ Ρ‡Π°ΠΉ, Π° Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ Π±Π»ΠΎΠΊΠΈΡ€Π°Π½ Π³Π»Π°Π²Π΅Π½ ΡΡŠΡ€Π²ΡŠΡ€. Или смС пуснали Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΈΡ‚ΡƒΠ°Ρ†ΠΈΠΈΡ‚Π΅ са Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΈ. БСсиитС Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈΡ‚Π΅ трябва Π΄Π° сС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Ρ‚ с Ρ‚Π°ΠΊΠ°Π²Π° ΡΡŠΡ‰Π°Ρ‚Π° строгост, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π½Π° главния ΡΡŠΡ€Π²ΡŠΡ€.
  • А Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ Π±ΡŠΡ€Π·ΠΈ ΠΈ дълги заявки ΠΏΠΎ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈΡ‚Π΅, Π΅ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ Π΄Π° Π³ΠΈ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Π·Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ. Π’ΠΎΠ²Π° Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎ със streaming_delay. Π—Π° Π±ΡŠΡ€Π·ΠΈΡ‚Π΅ заявки ΠΈΠΌΠ°ΠΉΡ‚Π΅ Π΅Π΄Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° с ΠΌΠ°Π»ΠΊΠΎ забавянС Π² рСпликацията. Π—Π° Π΄ΡŠΠ»Π³ΠΈΡ‚Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Π½ΠΈ заявки ΠΈΠΌΠ°ΠΉΡ‚Π΅ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°, която ΠΌΠΎΠΆΠ΅ Π΄Π° изостава с 6 часа, Π΄ΠΎΡ€ΠΈ ΠΈ с Π΄Π΅Π½. Π’ΠΎΠ²Π° Π΅ напълно Π½ΠΎΡ€ΠΌΠ°Π»Π½Π° ситуация.

ΠžΡ‚ΡΡ‚Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ послСдствията ΠΏΠΎ ΡΡŠΡ‰ΠΈΡ Π½Π°Ρ‡ΠΈΠ½:

  • НамирамС ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ.
  • И Π³ΠΈ компрСсирамС с Π½Π°ΠΉ-подходящия инструмСнт Π·Π° нас.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ Π²Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈ Ρ‚ΡƒΠΊ. ΠŸΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ към Ρ‚Ρ€Π΅Ρ‚Π° история.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

Π‘ΡŠΡ‰ΠΎ доста ΠΎΠ±ΠΈΡ‡Π°ΠΉΠ½Π° Π·Π° нас, Π² която ΠΏΡ€Π°Π²ΠΈΠΌ миграция.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

  • ВсСки софтуСрСн ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ растС. Π˜Π·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡ‚Π° към Π½Π΅Π³ΠΎ сС промСнят. НиС искамС Π΄Π° сС Ρ€Π°Π·Π²ΠΈΠ²Π°ΠΌΠ΅. И понякога Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°, ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° миграция към Π½ΠΎΠ²Π°Ρ‚Π° функционалност, която внСдрявамС Π² процСса Π½Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅.
  • Бтарият Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° Π΄Π°Π½Π½ΠΈ Π½Π΅ Π½ΠΈ устройва. НСка Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, Ρ‡Π΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Ρ‰Π΅ сС ΠΎΠ±ΡŠΡ€Π½Π΅ΠΌ към Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°, Π² която ΠΈΠΌΠ°ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ‚Π΅Π·ΠΈ смСтки. И Π΄Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Π΅ Ρ‚Π΅ са Π±ΠΈΠ»ΠΈ Π² Ρ€ΡƒΠ±Π»ΠΈ, Π° Π½ΠΈΠ΅ Ρ€Π΅ΡˆΠ°Π²Π°ΠΌΠ΅ Π΄Π° повишим точността ΠΈ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с ΠΊΠΎΠΏΠ΅ΠΉΠΊΠΈ. И Π·Π° Ρ‚ΠΎΠ²Π° трябва Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ актуализация: ΠΏΠΎΠ»Π΅Ρ‚ΠΎ със сумата Π½Π° опСрацията трябва Π΄Π° бъдС ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΎ ΠΏΠΎ сто.
  • Π’ ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ свят ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ срСдства Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° вСрсиитС Π½Π° Π±Π°Π·ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ. Π”Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Liquibase. ЗаписвамС Π½Π°ΡˆΠ°Ρ‚Π° миграция Ρ‚Π°ΠΌ. ВСствамС я Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° тСстова Π±Π°Π·Π°. Всичко Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ. Актуализацията ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°. Π‘Π»ΠΎΠΊΠΈΡ€Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π·Π° извСстно Π²Ρ€Π΅ΠΌΠ΅, Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ ΠΎΠ±Π½ΠΎΠ²Π΅Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ. И ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° стартирамС Π½ΠΎΠ²Π°Ρ‚Π° функционалност Π½Π° Ρ‚ΠΎΠ²Π°. Всичко Π΅ тСствано, ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ. Всички ΠΏΠΎΡ‚Π²ΡŠΡ€Π΄ΠΈΡ…Π°.
  • ΠŸΡ€ΠΎΠ²Π΅Π΄ΠΎΡ…ΠΌΠ΅ ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΈ дСйности, ΠΏΡ€ΠΎΠ²Π΅Π΄ΠΎΡ…ΠΌΠ΅ миграция.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

Π•Ρ‚ΠΎ миграцията с актуализацията, прСдставСна ΠΏΡ€Π΅Π΄ вас. Въй ΠΊΠ°Ρ‚ΠΎ Ρ‚ΠΎΠ²Π° са ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ смСткитС, Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° бСшС 15 GB. И Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ обновявамС всяко Ρ€Π΅Π΄, Π½ΠΈΠ΅ с актуализацията ΡƒΠ΄Π²ΠΎΠΈΡ…ΠΌΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ прСзаписахмС всяко Ρ€Π΅Π΄.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° миграцията Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ…ΠΌΠ΅ Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ Π½ΠΈΡ‰ΠΎ с Ρ‚Π°Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ всички заявки към нСя бяха Π² опашка ΠΈ Ρ‡Π°ΠΊΠ°Ρ…Π° Π΄Π° ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈ Ρ‚Π°Π·ΠΈ актуализация. Но Ρ‚ΡƒΠΊ искам Π΄Π° ΠΎΠ±ΡŠΡ€Π½Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π²ΠΈ Π½Π° Ρ†ΠΈΡ„Ρ€ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са Π½Π° Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½Π°Ρ‚Π° ос. Π’.Π΅. ΠΈΠΌΠ°ΠΌΠ΅ срСдно Π²Ρ€Π΅ΠΌΠ΅ Π·Π° заявка ΠΏΡ€Π΅Π΄ΠΈ миграцията ΠΎΡ‚ ΠΎΠΊΠΎΠ»ΠΎ 5 милисСкунди ΠΈ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π½Π° процСсора, броя Π½Π° Π±Π»ΠΎΠΊΠΎΠ²ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° диска Π΅ ΠΏΠΎΠ΄ 7.5.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

ΠŸΡ€ΠΎΠ²Π΅Π΄ΠΎΡ…ΠΌΠ΅ миграцията ΠΈ ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ.

ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡΡ‚Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Π½ΠΎ:

  • Бтарият Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» стана ΠΏΠΎ-Π±Π°Π²Π΅Π½.
  • Π’Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΎΡ‚Π½ΠΎΠ²ΠΎ нарасна ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€.
  • НатоварванСто Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π΅ ΠΏΠΎ-високо ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ.
  • И, СстСствСно, всС ΠΎΡ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с функционалността, която Ρ€Π°Π±ΠΎΡ‚Π΅ΡˆΠ΅ Π΄ΠΎΠ±Ρ€Π΅, Π½ΠΈΠ΅ я ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈΡ…ΠΌΠ΅ ΠΌΠ°Π»ΠΊΠΎ.

И Ρ‚ΠΎΠ²Π° ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π΅ bloat, ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π½ΠΈ създава ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

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

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

Ако ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° с Ρ„Π°ΠΊΡ‚ΡƒΡ€ΠΈΡ‚Π΅, Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Π΅ срСдното Π²Ρ€Π΅ΠΌΠ΅ Π·Π° заявка Π΅ нараснало Π΄Π²Π° ΠΏΡŠΡ‚ΠΈ спрямо Ρ‚Π°Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°. НатоварванСто Π½Π° процСсора ΠΈ броят Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° скочи Π½Π°Π΄ 7,5, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ бСшС ΠΏΠΎΠ΄ Ρ‚ΠΎΠ²Π°. И нарасна Π² случая с процСсоритС Π΄Π²Π° ΠΏΡŠΡ‚ΠΈ, Π° ΠΏΡ€ΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ - 1,5 ΠΏΡŠΡ‚ΠΈ, Ρ‚.Π΅. ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ дСградация Π½Π° производитСлността Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°. И слСдствиС ΠΎΡ‚ Ρ‚ΠΎΠ²Π° - дСградация Π½Π° производитСлността Π½Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈ Ρ‚ΠΎΠ²Π° броят Π½Π° извикванията остана Π½Π° Π³ΠΎΡ€Π΅-Π΄ΠΎΠ»Ρƒ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

И Ρ‚ΡƒΠΊ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°ΠΌΠ΅ Ρ‚Π°ΠΊΠΈΠ²Π° ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ. А Ρ‚Π΅ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ. НиС доста Ρ€Π΅Π΄ΠΎΠ²Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠΌ Ρ‚Π΅Π·ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ.

  • Π’Π΅Π·ΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ сС правят Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ. Π’Π΅ Π²ΠΈΠ½Π°Π³ΠΈ трябва Π΄Π° са ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ.
  • НСобходим Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» ΠΎΡ‚ ΠΎΠΏΠΈΡ‚Π΅Π½ спСциалист. Ако ΠΈΠΌΠ°Ρ‚Π΅ DBA Π² Π΅ΠΊΠΈΠΏΠ°, Π½Π΅ΠΊΠ° Ρ‚ΠΎΠΉ сС Π·Π°Π΅ΠΌΠ΅ с Ρ‚ΠΎΠ²Π°. Π’ΠΎΠ²Π° Π΅ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π°. Ако няма, Π½Π΅ΠΊΠ° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈ Π½Π°ΠΉ-опитният Ρ‡ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ Π·Π½Π°Π΅ ΠΊΠ°ΠΊ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ.
  • Новата схСма Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, Π΄ΠΎΡ€ΠΈ ΠΈ ΠΏΡ€ΠΈ обновяванС Π½Π° Π΅Π΄ΠΈΠ½ столбСц, Π²ΠΈΠ½Π°Π³ΠΈ я подготвямС ΡΡ‚ΡŠΠΏΠΊΠ° ΠΏΠΎ ΡΡ‚ΡŠΠΏΠΊΠ°, Ρ‚.Π΅. ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° ΠΈΠ·Π»Π΅Π·Π΅ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ:
  • Добавят сС Π½ΠΎΠ²ΠΈ ΠΏΠΎΠ»Π΅Ρ‚Π°, Π² ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ записвамС Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π΅Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ.
  • ΠŸΡ€Π΅ΠΌΠ΅ΡΡ‚Π²Π°ΠΌΠ΅ Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΎΡ‚ старото ΠΏΠΎΠ»Π΅ Π² Π½ΠΎΠ²ΠΎΡ‚ΠΎ ΠΏΠΎΠ»Π΅ Π½Π° ΠΌΠ°Π»ΠΊΠΈ ΠΏΠΎΡ€Ρ†ΠΈΠΈ. Π—Π°Ρ‰ΠΎ Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΠΌ? ΠŸΡŠΡ€Π²ΠΎ, Π²ΠΈΠ½Π°Π³ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°ΠΌΠ΅ процСса. Π—Π½Π°Π΅ΠΌ, Ρ‡Π΅ смС прСмСстили Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ сСрии ΠΈ Π½ΠΈ остават Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ.
  • Вторият ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»Π΅Π½ Π΅Ρ„Π΅ΠΊΡ‚ Π΅, Ρ‡Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ всяка Ρ‚Π°ΠΊΠ°Π²Π° порция затварямС транзакцията, отварямС Π½ΠΎΠ²Π° ΠΈ Ρ‚ΠΎΠ²Π° Π΄Π°Π²Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π½Π° Π°Π²Ρ‚ΠΎΠ²Π°ΠΊΡƒΡƒΠΌΠ° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°, Π·Π° Π΄Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π° ΠΌΡŠΡ€Ρ‚Π²ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π·Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°.
  • Π—Π° Ρ€Π΅Π΄ΠΎΠ²Π΅Ρ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ сС появят Π² процСса Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ (с ΠΎΡ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ старото ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅), добавямС Ρ‚Ρ€ΠΈΠ³Π΅Ρ€, ΠΊΠΎΠΉΡ‚ΠΎ записва Π½ΠΎΠ²ΠΈΡ‚Π΅ стойности Π² Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π΅Ρ‚Π°. Π’ нашия случай – Ρ‚ΠΎΠ²Π° Π΅ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° сто ΠΎΡ‚ старата стойност.
  • Ако смС наистина ΡƒΠΏΠΎΡ€ΠΈΡ‚ΠΈ ΠΈ искамС ΡΡŠΡ‰ΠΎΡ‚ΠΎ ΠΏΠΎΠ»Π΅, Ρ‚ΠΎ слСд Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° всички ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€Π΅Π΄ΠΈ напусканСто Π½Π° Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, просто ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°ΠΌΠ΅ ΠΏΠΎΠ»Π΅Ρ‚Π°Ρ‚Π°. Π‘Ρ‚Π°Ρ€ΠΈΡ‚Π΅ Π² някакво измислСно ΠΈΠΌΠ΅, Π° Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π΅Ρ‚Π° ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°ΠΌΠ΅ Π² старитС.
  • И само слСд Ρ‚ΠΎΠ²Π° пускамС Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.

И Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π΅ Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π±Π»ΠΎΡƒΡ‚ ΠΈ Π½Π΅ Ρ‰Π΅ ΠΈΠ·ΠΏΠ°Π΄Π½Π΅ΠΌ Π² производитСлност.

Π’ΡƒΠΊ Π·Π°Π²ΡŠΡ€ΡˆΠ²Π° Ρ‚Ρ€Π΅Ρ‚Π°Ρ‚Π° история.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

https://github.com/dataegret/pg-utils/blob/master/sql/table_bloat.sql

https://github.com/dataegret/pg-utils/blob/master/sql/table_bloat_approx.sql

Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ инструмСнтитС, ΠΊΠΎΠΈΡ‚ΠΎ спомСнах Π² самата ΠΏΡŠΡ€Π²Π° история.

ΠŸΡ€Π΅Π΄ΠΈ Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΡ‚Π΅ Π±Π»ΠΎΠ°Ρ‚, Π΅ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° инсталиратС Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅. pgstattuple.

Π—Π° Π΄Π° Π½Π΅ измислятС заявки, Π² Π½Π°ΡˆΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° Π²Π΅Ρ‡Π΅ смС написали Ρ‚Π΅Π·ΠΈ заявки. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅. Π’ΡƒΠΊ са прСдставСни Π΄Π²Π΅ заявки.

  • ΠŸΡŠΡ€Π²Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ доста дълго, Π½ΠΎ Π·Π°Ρ‚ΠΎΠ²Π° пък Ρ‰Π΅ Π²ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅ Ρ‚ΠΎΡ‡Π½ΠΈΡ‚Π΅ стойности Π½Π° Π±Π»ΠΎΠ°Ρ‚Π° Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°.
  • Π’Ρ‚ΠΎΡ€Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ ΠΈ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ трябва Π±ΡŠΡ€Π·ΠΎ Π΄Π° ΠΎΡ†Π΅Π½ΠΈΡ‚Π΅ – ΠΈΠΌΠ° Π»ΠΈ Π±Π»ΠΎΠ°Ρ‚ ΠΈΠ»ΠΈ няма Π±Π»ΠΎΠ°Ρ‚ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. И трябва ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅, Ρ‡Π΅ Π±Π»ΠΎΠ°Ρ‚ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Postgres Π²ΠΈΠ½Π°Π³ΠΈ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°. Π’ΠΎΠ²Π° Π΅ особСност Π½Π° Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° MVCC ΠΌΠΎΠ΄Π΅Π».
  • И 20 % Π±Π»ΠΎΠ°Ρ‚ Π΅ Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΎ Π·Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ Π² ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ случаи. ВоСст, Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС притСсняватС ΠΈ Π΄Π° компрСсиратС Ρ‚Π°Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°.

Как Π΄Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°ΠΌΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са сС Π½Π°Π΄ΡƒΠ»ΠΈ, Π²Π΅Ρ‡Π΅ Ρ€Π°Π·Π±Ρ€Π°Ρ…ΠΌΠ΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ са сС Π½Π°Π΄ΡƒΠ»ΠΈ с Π±Π΅Π·ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π΄Π°Π½Π½ΠΈ.

Π‘Π΅Π³Π° Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Ρ‚Π΅ Π±Π»ΠΎΠ°Ρ‚Π°:

  • Ако ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ°Π»ΠΊΠ° Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈ Π΄ΠΎΠ±Ρ€ΠΈ дисковС, Ρ‚.Π΅. Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π΄ΠΎ Π΅Π΄ΠΈΠ½ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚, напълно Π΅ възмоТно Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° VACUUM FULL. Π’ΠΎΠΉ Ρ‰Π΅ Π²Π·Π΅ΠΌΠ΅ ΠΎΡ‚ вас ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π·Π° няколко сСкунди ΠΈ Π΅ Π΄ΠΎΠ±Ρ€Π΅, Π½ΠΎ Π±ΡŠΡ€Π·ΠΎ ΠΈ строго Ρ‰Π΅ ΡΠ²ΡŠΡ€ΡˆΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° си. Какво ΠΏΡ€Π°Π²ΠΈ VACUUM FULL? Π’ΠΎΠΉ Π²Π·ΠΈΠΌΠ° ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΈ ΠΎΡ‚ старитС Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ прСнаписва ΠΆΠΈΠ²ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² Π½ΠΎΠ²Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°. И Π² края подмСня мСстата ΠΈΠΌ. Π‘Ρ‚Π°Ρ€ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ сС ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Ρ‚, Π½ΠΎΠ²ΠΈΡ‚Π΅ сС поставят вмСсто старитС. Но Π·Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° си Π²Π·ΠΈΠΌΠ° ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ с Ρ‚Π°Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π° няма ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΏΡ€Π°Π²ΠΈΡ‚Π΅: Π½ΠΈΡ‚ΠΎ Π΄Π° записватС Π² нСя, Π½ΠΈΡ‚ΠΎ Π΄Π° Ρ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΠΎΡ‚ нСя, Π½ΠΈΡ‚ΠΎ Π΄Π° я ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Ρ‚Π΅. И VACUUM FULL изисква Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ пространство Π½Π° диска, Π·Π° Π΄Π° запишС Π΄Π°Π½Π½ΠΈΡ‚Π΅.
  • БлСдващият инструмСнт pg_repack. По ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ‚ΠΎΠΉ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° VACUUM FULL, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΡΡŠΡ‰ΠΎ прСнаписва Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΎΡ‚ старитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΈ Π³ΠΈ подмСня Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. Но Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π΅ Π²Π·Π΅ΠΌΠ° ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π² самото Π½Π°Ρ‡Π°Π»ΠΎ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° си, Π° я Π²Π·Π΅ΠΌΠ° само Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ° Π³ΠΎΡ‚ΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° подмяна Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅. Π˜Π·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡ‚Π° Π·Π° дискови рСсурси са Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΈ Π½Π° VACUUM FULL. НуТдаСтС сС ΠΎΡ‚ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ пространство Π½Π° диска, Π° Ρ‚ΠΎΠ²Π° понякога ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ с Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚ΠΈ. И Ρ‚ΠΎΠΉ Π΅ доста рСсурсСн, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π°ΠΊΡ‚ΠΈΠ²Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π²Ρ…ΠΎΠ΄-ΠΈΠ·Ρ…ΠΎΠ΄.
  • ВрСтият инструмСнт Π΅ pgcompacttable. Вя ΠΏΠΎ-щадящ Π½Π°Ρ‡ΠΈΠ½ сС отнася към рСсурситС, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ. ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π½Π° pgcompacttable Π΅, Ρ‡Π΅ ΠΏΡ€ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° прСмСствамС всички Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° стартирамС Π²Π°ΠΊΡƒΡƒΠΌ Π½Π° Ρ‚Π°Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π·Π½Π°Π΅ΠΌ, Ρ‡Π΅ Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ, Π° Π² края - ΠΌΡŠΡ€Ρ‚Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅. Π’Π°ΠΊΡƒΡƒΠΌΡŠΡ‚ Π²Π΅Ρ‡Π΅ сам отрязва Ρ‚ΠΎΠ²Π°

Π‘ инструмСнтитС всичко.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Бальников

Ако Ρ‚Π΅ΠΌΠ°Ρ‚Π° Π·Π° bloat Π²ΠΈ сС стори интСрСсна Π·Π° ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΎΡƒΡ‡Π²Π°Π½Π΅, Π΅Ρ‚ΠΎ някои ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²Π΅:

  • https://www.slideshare.net/alexius2Mb/where-is-the-space-postgres – Ρ‚ΠΎΠ²Π° Π΅ Π΄ΠΎΠΊΠ»Π°Π΄ Π½Π° ΠΊΠΎΠ»Π΅Π³Π°. Π’ΠΎΠΉ ΠΎΠ±Ρ…Π²Π°Ρ‰Π° ΠΎΠ±Ρ‰ΠΎ къдС ΠΎΡ‚ΠΈΠ²Π° мястото Π² Postgres ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΈ ΠΆΠΈΠ²ΠΎΡ‚Π° ΠΌΡƒ. И Ρ‚Π°ΠΌ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π΅Π½ тСхничСски Ρ€Π°Π·Π΄Π΅Π» Π·Π° администратори Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ относно bloat.
  • https://github.com/dataegret/pg-utils – Ρ‚ΠΎΠ²Π° Π΅ Π»ΠΈΠ½ΠΊ към Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ ΠΊΡƒΠΏ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ скриптовС Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. Π’Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ скриптовС Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° bloat.
  • Π’Ρ€Π΅Ρ‚ΠΈ ΠΈ Ρ‡Π΅Ρ‚Π²ΡŠΡ€Ρ‚Π° Π»ΠΈΠ½ΠΊΠΎΠ²Π΅ към инструмСнти, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚ Π΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅.
  • http://blog.dataegret.com/2Mb018/03/postgresql-bloatbusters.html – Ρ‚ΠΎΠ²Π° Π΅ пост Π½Π° ΠΊΠΎΠ»Π΅Π³Π°. Π’Π°ΠΌ Ρ‚ΠΎΠΉ доста сСриозно ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ тСхничСски Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π° bloat Π½Π° Π½ΠΈΠ²ΠΎ, Π±Π»ΠΈΠ·ΠΊΠΎ Π΄ΠΎ Ρ‚ΠΎΠ²Π° Π½Π° администраторитС.

ΠžΠΏΠΈΡ‚Π°Ρ… сС Ρ‚ΡƒΠΊ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ° страхотия Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ‚Π΅ са нСпосрСдствСнитС Π½ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ трябва Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π°Ρ‚ ΠΊΠ°ΠΊΠ²ΠΈ дСйствия водят Π΄ΠΎ ΠΊΠ°ΠΊΠ²ΠΈ послСдствия. Надявам сС, Ρ‡Π΅ ΠΌΠΈ Π΅ влязло.

Π’ΡŠΠΏΡ€ΠΎΡΠΈ

Благодаря Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! Π“ΠΎΠ²ΠΎΡ€Π΅Ρ…Ρ‚Π΅ Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. А ΠΊΠ°ΠΊ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС прСдотвратят? ВоСст, ΠΈΠΌΠ°Ρ… ситуация, ΠΊΠΎΠ³Π°Ρ‚ΠΎ заявкитС забавяха Π½Π΅ само Π·Π°Ρ€Π°Π΄ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ външни услуги. Π˜ΠΌΠ°Ρ…Π° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ слоТни joins. ИмашС ΠΈ ΠΌΠ°Π»ΠΊΠΈ Π±Π΅Π·ΠΎΠ±ΠΈΠ΄Π½ΠΈ запитвания, ΠΊΠΎΠΈΡ‚ΠΎ Π΄Π½ΠΈ Π½Π°Ρ€Π΅Π΄ висяха, Π° слСд Ρ‚ΠΎΠ²Π° Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ…Π° Π΄Π° причиняват ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. ВоСст, ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π° Π½Π° описаното ΠΎΡ‚ вас. Как ΠΌΠΎΠΆΠ΅ Π΄Π° сС слСди Ρ‚ΠΎΠ²Π°? Π”Π° сС сСди ΠΈ постоянно Π΄Π° сС слСди коя заявка Π΅ Π·Π°Π±Π°Π²Π΅Π½Π°? Как ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈ Ρ‚ΠΎΠ²Π°?

Π’ Ρ‚ΠΎΠ·ΠΈ случай - Ρ‚ΠΎΠ²Π° Π΅ Π·Π°Π΄Π°Ρ‡Π° Π·Π° администраторитС Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° компания, Π½Π΅ Π½Π΅ΠΏΡ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π° DBA.

Аз съм администратор.

Π’ PostgreSQL ΠΈΠΌΠ° Ρ‚Π°ΠΊΠΎΠ²Π° прСдставлСниС, Π½Π°Ρ€Π΅Ρ‡Π΅Π½ΠΎ pg_stat_activity, Π² ΠΊΠΎΠ΅Ρ‚ΠΎ са ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈ висящитС заявки. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΊΠΎΠ»ΠΊΠΎ дълго са Ρ‚Π°ΠΌ.

Врябва Π»ΠΈ Π΄Π° Π²Π»ΠΈΠ·Π°ΠΌ ΠΈ Π΄Π° Π³Π»Π΅Π΄Π°ΠΌ Π½Π° всСки 5 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ?

НастройтС cron ΠΈ провСряйтС. Ако ΠΈΠΌΠ°Ρ‚Π΅ дълга заявка, просто ΠΏΠΈΡˆΠ΅Ρ‚Π΅ писмо ΠΈ Ρ‚ΠΎΠ²Π° Π΅ всичко. ВоСст, Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π³Π»Π΅Π΄Π°Ρ‚Π΅ с ΠΎΡ‡ΠΈ, Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°. Π©Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ писмо, Π½Π° ΠΊΠΎΠ΅Ρ‚ΠΎ Π΄Π° Ρ€Π΅Π°Π³ΠΈΡ€Π°Ρ‚Π΅. Или ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅.

Има Π»ΠΈ ясни ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ Π·Π°Ρ‰ΠΎ Ρ‚ΠΎΠ²Π° сС случва?

Π˜Π·Π±Ρ€ΠΎΠΈΡ… някои. Π”Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ са ΠΏΠΎ-слоТни. И Ρ‚Π°ΠΌ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС дълъг.

Благодаря Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! Π˜ΡΠΊΠ°Ρ… Π΄Π° уточня Π·Π° инструмСнта pg_repack. Ако Ρ‚ΠΎΠΉ Π½Π΅ ΠΏΡ€Π°Π²ΠΈ Сксклузивна Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°, Ρ‚ΠΎΠ³Π°Π²Π°...

Π’ΠΎΠΉ ΠΏΡ€Π°Π²ΠΈ Сксклузивна Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°.

… Ρ‚ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ ΠΌΠΎΠ³Π° Π΄Π° загубя Π΄Π°Π½Π½ΠΈ. ΠœΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ трябва Π»ΠΈ Π΄Π° записва Π½ΠΈΡ‰ΠΎ ΠΏΡ€Π΅Π· Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅?

НС, Ρ‚ΠΎ спокойно Ρ€Π°Π±ΠΎΡ‚ΠΈ с Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°, тоСст pg_repack ΠΏΡ€Π΅Π΄ΠΈ всичко ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Ρ ΠΆΠΈΠ²ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ°. Π Π°Π·Π±ΠΈΡ€Π° сС, Ρ‚Π°ΠΌ ΠΈΠΌΠ° някакво записванС Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. Π’ΠΎΠΉ просто добавя Ρ‚ΠΎΠ·ΠΈ ΠΊΡ€Π°ΠΉ.

ВоСст, Ρ‚ΠΎΠΉ накрая всС ΠΏΠ°ΠΊ Π³ΠΎ ΠΏΡ€Π°Π²ΠΈ?

Π’ края Ρ‚ΠΎΠΉ Π²Π·Π΅ΠΌΠ° Сксклузивна Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°, Π·Π° Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈ Ρ‚Π΅Π·ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

Π’ΠΎΠ²Π° Ρ‰Π΅ бъдС ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ ΠΎΡ‚ VACUUM FULL?

VACUUM FULL, ΠΊΠΎΠ³Π°Ρ‚ΠΎ стартира, Π²Π΅Π΄Π½Π°Π³Π° Π²Π·Π΅ΠΌΠ° Сксклузивна Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°. И Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π΅ ΡΠ²ΡŠΡ€ΡˆΠΈ всичко, Ρ‚ΠΎΠΉ Π½Π΅ я освобоТдава. А pg_repack Π²Π·Π΅ΠΌΠ° Сксклузивна Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° само Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° замяната Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅. Π’ Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Ρ‚Π°ΠΌ, Π½ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅ няма Π΄Π° сС загубят, всичко Ρ‰Π΅ бъдС Π½Π°Ρ€Π΅Π΄.

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅! Π Π°Π·ΠΊΠ°Π·Π²Π°Ρ…Ρ‚Π΅ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Π°Π²Ρ‚ΠΎΠΊΠ»ΠΈΠ½ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ. ИмашС Π³Ρ€Π°Ρ„ΠΈΠΊΠ° с Ρ‡Π΅Ρ€Π²Π΅Π½ΠΈ, ΠΆΡŠΠ»Ρ‚ΠΈ ΠΈ Π·Π΅Π»Π΅Π½ΠΈ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ Π·Π° записванС. ВоСст ΠΆΡŠΠ»Ρ‚ΠΈΡ‚Π΅ – Ρ‚ΠΎΠΉ Π³ΠΈ Π΅ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π» ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Ρ‚Ρ€ΠΈΡ‚ΠΈ. И слСдоватСлно Π² тях ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π΄Π° Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π½Π΅Ρ‰ΠΎ Π½ΠΎΠ²ΠΎ?

Π”Π°. Postgres Π½Π΅ ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π° Ρ€Π΅Π΄ΠΎΠ²Π΅. Има Ρ‚Π°ΠΊΠ°Π²Π° спСцифика. Ако ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ Ρ€Π΅Π΄, старият сС ΠΌΠ°Ρ€ΠΊΠΈΡ€Π° ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Ρ‚Ρ€ΠΈΡ‚. Π’Π°ΠΌ стои id Π½Π° транзакцията, която Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ»Π° Ρ‚ΠΎΠ·ΠΈ Ρ€Π΅Π΄, ΠΈ записвамС новия Ρ€Π΅Π΄. И ΠΈΠΌΠ°ΠΌΠ΅ сСсии, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π³ΠΈ Ρ‡Π΅Ρ‚Π°Ρ‚. Π’ Π΅Π΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ‚Π΅ Π²Π΅Ρ‡Π΅ стават ΠΌΠ½ΠΎΠ³ΠΎ стари. И ΡΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Π°Π²Ρ‚ΠΎΠΊΠ»ΠΈΠ½ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π΅, Ρ‡Π΅ Ρ‚ΠΎΠΉ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΡ€Π΅Π· Ρ‚Π΅Π·ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅ ΠΈ Π³ΠΈ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π° ΠΊΠ°Ρ‚ΠΎ Π½Π΅Π½ΡƒΠΆΠ½ΠΈ. И Ρ‚Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€Π΅Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π΄Π°Π½Π½ΠΈ.

Π Π°Π·Π±Ρ€Π°Ρ…. Но Π²ΡŠΠΏΡ€ΠΎΡΡŠΡ‚ Π½Π΅ Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π° Ρ‚ΠΎΠ²Π°. НС Π·Π°Π²ΡŠΡ€ΡˆΠΈΡ…. Π”Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π°. Π’ нСя ΠΈΠΌΠ° ΠΏΠΎΠ»Π΅Ρ‚Π° с ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ² Ρ€Π°Π·ΠΌΠ΅Ρ€. И Π°ΠΊΠΎ сС ΠΎΠΏΠΈΡ‚Π°ΠΌ Π΄Π° вмъкна Π½Π΅Ρ‰ΠΎ Π½ΠΎΠ²ΠΎ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ просто Π΄Π° Π½Π΅ Π²Π»Π΅Π·Π΅ Π² старото ΠΏΠΎΠ»Π΅.

НС, Ρ‚Π°ΠΌ Π² ΠΊΠ°ΠΊΡŠΠ²Ρ‚ΠΎ ΠΈ Π΄Π° Π΅ случай цялата Ρ€Π΅Π΄ΠΈΡ†Π° сС обновява. Π’ Postgres ΠΈΠΌΠ° Π΄Π²Π° ΠΌΠΎΠ΄Π΅Π»Π° Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠΉ ΠΈΠ·Π±ΠΈΡ€Π° Π² зависимост ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½ΠΈ. Има Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°, Π° ΠΈΠΌΠ° ΠΈ tos-Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠ²Π° са Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΠ±Π΅ΠΌΠΈ Π΄Π°Π½Π½ΠΈ: тСкст, json. Π’Π΅ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π² ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ. И ΠΏΠΎ Ρ‚Π΅Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ сС ΠΏΡ€Π°Π²ΠΈ ΡΡŠΡ‰ΠΎΡ‚ΠΎ с bloat, Ρ‚. Π΅. всичко ΡΡŠΡ‰ΠΎΡ‚ΠΎ. ΠŸΡ€ΠΎΡΡ‚ΠΎ Ρ‚Π΅ са прСмСстСни ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ.

Благодаря Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! Π’ ΠΊΠ°ΠΊΠ²Π° стСпСн Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΎ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ заявки с statement timeout?

Много Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΎ. НиС Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ навсякъдС. И Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ нямамС свои услуги, Π° ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΠΌΠ΅ ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°, ΠΈΠΌΠ°ΠΌΠ΅ доста Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ. Всички са напълно ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈ ΠΎΡ‚ Ρ‚ΠΎΠ²Π°. Π’. Π΅. ΠΈΠΌΠ°ΠΌΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π² cron, ΠΊΠΎΠΈΡ‚ΠΎ провСряват. ΠŸΡ€ΠΎΡΡ‚ΠΎ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° сС уточнява максималната ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚ Π½Π° сСсиитС, ΠΏΠΎΠ΄ която Π½Π΅ сС ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Ρ‚. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΌΠΈΠ½ΡƒΡ‚Π°, ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС 10 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ. Зависи ΠΎΡ‚ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π±Π°Π·Π°Ρ‚Π° ΠΈ Π½Π΅ΠΉΠ½Π°Ρ‚Π° Ρ†Π΅Π». Но ΠΏΡ€ΠΈ всички ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ pg_stat_activity.

Благодаря Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! ΠžΠΏΠΈΡ‚Π²Π°ΠΌ сС Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ° вашия Π΄ΠΎΠΊΠ»Π°Π΄ Π² ΠΌΠΎΠΈΡ‚Π΅ прилоТСния. И сякаш навсякъдС Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ транзакция, навсякъдС я Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°ΠΌΠ΅ явно. Ако възникнС някакъв exception, rollback всС ΠΏΠ°ΠΊ сС случва. И Ρ‚ΡƒΠΊ сС замислих. Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка, ΠΌΠΎΠΆΠ΅ Π»ΠΈ транзакцията Π΄Π° стартира нСявно. Π’ΠΎΠ²Π° Π΅ подслон Π·Π° Π΄Π°ΠΌΠ°Ρ‚Π°, вСроятно. Ако просто правя ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° записа, транзакцията Ρ‰Π΅ стартира Π² PostgreSQL ΠΈ Ρ‰Π΅ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈ само ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° бъдС ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π°?

Ако Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎ зависи ΠΎΡ‚ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅, ΠΎΡ‚ ORM, ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°. Има ΠΌΠ½ΠΎΠ³ΠΎ настройки. Ако auto commit on Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, транзакцията стартира ΠΈ Π²Π΅Π΄Π½Π°Π³Π° сС затваря.

Π’. Π΅. тя сС затваря Π²Π΅Π΄Π½Π°Π³Π° слСд ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ?

Π’ΠΎΠ²Π° зависи ΠΎΡ‚ настройкитС. Π•Π΄Π½Π° настройка, която спомСнах, Π΅ auto commit on. Вя Π΅ доста разпространСна. Ако Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π°, транзакцията стартира ΠΈ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π°. Ако Π½Π΅ стС ΠΊΠ°Π·Π°Π»ΠΈ явно β€žstart transactionβ€œ ΠΈ β€žend transactionβ€œ, Π° просто стС стартирали заявка Π² сСсията.

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅! Благодаря Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! Π”Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ Π±Π°Π·Π°, която нараства ΠΈ извСднъТ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° ΡΠ²ΡŠΡ€ΡˆΠ²Π° мястото. Има Π»ΠΈ някакви инструмСнти Π·Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° Ρ‚Π°Π·ΠΈ ситуация?

ΠœΡΡΡ‚ΠΎΡ‚ΠΎ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° наистина трябва Π΄Π° сС наблюдава.

НапримСр, DBA ΠΎΡ‚ΠΈΠ΄Π΅ Π΄Π° ΠΏΠΈΠ΅ Ρ‡Π°ΠΉ, бСшС Π½Π° ΠΊΡƒΡ€ΠΎΡ€Ρ‚ ΠΈ Ρ‚. Π½.

ΠšΠΎΠ³Π°Ρ‚ΠΎ сС създава Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма, ΠΏΠΎΠ½Π΅ΠΆΠ΅ сС създава извСстно Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎ пространство, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π½Π΅ сС записват Π΄Π°Π½Π½ΠΈ.

А Π°ΠΊΠΎ Π΅ съвсСм Π½ΡƒΠ»Π°?

Π’ΠΎ Ρ‚Π°ΠΌ сС Π½Π°Ρ€ΠΈΡ‡Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎ пространство, Ρ‚.Π΅. ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС освободСно ΠΈ Π² зависимост ΠΎΡ‚ Ρ‚ΠΎΠ²Π° ΠΊΠΎΠ»ΠΊΠΎ голямо Π΅ създадСно, ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚Π΅ свободно място. По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π΅ Π·Π½Π°ΠΌ ΠΊΠΎΠ»ΠΊΠΎ Π΅ Ρ‚Π°ΠΌ. А Π² Π΄Ρ€ΡƒΠ³ случай – Π΄Π° сС доставят дисковС, Π·Π° Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ място Π·Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚Π΅Π»Π½Π° опСрация. МоТС Π΄Π° сС ΠΈΠ·Ρ‚Ρ€ΠΈΠ΅ някаква Ρ‚Π°Π±Π»ΠΈΡ†Π°, която наистина Π½Π΅ Π²ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°.

Няма Π»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ инструмСнти?

Π’ΠΈΠ½Π°Π³ΠΈ Π΅ Ρ€ΡŠΡ‡Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°. И Π½Π° място сС установява ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€Π΅ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΈΠΌΠ° ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΈ ΠΈ Π½Π΅ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΈ Π΄Π°Π½Π½ΠΈ. И Π·Π° всяка Π±Π°Π·Π° ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ с нСя, зависи ΠΎΡ‚ бизнСса. Π’ΠΈΠ½Π°Π³ΠΈ сС Ρ€Π΅ΡˆΠ°Π²Π° Π½Π° място.

Благодаря Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! Имам Π΄Π²Π° Π²ΡŠΠΏΡ€ΠΎΡΠ°. ΠŸΡŠΡ€Π²ΠΎ, Π²ΠΈΠ΅ дСмонстрирахтС слайдовС, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ…Ρ‚Π΅, Ρ‡Π΅ Π² случай Π½Π° зависнали Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ нараства ΠΊΠ°ΠΊΡ‚ΠΎ ΠΎΠ±Π΅ΠΌΡŠΡ‚ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΡ‚ΠΎ пространство, Ρ‚Π°ΠΊΠ° ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° индСкса. А ΠΊΠ°ΠΊΠ²ΠΎ става с индСкса?

Π’Π΅ ΡΡŠΡ‰ΠΎ сС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ€Π°Ρ‚.

Но Π²Π°ΠΊΡƒΡƒΠΌΡŠΡ‚ Π½Π΅ засяга индСкса?

Някои работят с индСкса. НапримСр, pg_rapack, pgcompacttable. Π’Π°ΠΊΡƒΡƒΠΌΠ° ΠΏΡ€Π΅ΡΡŠΠ·Π΄Π°Π²Π° индСкситС, засяга Π³ΠΈ. Π‘ΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° VACUUM FULL Π΅ Π΄Π° ΠΏΡ€Π΅Π·Π°ΠΏΠΈΡˆΠ΅ всичко, Ρ‚.Π΅. Ρ‚ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΈ с всички.

И вторият Π²ΡŠΠΏΡ€ΠΎΡ. НС Ρ€Π°Π·Π±Ρ€Π°Ρ… Π·Π°Ρ‰ΠΎ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈΡ‚Π΅ Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈΡ‚Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° зависят ΠΎΡ‚ самата рСпликация. ΠŸΠΎΠΌΠΈΡΠ»ΠΈΡ…, Ρ‡Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈΡ‚Π΅ са Ρ‡Π΅Ρ‚Π΅Π½Π΅, Π° рСпликацията – запис.

Π’ ΠΊΠ°ΠΊΠ²ΠΎ сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡŠΡ‚ Π² рСпликацията? ИмамС ΠœΠ°ΡΡ‚ΡŠΡ€, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€ΠΎΡ‚ΠΈΡ‡Π°Ρ‚ процСси. ΠŸΡ€ΠΈ нас ΠΏΡ€ΠΎΡ‚ΠΈΡ‡Π° Π°Π²Ρ‚ΠΎΠ²Π°ΠΊΡƒΡƒΠΌ. ΠΠ²Ρ‚ΠΎΠ²Π°ΠΊΡƒΡƒΠΌΡŠΡ‚ ΠΏΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡ€Π°Π²ΠΈ? Π˜Π·Ρ‚Ρ€ΠΈΠ²Π° стари Ρ€Π΅Π΄ΠΎΠ²Π΅. Ако ΠΏΠΎ Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π° ΠΈΠΌΠ° заявка, която Ρ‡Π΅Ρ‚Π΅ Ρ‚Π΅Π·ΠΈ стари Ρ€Π΅Π΄ΠΎΠ²Π΅, Π° Π½Π° ΠœΠ°ΡΡ‚ΡŠΡ€Π° Π΅ възникнала ситуация, Ρ‡Π΅ Π°Π²Ρ‚ΠΎΠ²Π°ΠΊΡƒΡƒΠΌΡŠΡ‚ Π΅ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π» Ρ‚Π΅Π·ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅ ΠΊΠ°Ρ‚ΠΎ възмоТни Π·Π° прСзапис, Ρ‚ΠΎ Π½ΠΈΠ΅ Π³ΠΈ прСзаписвамС. И ΠΏΡ€ΠΈ нас Π΅ дошъл ΠΏΠ°ΠΊΠ΅Ρ‚ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ трябва Π΄Π° ΠΏΡ€Π΅Π·Π°ΠΏΠΈΡˆΠ΅ΠΌ Ρ‚Π΅Π·ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° заявката Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π°, Ρ‚ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π° рСпликация Ρ‰Π΅ ΠΈΠ·Ρ‡Π°ΠΊΠ° ΡƒΠΊΠ°Π·Π°Π½ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ стС настроили. И слСд Ρ‚ΠΎΠ²Π° PostgreSQL Ρ‰Π΅ Ρ€Π΅ΡˆΠΈ ΠΊΠΎΠ΅ Π΅ ΠΏΠΎ-Π²Π°ΠΆΠ½ΠΎ Π·Π° Π½Π΅Π³ΠΎ. А рСпликацията Π·Π° Π½Π΅Π³ΠΎ Π΅ ΠΏΠΎ-Π²Π°ΠΆΠ½Π° ΠΎΡ‚ заявката ΠΈ Ρ‚ΠΎΠΉ Ρ‰Π΅ отстрани заявката, Π·Π° Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π°.

АндрСй, ΠΈΠΌΠ°ΠΌ Π²ΡŠΠΏΡ€ΠΎΡ. Π’Π΅Π·ΠΈ прСкрасни Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° прСзСнтацията, Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π»ΠΈ са ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° някакъв ваш инструмСнт? Π‘ ΠΊΠ°ΠΊΠ²ΠΎ са ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΈ Π³Ρ€Π°Ρ„ΠΈΡ†ΠΈΡ‚Π΅?

Π’ΠΎΠ²Π° Π΅ услуга Okmeter.

Π’ΠΎΠ²Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π»ΠΈ Π΅?

Π”Π°. Π’ΠΎΠ²Π° Π΅ Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚.

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

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