ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройванСто Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ». Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π΄Π° сС Π·Π°ΠΏΠΎΠ·Π½Π°Π΅Ρ‚Π΅ с Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π° Π½Π° Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ² "Π˜Π½Π΄ΡƒΡΡ‚Ρ€ΠΈΠ°Π»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ"

Shared_buffers = 25% – Ρ‚ΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈ Π΅ ΠΈΠ»ΠΈ ΠΌΠ°Π»ΠΊΠΎ? Или Ρ‚ΠΎΡ‡Π½ΠΎ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ? Как Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π΄Π°Π»ΠΈ Ρ‚Π°Π·ΠΈ – доста остаряла – ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠ° Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌΠ° Π·Π° вашия ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ случай?

Π’Ρ€Π΅ΠΌΠ΅ Π΅ Π΄Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ към Π²ΡŠΠΏΡ€ΠΎΡΠ° Π·Π° ΠΏΠΎΠ΄Π±ΠΎΡ€Π° Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π½Π° postgresql.conf "профСсионално". НС Ρ‡Ρ€Π΅Π· слСпи "Π°Π²Ρ‚ΠΎΡ‚ΡŽΠ½Π΅Ρ€ΠΈ" ΠΈΠ»ΠΈ остарСли ΡΡŠΠ²Π΅Ρ‚ΠΈ ΠΎΡ‚ статии ΠΈ Π±Π»ΠΎΠ³ΠΎΠ²Π΅, Π° Π½Π° основата Π½Π°:

  1. строго ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΈ СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°Π½ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ, Π² Π³ΠΎΠ»Π΅ΠΌΠΈ количСства ΠΈ ΠΏΡ€ΠΈ условия, максимално Π±Π»ΠΈΠ·ΠΊΠΈ Π΄ΠΎ "Π±ΠΎΠΉΠ½ΠΈ",
  2. Π΄ΡŠΠ»Π±ΠΎΡ‡ΠΈΠ½Π½ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° особСноститС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° Π‘Π£Π‘Π” ΠΈ ОБ.

Използвайки Nancy CLI (https://gitlab.com/postgres.ai/nancy), Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ – Π½Π°ΡˆΡƒΠΌΠ΅Π»ΠΈΡ‚Π΅ shared_buffers – Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ситуации, Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΈ Ρ‰Π΅ сС ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊ Π΄Π° ΠΏΠΎΠ΄Π±Π΅Ρ€Π΅ΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½Π°Ρ‚Π° настройка Π·Π° Π½Π°ΡˆΠ°Ρ‚Π° инфраструктура, Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Π©Π΅ става Π²ΡŠΠΏΡ€ΠΎΡ Π·Π° СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠ²Π° Π΅ история, която ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ ΡˆΠ΅ΡΡ‚ мСсСца.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Няколко Π΄ΡƒΠΌΠΈ Π·Π° ΠΌΠ΅Π½. Π‘ ΠΎΠΏΠΈΡ‚ с Postgres Π²Π΅Ρ‡Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 14 Π³ΠΎΠ΄ΠΈΠ½ΠΈ. Основал съм Ρ€Π΅Π΄ΠΈΡ†Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π² социалнитС ΠΌΡ€Π΅ΠΆΠΈ. НавсякъдС Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Postgres ΠΈ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°.

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π³Ρ€ΡƒΠΏΠ°Ρ‚Π° RuPostgres ΠΏΡ€ΠΈ Meetup, 2-Ρ€ΠΎ място Π² свСта. ΠŸΠΎΡΡ‚Π΅ΠΏΠ΅Π½Π½ΠΎ достиганС Π½Π° ΠΏΠΎΡ‡Ρ‚ΠΈ 2 000 Π΄ΡƒΡˆΠΈ. RuPostgres.org.

На Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Highload, отговарям Π·Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΏΠΎ-спСциално Postgres ΠΎΡ‚ самото Π½Π°Ρ‡Π°Π»ΠΎ.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

И Π² послСднитС няколко Π³ΠΎΠ΄ΠΈΠ½ΠΈ рСстартирах ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°Ρ‚Π° си ΠΏΠΎ Postgres консултиранС Π² 11 часови Π·ΠΎΠ½ΠΈ ΠΎΡ‚ Ρ‚ΡƒΠΊ.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

ΠšΠΎΠ³Π°Ρ‚ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ… Ρ‚ΠΎΠ²Π° ΠΏΡ€Π΅Π΄ΠΈ няколко Π³ΠΎΠ΄ΠΈΠ½ΠΈ, бях ΠΈΠΌΠ°Π» извСстСн ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π½Π° Π°ΠΊΡ‚ΠΈΠ²Π½Π° Ρ€ΡŠΡ‡Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с Postgres, вСроятно ΠΎΡ‚ 2010 Π³ΠΎΠ΄ΠΈΠ½Π°. Π£Ρ‡ΡƒΠ΄ΠΈΡ… сС ΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ°Π»ΠΊΠΎ сС Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ» Π΅ΠΆΠ΅Π΄Π½Π΅Π²ΠΈΠ΅Ρ‚ΠΎ Π½Π° DBA, ΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€ΡŠΡ‡Π΅Π½ Ρ‚Ρ€ΡƒΠ΄ всС ΠΎΡ‰Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ. И Π²Π΅Π΄Π½Π°Π³Π° си помислих, Ρ‡Π΅ Π½Π΅Ρ‰ΠΎ Π½Π΅ Π΅ Π½Π°Ρ€Π΅Π΄, трябва Π΄Π° сС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅.

И Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ всичко Ρ‚ΠΎΠ²Π° бСшС Π² ΠΎΠ±Π»Π°ΠΊΠ°, ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ бяха Π² ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ. И всичко ΡƒΠΆΠ΅ Π±Π΅ ясно Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ. Π—Π° Ρ‚ΠΎΠ²Π° ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-късно. ВоСст, всичко Ρ‚ΠΎΠ²Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π° Π² идСята, Ρ‡Π΅ трябва Π΄Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ Ρ€Π΅Π΄ΠΈΡ†Π° инструмСнти, Ρ‚.Π΅. някаква ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, която Π΄Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π° ΠΏΠΎΡ‡Ρ‚ΠΈ всички дСйствия Π½Π° DBA, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС управлява голям Π±Ρ€ΠΎΠΉ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Π’ Ρ‚ΠΎΠ·ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ няма Π΄Π° ΠΈΠΌΠ°:

  • β€žΠ‘Ρ€Π΅Π±ΡŠΡ€Π½ΠΈ ΠΊΡƒΡ€ΡˆΡƒΠΌΠΈβ€œ ΠΈ изказвания ΠΊΠ°Ρ‚ΠΎ – поставяйтС 8 GB ΠΈΠ»ΠΈ 25 % shared_buffers ΠΈ всичко Ρ‰Π΅ Π΅ Π½Π°Ρ€Π΅Π΄. Π—Π° shared_buffers Ρ‰Π΅ ΠΈΠΌΠ° Π½Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ.
  • Π₯Π°Ρ€Π΄ΠΊΠΎΡ€Π½ΠΈ "Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΠΈ".

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Какво Ρ‰Π΅ сС случи?

  • Π©Π΅ ΠΈΠΌΠ° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ Π½Π° оптимизация, ΠΊΠΎΠΈΡ‚ΠΎ Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»Π°Π³Π°ΠΌΠ΅ ΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°ΠΌΠ΅. Π©Π΅ ΠΈΠΌΠ° всякакви ΠΈΠ΄Π΅ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ‚ ΠΏΠΎ ΠΏΡŠΡ‚Ρ Π½ΠΈ ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ инструмСнти, ΠΊΠΎΠΈΡ‚ΠΎ основно създавамС Π² Open Source, Ρ‚.Π΅. основата Π΅ Π² Open Source. ОсвСн Ρ‚ΠΎΠ²Π° ΠΈΠΌΠ°ΠΌΠ΅ Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ, всичкото Π½ΠΈ ΠΎΠ±Ρ‰ΡƒΠ²Π°Π½Π΅ Π΅ ΠΏΠΎΡ‡Ρ‚ΠΈ Π² Open Source. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°Ρ‚Π΅ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡ€Π°Π²ΠΈΠΌ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΊΠ°ΠΊΠ²ΠΎ Ρ‰Π΅ ΠΈΠΌΠ° Π² слСдващото ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ Ρ‚.Π½.
  • Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Ρ‰Π΅ ΠΈΠΌΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΎΠΏΠΈΡ‚ Π² ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ, Ρ‚Π΅Π·ΠΈ инструмСнти Π² Ρ€Π΅Π΄ΠΈΡ†Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ: ΠΎΡ‚ ΠΌΠ°Π»ΠΊΠΈ стартапи Π΄ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ Ρ„ΠΈΡ€ΠΌΠΈ.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Как сС Ρ€Π°Π·Π²ΠΈΠ²Π° всичко Ρ‚ΠΎΠ²Π°?

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

На ΠΏΡŠΡ€Π²ΠΎ място, основната Π·Π°Π΄Π°Ρ‡Π° Π½Π° DBA, освСн осигуряванС Π½Π° ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° инстанции, Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈ копия ΠΈ Ρ‚.Π½., Π΅ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° слаби мСста ΠΈ оптимизация Π½Π° производитСлността.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½. НиС Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π½Π΅Ρ‰ΠΎ, липсват Π½ΠΈ Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈ. Π—Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ Π΄Π° Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΠΏΠΎ-Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Ρ€ΡŠΡ‡Π½ΠΎ, ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ с Ρ‚ΠΎΠ²Π° ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ Π½Π°Ρ‡ΠΈΠ½.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Има Π΄Π²Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°. Pg_stat_statements – стандартното Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° Π±Π°Π²Π½ΠΈ заявки. И Π°Π½Π°Π»ΠΈΠ· Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° Postgres с pgBadger.

ВсСки ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ ΠΈΠΌΠ° сСриозни Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈ. ΠŸΡ€ΠΈ ΠΏΡŠΡ€Π²ΠΈΡ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ смС Π·Π°Π³ΡƒΠ±ΠΈΠ»ΠΈ всички ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ. И Π°ΠΊΠΎ Π²ΠΈΠ΄ΠΈΠΌ Π³Ρ€ΡƒΠΏΠΈ SELECT * FROM table where ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° = Π·Π½Π°ΠΊ "?" ΠΈΠ»ΠΈ "$" ΠΎΡ‚ вСрсия Postgres 10 Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ, Π½Π΅ Π·Π½Π°Π΅ΠΌ – Ρ‚ΠΎΠ²Π° Π΅ index scan ΠΈΠ»ΠΈ seq scan. Много зависи ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π°. Ако ΠΏΠΎΡΡ‚Π°Π²ΠΈΡˆ рядко срСщана стойност, Ρ‰Π΅ бъдС index scan. Ако ΠΏΠΎΡΡ‚Π°Π²ΠΈΡˆ стойност, която Π·Π°Π΅ΠΌΠ° 90 % ΠΎΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Ρ‰Π΅ бъдС seq scan, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Postgres Π·Π½Π°Π΅ статистиката. И Ρ‚ΠΎΠ²Π° Π΅ голям Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊ Π½Π° pg_stat_statements, ΠΌΠ°ΠΊΠ°Ρ€ Ρ‡Π΅ сС правят ΠΎΠΏΠΈΡ‚ΠΈ Π·Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠ΅.

ΠžΡΠ½ΠΎΠ²Π½ΠΈΡΡ‚ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊ Π½Π° Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ Π΅, Ρ‡Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° си ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚Π΅ "log_min_duration_statement = 0", ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ. И Π·Π° Ρ‚ΠΎΠ²Π° Ρ‰Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΡΡŠΡ‰ΠΎ. Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ, Π½Π΅ Π²ΠΈΠΆΠ΄Π°Ρ‚Π΅ цялата ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π°. И някаква заявка, която Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡŠΡ€Π·Π°, ΠΌΠΎΠΆΠ΅ Π΄Π° консумира ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎ количСство рСсурси, Π½ΠΎ няма Π΄Π° я Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π·Π°Ρ‰ΠΎΡ‚ΠΎ тя Π΅ ΠΏΠΎΠ΄ вашия ΠΏΡ€Π°Π³.

Как Ρ€Π΅ΡˆΠ°Π²Π°Ρ‚ DBA ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ?

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

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

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

  • Π’ΡƒΠ½ΠΈΠ½Π³ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.
  • ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Π½Π°Π±ΠΎΡ€Π° ΠΎΡ‚ индСкси.
  • ΠŸΡ€ΠΎΠΌΠ΅Π½ΡΠ½Π΅ Π½Π° самия SQL-запрос (Ρ‚ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-трудният Π½Π°Ρ‡ΠΈΠ½).
  • ДобавянС Π½Π° мощности (Π½Π°ΠΉ-простият Π½Π°Ρ‡ΠΈΠ½ Π² ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ случаи).

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Π‘ Ρ‚Π΅Π·ΠΈ Π½Π΅Ρ‰Π° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°. Има ΠΌΠ½ΠΎΠ³ΠΎ настройки Π² Postgres. НуТно Π΅ Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ. Има ΠΌΠ½ΠΎΠ³ΠΎ индСкси Π² Postgres, Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° Ρ‚Π°Π·ΠΈ конфСрСнция. Всичко Ρ‚ΠΎΠ²Π° трябва Π΄Π° сС Π·Π½Π°Π΅, ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚ΠΎΠ²Π° Ρƒ Π½Π΅ DBA създава усСщанСто, Ρ‡Π΅ DBA сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ‚ с Ρ‡Π΅Ρ€Π½Π° магия. ВоСст, Π½ΡƒΠΆΠ½ΠΎ Π΅ Π΄Π° сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ‚Π΅ ΠΎΠΊΠΎΠ»ΠΎ 10 Π³ΠΎΠ΄ΠΈΠ½ΠΈ, Π·Π° Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚Π΅ всичко Ρ‚ΠΎΠ²Π° Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΎ.

И Π°Π· съм Π±ΠΎΡ€Π΅Ρ† с Ρ‚Π°Π·ΠΈ Ρ‡Π΅Ρ€Π½Π° магия. Искам Π΄Π° направя всичко Ρ‚Π°ΠΊΠ°, Ρ‡Π΅ Π΄Π° ΠΈΠΌΠ° тСхнология, Π° Π½Π΅ интуиция във всичко Ρ‚ΠΎΠ²Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΈ ΠΎΡ‚ ΠΆΠΈΠ²ΠΎΡ‚Π°

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Π’ΠΎΠ²Π° съм наблюдавал ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π² Π΄Π²Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ моя. ΠžΡ‰Π΅ Π΅Π΄Π½Π° публикация Π² Π±Π»ΠΎΠ³Π° Π½ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°, Ρ‡Π΅ стойността 1 000 Π·Π° default_statistict_target Π΅ Π΄ΠΎΠ±Ρ€Π°. Π”ΠΎΠ±Ρ€Π΅, Π½Π΅ΠΊΠ° ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π² production.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

И Ρ‚ΡƒΠΊ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ нашия инструмСнт Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΏΠΎ-късно с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ днСс, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° сравним ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Π±ΠΈΠ»ΠΎ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ стана.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

И Π·Π° Ρ‚ΠΎΠ²Π° трябва Π΄Π° създадСм СкспСримСнт. Π‘ΡŠΡΡ‚ΠΎΠΈ сС ΠΎΡ‚ Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ части.

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

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Π—Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ СкспСримСнт. Π•Ρ‚ΠΎ pg_stat_statements. ΠžΡ‚Π»ΡΠ²ΠΎ – ΠΊΠ°ΠΊΠ²ΠΎ бСшС. ΠžΡ‚Π΄ΡΡΠ½ΠΎ – ΠΊΠ°ΠΊΠ²ΠΎ стана.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

ΠžΡ‚Π»ΡΠ²ΠΎ default_statistics_target = 100, отдясно = 1 000. Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π½ΠΈ Π΅ ΠΏΠΎΠΌΠΎΠ³Π½Π°Π»ΠΎ. На 8 % всичко стана ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Но Π°ΠΊΠΎ ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌ Π½Π°Π΄ΠΎΠ»Ρƒ, Ρ‚Π°ΠΌ Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ Π³Ρ€ΡƒΠΏΠΈ заявки ΠΎΡ‚ pgBadger ΠΈΠ»ΠΈ pg_stat_statements. Има Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°. Π©Π΅ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Π΅ някоя заявка Π΅ спаднала с 88 %. И Ρ‚ΡƒΠΊ Π²Π΅Ρ‡Π΅ Π΅ инТСнСрния ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. МоТСм Π΄Π° ΠΊΠΎΠΏΠ°Π΅ΠΌ ΠΏΠΎ-дълбоко, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π΅ интСрСсно Π·Π°Ρ‰ΠΎ Π΅ спаднала. Врябва Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Π±ΠΈΠ»ΠΎ със статистиката. Π—Π°Ρ‰ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π±Π°ΠΊΠ΅Ρ‚ΠΈ Π² статистиката водят Π΄ΠΎ ΠΏΠΎ-лош Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

А ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π΅ ΠΊΠΎΠΏΠ°Π΅ΠΌ, Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ β€žALTER TABLE … ALTER COLUMNβ€œ ΠΈ Π΄Π° Π²ΡŠΡ€Π½Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ 100 Π±Π°ΠΊΠ΅Ρ‚Π° Π² статистиката Π½Π° Ρ‚Π°Π·ΠΈ ΠΊΠΎΠ»ΠΎΠ½Π°. И слСд Ρ‚ΠΎΠ²Π°, с ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ СкспСримСнт, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° сС ΡƒΠ²Π΅Ρ€ΠΈΠΌ, Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°Ρ‚Ρ‡ Π΅ ΠΏΠΎΠΌΠΎΠ³Π½Π°Π». Всичко. Π•Ρ‚ΠΎ Ρ‚ΠΎΠ²Π° Π΅ инТСнСрния ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΊΠΎΠΉΡ‚ΠΎ Π½ΠΈ ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π°Ρ‚Π° ΠΈ Π΄Π° Π²Π·Π΅ΠΌΠ°ΠΌΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ въз основа Π½Π° Π΄Π°Π½Π½ΠΈ, Π° Π½Π΅ Π½Π° интуиция.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Няколко ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈ области. Π’ тСстовСтС ΠΈΠΌΠ° CI тСстовС ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ΄ΠΈΠ½ΠΈ. Нито Π΅Π΄ΠΈΠ½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Ρ‚Ρ€Π΅Π·Π²Π° ΡƒΠΌΠ° Π½Π΅ Π±ΠΈ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Π» Π±Π΅Π· Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ тСстовС.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Π’ Π΄Ρ€ΡƒΠ³ΠΈ индустрии: Π²θˆͺη©Ί, Π² автомобилостроСнСто, ΠΊΠΎΠ³Π°Ρ‚ΠΎ тСствамС Π°Π΅Ρ€ΠΎΠ΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ°, ΡΡŠΡ‰ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ СкспСримСнти. Няма Π΄Π° пускамС Π½Π΅Ρ‰ΠΎ Π²Π΅Π΄Π½Π°Π³Π° Π² космоса ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΊΠ°Ρ€Π°ΠΌΠ΅ ΠΊΠΎΠ»Π° Π½Π° ΠΏΡŠΡ‚Ρ. НапримСр, ΠΈΠΌΠ° Π°Π΅Ρ€ΠΎΠ΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Π° Ρ‚Ρ€ΡŠΠ±Π°.

ΠžΡ‚ Π½Π°Π±Π»ΡŽΠ΄Π΅Π½ΠΈΡΡ‚Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ индустрии ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ ΠΈΠ·Π²ΠΎΠ΄ΠΈ.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

ΠŸΡŠΡ€Π²ΠΎ, ΠΈΠΌΠ°ΠΌΠ΅ спСциална срСда. Вя Π΅ Π±Π»ΠΈΠ·ΠΊΠ° Π΄ΠΎ продукция, Π½ΠΎ Π½Π΅ съвсСм. ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° ΠΉ характСристика Π΅, Ρ‡Π΅ трябва Π΄Π° бъдС Π΅Π²Ρ‚ΠΈΠ½Π°, повторяСма ΠΈ максимално Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½Π°. И трябва Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ спСциални срСдства Π·Π° ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π΅Ρ‚Π°ΠΉΠ»Π΅Π½ Π°Π½Π°Π»ΠΈΠ·.

ВСроятно, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ запустили самолСт ΠΈ Π»Π΅Ρ‚ΠΈΠΌ, Ρƒ нас мСньшС возмоТностСй ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΈΠ»Π»ΠΈΠΌΠ΅Ρ‚Ρ€ повСрхности ΠΊΡ€Ρ‹Π»Π°, Ρ‡Π΅ΠΌ Π² аэродинамичСской Ρ‚Ρ€ΡƒΠ±Π΅. Π£ нас большС инструмСнтов для диагностики. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ сСбС ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ большС всСго тяТСлого, Ρ‡Ρ‚ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π° самолСт Π² Π²ΠΎΠ·Π΄ΡƒΡ…Π΅. Π’ΠΎ ΠΆΠ΅ самоС ΠΈ с Postgres. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ запросов Π²ΠΎ врСмя экспСримСнтов. И ΠΌΡ‹ этого Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π° production. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΡ‹ Π΄Π°ΠΆΠ΅ сдСлаСм это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ auto_explain Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ»Π°Π½Π°Ρ….

Как я ΡƒΠΆΠ΅ сказал, высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠ»ΠΈ. Π’Π°ΠΊ это ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ экспСримСнтов Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅.

Nancy CLI – это основа Β«Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΈ Π‘Π”Β»

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

И Π²ΠΎΡ‚, ΠΌΡ‹ создали Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Π’ΠΎ Π΅ΡΡ‚ΡŒ, я рассказывал ΠΎΠ± этих идСях Π΅Ρ‰Π΅ Π² июнС, ΠΏΠΎΡ‡Ρ‚ΠΈ Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄. Π£ нас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π² Open Source Ρ‚Π°ΠΊ называСмая Nancy CLI. Π­Ρ‚ΠΎ основа для создания Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Nancy β€” Π­Ρ‚ΠΎ Π² Open Source, Π½Π° Gitlab. ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ. Π― оставил ссылку Π² слайдах. На Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΈ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Ρ‚ΡƒΠ΄Π°. help ΠΏΠΎ всСм ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΅Ρ‰Π΅ находится Π² стадии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅ΠΉ. Но это ΡƒΠΆΠ΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ примСняСм практичСски Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ. И ΠΊΠΎΠ³Π΄Π° Ρƒ нас Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ идСя – Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ 40 000 000 строк, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ упираСмся Π² IO, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ провСсти экспСримСнт ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ происходит ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ это Π½Π° Ρ…ΠΎΠ΄Ρƒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΌΡ‹ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌ экспСримСнт. НапримСр, ΠΌΡ‹ вносим измСнСния ΠΈ смотрим, Ρ‡Ρ‚ΠΎ Π² ΠΈΡ‚ΠΎΠ³Π΅ получаСтся. И это Π½Π΅ Π½Π° production. Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ ΡΡƒΡ‚ΡŒ ΠΈΠ΄Π΅ΠΈ.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Π“Π΄Π΅ это ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ? Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ локально, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ это Π΄Π΅Π»Π°Ρ‚ΡŒ Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ, Π΄Π°ΠΆΠ΅ Π½Π° MacBook. НуТСн Docker, ΠΏΠΎΠ΅Ρ…Π°Π»ΠΈ. И всё. МоТно Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ инстансС Π½Π° ΠΆΠ΅Π»Π΅Π·ΠΊΠ΅ ΠΈΠ»ΠΈ Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ΅, Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ.

Π‘ΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° дистанционно стартиранС Π² Amazon Π² EC2 Instance, Π² спот ΠΏΠ»Π°Π½ΠΎΠ²Π΅Ρ‚Π΅. Π’ΠΎΠ²Π° Π΅ наистина страхотна Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚. НапримСр, Π²Ρ‡Π΅Ρ€Π° ΠΏΡ€ΠΎΠ²Π΅Π΄ΠΎΡ…ΠΌΠ΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 500 СкспСримСнти Π½Π° i3 instance, Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΉΠΊΠΈ ΠΎΡ‚ Π½Π°ΠΉ-младшия Π΄ΠΎ i3-16-xlarge. И Π·Π° 500 СкспСримСнта ΠΈΠ·Ρ€Π°Π·Ρ…ΠΎΠ΄Π²Π°Ρ…ΠΌΠ΅ 64 Π΄ΠΎΠ»Π°Ρ€Π°. ВсСки СкспСримСнт Ρ‚Ρ€Π°Π΅ΡˆΠ΅ 15 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ. ВоСст, Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° спот ΠΏΠ»Π°Π½ΠΎΠ²Π΅Ρ‚Π΅, Ρ‚ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΅Π²Ρ‚ΠΈΠ½ΠΎ – 70% ΠΎΡ‚ΡΡ‚ΡŠΠΏΠΊΠ°, таксуванС Π½Π° Amazon Π½Π° сСкунда. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°Ρ‚Π΅ истински изслСдвания.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ сС Ρ‚Ρ€ΠΈ основни вСрсии Π½Π° Postgres. НС Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° слоТно Π΄Π° сС Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π°Ρ‚ някои стари ΠΈ Π½ΠΎΠ²Π°Ρ‚Π° 12-Π° вСрсия ΡΡŠΡ‰ΠΎ.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

МоТСм Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΠΌ ΠΎΠ±Π΅ΠΊΡ‚ ΠΏΠΎ Ρ‚Ρ€ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°. Π’ΠΎΠ²Π° са:

  • Dump/sql Ρ„Π°ΠΉΠ».
  • ΠžΡΠ½ΠΎΠ²Π½ΠΈΡΡ‚ Π½Π°Ρ‡ΠΈΠ½ Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° дирСкторията PGDATA. ОбикновСно сС Π²Π·ΠΈΠΌΠ° ΠΎΡ‚ бСкъп ΡΡŠΡ€Π²ΡŠΡ€Π°. Ако ΠΈΠΌΠ°Ρ‚Π΅ Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΈ Π±ΠΈΠ½Π°Ρ€Π½ΠΈ бСкъпи, ΠΎΡ‚Ρ‚Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅. Ако Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Ρ‚Π΅ с ΠΎΠ±Π»Π°Ρ†ΠΈ, Ρ‚ΠΎ ΠΎΠ±Π»Π°Ρ‡Π½Π°Ρ‚Π° компания, ΠΊΠ°Ρ‚ΠΎ Amazon ΠΈ Google, Ρ‰Π΅ сС ΠΏΠΎΠ³Ρ€ΠΈΠΆΠΈ Π·Π° Ρ‚ΠΎΠ²Π°. Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-основният Π½Π°Ρ‡ΠΈΠ½ Π·Π° ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π΅Π°Π»Π΅Π½ production. ИмСнно ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ Ρ€Π°Π·Π²ΠΈΠ²Π°ΠΌΠ΅.
  • ΠŸΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ‚ Π½Π°Ρ‡ΠΈΠ½ Π΅ подходящ Π·Π° изслСдвания, ΠΊΠΎΠ³Π°Ρ‚ΠΎ искатС Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π΅Ρ‰ΠΎ Π² Postgres. Π’ΠΎΠ²Π° Π΅ pgbench. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚Π΅ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° pgbench. Π’ΠΎΠ²Π° Π΅ просто Π΅Π΄Π½Π° опция β€ždb-pgbenchβ€œ. ΠšΠ°Π·Π²Π°Ρ‚Π΅ ΠΌΡƒ какъв ΠΌΠ°Ρ‰Π°Π±. И всичко Ρ‰Π΅ бъдС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΎ Π² ΠΎΠ±Π»Π°ΠΊΠ°, ΠΊΠ°ΠΊΡ‚ΠΎ Π΅ посочСно.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

И Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ:

  • МоТСм Π΄Π° изпълнявамС Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π² Π΅Π΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ SQL. Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-примитивният Π½Π°Ρ‡ΠΈΠ½.
  • Но ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° симулирамС Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅. И ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΎ Π΅ΠΌΡƒΠ»ΠΈΡ€Π°ΠΌΠ΅ ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½. НуТдаСм сС ΠΎΡ‚ ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° всички Π»ΠΎΠ³ΠΎΠ²Π΅. И Ρ‚ΠΎΠ²Π° Π΅ Π±ΠΎΠ»Π΅Π·Π½Π΅Π½ΠΎ. Π©Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ° Π·Π°Ρ‰ΠΎ. И с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° pgreplay, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Π²Π³Ρ€Π°Π΄Π΅Π½ Π² Nancy, Π³ΠΎ Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°ΠΌΠ΅.
  • Или Π΄Ρ€ΡƒΠ³ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Π’Π°ΠΊΠ° Π½Π°Ρ€Π΅Ρ‡Π΅Π½ΠΎΡ‚ΠΎ ΠΊΡ€Π°Ρ„Ρ‚ΠΎΠ²ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠΌ с извСстни усилия. Анализирайки Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ Π½ΠΈ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π½Π° производствСната систСма, ΠΈΠ·Π²Π°ΠΆΠ΄Π°ΠΌΠ΅ Π²ΠΎΠ΄Π΅Ρ‰ΠΈΡ‚Π΅ Π³Ρ€ΡƒΠΏΠΈ заявки. И с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° pgbench ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π΅ΠΌΡƒΠ»ΠΈΡ€Π°ΠΌΠ΅ Ρ‚ΠΎΠ²Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π² лаборатория.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

  • Или ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° изпълним някакъв SQL, Ρ‚.Π΅. провСрявамС миграция, създавамС индСкс, изпълнявамС ANALYZE. И Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Π±ΠΈΠ»ΠΎ ΠΏΡ€Π΅Π΄ΠΈ Π²Π°ΠΊΡƒΡƒΠΌΠ° ΠΈ слСд Π²Π°ΠΊΡƒΡƒΠΌΠ°. Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚, всСки SQL.
  • Или промСнямС Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π² конфигурацията. МоТСм Π΄Π° поискамС Π΄Π° провСрят, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 100 стойности Π² Amazon Π·Π° Π½Π°ΡˆΠ°Ρ‚Π° Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚Π½Π° Π±Π°Π·Π°. И слСд няколко часа Ρ‰Π΅ ΠΈΠΌΠ°Ρ‚Π΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚. ОбикновСно, Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚Π½Π°Ρ‚Π° Π±Π°Π·Π° Ρ‰Π΅ сС Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π° Π·Π° няколко часа. Но Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° ΠΈΠΌΠ° ΠΏΠ°Ρ‡, ΠΏΡ€ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ Π΅ възмоТна сСрия, Ρ‚.Π΅. ΠΌΠΎΠΆΠ΅Ρ‚Π΅ послСдоватСлно Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ ΡΡŠΡ€Π²ΡŠΡ€ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΡΡŠΡ‰Π°Ρ‚Π° pgdata ΠΈ Π΄Π° ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. Postgres Ρ‰Π΅ сС рСстартира, ΠΊΠ΅ΡˆΠΎΠ²Π΅Ρ‚Π΅ Ρ‰Π΅ сС Π½ΡƒΠ»ΠΈΡ€Π°Ρ‚. И ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°Π»ΠΈΠ²Π°Ρ‚Π΅ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

  • ΠŸΠΎΡΡ‚ΡŠΠΏΠ²Π° дирСктория, Π² която ΠΈΠΌΠ° ΠΊΡƒΠΏΡ‡ΠΈΠ½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΉΠΊΠΈ ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π½ΠΈ снимки pgstat***. И Ρ‚Π°ΠΌ Π½Π°ΠΉ-интСрСсното – Ρ‚ΠΎΠ²Π° са pg_stat_statements, pg_stat_cache. Π’ΠΎΠ²Π° са Π΄Π²Π΅ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΠΊΠΎΠΈΡ‚ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ заявкитС. И pg_stat_bgwriter Π²ΠΊΠ»ΡŽΡ‡Π²Π° Π½Π΅ само статистика pgwriter, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΈ информация Π·Π° Ρ‡Π΅ΠΊΠΏΠΎΠΉΠ½Ρ‚ΠΈΡ‚Π΅ ΠΈ Π·Π° Π½Π°Ρ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ самитС Π±Π΅ΠΊΠ΅Π½Π΄ΠΈ ΠΈΠ·Ρ…Π²ΡŠΡ€Π»ΡΡ‚ ΠΌΡ€ΡŠΡΠ½ΠΈ Π±ΡƒΡ„Π΅Ρ€ΠΈ. И Π΅ ΠΌΠ½ΠΎΠ³ΠΎ интСрСсно Π΄Π° сС Π²ΠΈΠ΄ΠΈ всичко Ρ‚ΠΎΠ²Π°. НапримСр, ΠΊΠΎΠ³Π°Ρ‚ΠΎ настройвамС shared_buffers, Π΅ ΠΌΠ½ΠΎΠ³ΠΎ интСрСсно Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠΎΠ»ΠΊΠΎ ΠΎΡ‚ тях някой Π΅ ΠΈΠ·Ρ…Π²ΡŠΡ€Π»ΠΈΠ».
  • ΠŸΠΎΡΡ‚ΡŠΠΏΠ²Π°Ρ‚ ΡΡŠΡ‰ΠΎ ΠΈ Π»ΠΎΠ³ΠΎΠ²Π΅ ΠΎΡ‚ Postgres. Π”Π²Π° Π»ΠΎΠ³Π° – Π»ΠΎΠ³ Π·Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈ Π»ΠΎΠ³ Π·Π° изпълнСниС Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅.
  • ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»Π½ΠΎ Π½ΠΎΠ²Π° функция – FlameGraphs.
  • Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ°, Π°ΠΊΠΎ стС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»ΠΈ pgreplay ΠΈΠ»ΠΈ pgbench Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΈ Π·Π° изпълнСниС Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅, Ρ‰Π΅ ΠΈΠΌΠ°Ρ‚Π΅ оригиналния ΠΈΠΌ ΠΈΠ·Ρ…ΠΎΠ΄. И ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ латСнтността ΠΈ TPS. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ Ρ‚Π΅ са Π³ΠΎ Π²ΠΈΠΆΠ΄Π°Π»ΠΈ.
  • Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ Π·Π° систСмата.
  • Основни ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° CPU ΠΈ IO. Π’ΠΎΠ²Π° Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π·Π° EC2 инстанции Π² Amazon, ΠΊΠΎΠ³Π°Ρ‚ΠΎ искатС Π΄Π° задСйстватС 100 ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΈ инстанции ΠΈ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ 100 Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ³ΠΎΠ½ΠΎΠ²Π΅, Ρ‰Π΅ ΠΈΠΌΠ°Ρ‚Π΅ 10 000 СкспСримСнта. И трябва Π΄Π° сС ΡƒΠ²Π΅Ρ€ΠΈΡ‚Π΅, Ρ‡Π΅ Π½Π΅ стС ΠΏΠΎΠΏΠ°Π΄Π½Π°Π»ΠΈ Π½Π° ΠΏΠΎΠ²Ρ€Π΅Π΄Π΅Π½Π° инстанция, която Π²Π΅Ρ‡Π΅ някой притСснява. На Ρ‚Π°Π·ΠΈ машина Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈΡ€ΡƒΡˆΠ°Ρ‚ ΠΈ остават ΠΌΠ°Π»ΠΊΠΎ рСсурси Π·Π° вас. Π’Π°ΠΊΠΈΠ²Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ Π΅ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ Π΄Π° Π³ΠΈ ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»ΠΈΡ‚Π΅. ИмСнно с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° sysbench ΠΎΡ‚ АлСксСй ΠšΠΎΠΏΠΈΡ‚ΠΎΠ² ΠΏΡ€Π°Π²ΠΈΠΌ няколко ΠΊΡ€Π°Ρ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ ΠΏΠΎΡΡ‚ΡŠΠΏΡΡ‚ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сравнитС с Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅, Ρ‚.Π΅. Ρ‰Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ сС Π΄ΡŠΡ€ΠΆΠΈ CPU ΠΈ ΠΊΠ°ΠΊ IO.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Какви тСхничСски слоТности ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ?

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Π”Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Π΅ искамС Π΄Π° повтарямС Ρ€Π΅Π°Π»Π½ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅. ЧудСсна идСя, Π°ΠΊΠΎ Ρ‚ΠΎΠ²Π° Π΅ написано Π½Π° Open Source pgreplay. НиС Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅. Но, Π·Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π΄ΠΎΠ±Ρ€Π΅, трябва Π΄Π° Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ пълно Π»ΠΎΠ³ΠΈΡ€Π°Π½Π΅ Π½Π° заявкитС с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ ΠΌΠ°Ρ€ΠΊΠΈ.

Има някои услоТнСния относно duration ΠΈ timestamp. Π©Π΅ пропуснСм цялата Ρ‚Π°Π·ΠΈ кухня. ΠžΡΠ½ΠΎΠ²Π½ΠΈΡΡ‚ Π²ΡŠΠΏΡ€ΠΎΡ Π΅ – ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π΄Π° си Π³ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅?

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

https://gist.github.com/NikolayS/08d9b7b4845371d03e195a8d8df43408

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎ. Врябва ΠΏΡŠΡ€Π²ΠΎ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ какъв ΠΏΠΎΡ‚ΠΎΠΊ Ρ‰Π΅ сС записва Π² Π»ΠΎΠ³Π°. Ако ΠΈΠΌΠ°Ρ‚Π΅ pg_stat_statements, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠΎΠ»ΠΊΠΎ Π±Π°ΠΉΡ‚Π° ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ‰Π΅ сС записват Π² сСкунда с Ρ‚ΠΎΠ·ΠΈ Π·Π°ΠΏΠΈΡ‚ (Π»ΠΈΠ½ΠΊΡŠΡ‚ Ρ‰Π΅ бъдС Π½Π°Π»ΠΈΡ‡Π΅Π½ Π² слайдовСтС).

НиС наблюдавамС Π΄ΡŠΠ»ΠΆΠΈΠ½Π°Ρ‚Π° Π½Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ. ΠŸΡ€Π΅Π½Π΅Π±Ρ€Π΅Π³Π²Π°ΠΌΠ΅ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ Ρ‚Π°ΠΌ няма ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ, Π½ΠΎ Π·Π½Π°Π΅ΠΌ Π΄ΡŠΠ»ΠΆΠΈΠ½Π°Ρ‚Π° Π½Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈ Π·Π½Π°Π΅ΠΌ ΠΊΠΎΠ»ΠΊΠΎ чСсто Ρ‚ΠΎ сС изпълнява Π² сСкунда. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡ€Π΅Ρ†Π΅Π½ΠΈΠΌ ΠΊΠΎΠ»ΠΊΠΎ Π±Π°ΠΉΡ‚Π° ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ Π² сСкунда. МоТСм Π΄Π° Π³Ρ€Π΅ΡˆΠΈΠΌ Π΄Π²Π° ΠΏΡŠΡ‚ΠΈ, Π½ΠΎ ΠΏΠΎΡ€ΡΠ΄ΡŠΠΊΡŠΡ‚ Ρ‰Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½.

МоТСм Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ сС изпълнява 802 ΠΏΡŠΡ‚ΠΈ Π² сСкунда. И Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ bytes_per sec – 300 kB/s Ρ‰Π΅ сС записват плюс-минус. И, ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° си ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠΌ Ρ‚Π°ΠΊΡŠΠ² ΠΏΠΎΡ‚ΠΎΠΊ.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Но! Π€Π°ΠΊΡ‚ Π΅, Ρ‡Π΅ ΠΈΠΌΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ систСми Π·Π° Π»ΠΎΠ³ΠΈΡ€Π°Π½Π΅. И ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Ρ…ΠΎΡ€Π°Ρ‚Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠΌΠ°Ρ‚ β€žsyslogβ€œ.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

И Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ syslog, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½. Π©Π΅ Π²Π·Π΅ΠΌΠ΅ΠΌ pgbench, Ρ‰Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Π»ΠΎΠ³ΠΈΡ€Π°Π½Π΅ Π½Π° запитванията ΠΈ Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ сС ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Π‘Π΅Π· Π»ΠΎΠ³ΠΈΡ€Π°Π½Π΅ – Ρ‚ΠΎΠ²Π° Π΅ ΠΊΠΎΠ»ΠΎΠ½Π°Ρ‚Π° отляво. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ 161 000 TPS. Π‘ syslog – Π² Ubuntu 16.04 Π² Амазон ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ 37 000 TPS. А Π°ΠΊΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠΌ Π½Π° Π΄Π²Π° Π΄Ρ€ΡƒΠ³ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π° Π»ΠΎΠ³ΠΈΡ€Π°Π½Π΅, ситуацията Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π°. Π’.Π΅. ΠΎΡ‡Π°ΠΊΠ²Π°Ρ…ΠΌΠ΅, Ρ‡Π΅ Ρ‰Π΅ ΠΏΠ°Π΄Π½Π΅, Π½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π°.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

А Π½Π° CentOS 7, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° journald участва, ΠΏΡ€Π΅Π²Ρ€ΡŠΡ‰Π°ΠΉΠΊΠΈ Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ Π² Π±ΠΈΠ½Π°Ρ€Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π·Π° ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ ΠΈ Ρ‚.Π½., Ρ‚ΠΎ Ρ‚Π°ΠΌ Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΎ уТасно, ΡΡŠΡ‰ΠΎ Π΄ΠΎ 44 ΠΏΡŠΡ‚ΠΈ спад Π½Π° TPS.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

И Ρ‚ΠΎΠ²Π° Π΅ Π½Π΅Ρ‰ΠΎΡ‚ΠΎ, с ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ…ΠΎΡ€Π°Ρ‚Π° ТивСят. И чСсто Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡ‚Π΅, особСно Π² Π³ΠΎΠ»Π΅ΠΌΠΈΡ‚Π΅, Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ. Ако ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС ΠΎΡ‚ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ syslog, моля, Π½Π°ΠΏΡ€Π°Π²Π΅Ρ‚Π΅ Π³ΠΎ.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

  • ΠžΡ†Π΅Π½Π΅Ρ‚Π΅ IOPS ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π½Π° запис.
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ систСмата си Π·Π° Π»ΠΎΠ³ΠΈΡ€Π°Π½Π΅.
  • Ако ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€Π°Π½ΠΎΡ‚ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π΅ ΠΏΡ€Π΅ΠΊΠΎΠΌΠ΅Ρ€Π½ΠΎ голямо, обмислСтС опция Π·Π° сэмплиранС.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

ИмамС pg_stat_statements. ΠšΠ°ΠΊΡ‚ΠΎ ΠΊΠ°Π·Π°Ρ…, Ρ‚ΠΎΠΉ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ трябва Π΄Π° бъдС Π½Π°Π»ΠΈΡ‡Π΅Π½. МоТСм Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ ΠΈ Π΄Π° опишСм всяка Π³Ρ€ΡƒΠΏΠ° ΠΎΡ‚ запитвания ΠΏΠΎ спСциалСн Π½Π°Ρ‡ΠΈΠ½ Π² Ρ„Π°ΠΉΠ». И послС ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π° функция Π² pgbench – Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° ΠΏΠΎΠ΄Π°Π΄Π΅ΠΌ няколко Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ с опцията β€ž-fβ€œ.

Π’ΠΎΠΉ Ρ€Π°Π·Π±ΠΈΡ€Π° ΠΌΠ½ΠΎΠ³ΠΎ Π² Β«-fΒ». И ΠΌΠΎΠΆΠ΅ Π΄Π° сС посочи с Β«@Β» Π² края, ΠΊΠ°ΠΊΠ²Π° част ΠΎΡ‚ всСки Ρ„Π°ΠΉΠ» трябва Π΄Π° бъдС. Π’.Π΅. ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° изпълнявай Π² 10 % ΠΎΡ‚ случаитС, Π° Ρ‚ΠΎΠ²Π° Π² 20 %. И Ρ‚ΠΎΠ²Π° Ρ‰Π΅ Π½ΠΈ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠΈ Π΄ΠΎ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π½Π° production.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

А ΠΊΠ°ΠΊ Ρ‰Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π½Π° production? Каква част ΠΈ ΠΎΡ‚ ΠΊΠ°ΠΊΠ²ΠΎ? Π’ΡƒΠΊ ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅. ИмамС ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ postgres-checkup. Π‘ΡŠΡ‰ΠΎ Π±Π°Π·Π°Ρ‚Π° Π΅ Π² Open Source. И Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π³ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°ΠΌΠ΅.

Π’ΠΎΠΉ сС появи ΠΏΠΎ ΠΌΠ°Π»ΠΊΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ. По ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, Ρ‡Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΡŠΡ‚ Π΅ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π΅Π½. Π’.Π΅. ΠΈΠ΄Π²Π°Ρ‚Π΅, Π³Π»Π΅Π΄Π°Ρ‚Π΅ Π±Π°Π·Π°Ρ‚Π°, Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚. И, ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ health_check. Ако стС ΠΎΠΏΠΈΡ‚Π΅Π½ DBA, ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ health_check. Π“Π»Π΅Π΄Π°Ρ‚Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° индСкситС ΠΈ Ρ‚.Π½. Ако ΠΈΠΌΠ°Ρ‚Π΅ OKmeter, чудСсно. Π’ΠΎΠ²Π° Π΅ страхотСн ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π·Π° Postgres. OKmeter.io – моля, инсталирайтС Π³ΠΎ, ΠΌΠ½ΠΎΠ³ΠΎ Π΅ Π΄ΠΎΠ±Ρ€Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ. ΠŸΠ»Π°Ρ‚Π΅Π½ Π΅.

Ако няматС Ρ‚Π°ΠΊΡŠΠ², ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ няматС ΠΏΠΎΡ‡Ρ‚ΠΈ Π½ΠΈΡ‰ΠΎ. Π’ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠΌΠ° само CPU, IO ΠΈ Ρ‚ΠΎ с ΡƒΠ³ΠΎΠ²ΠΎΡ€ΠΊΠΈ, ΠΈ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π°. А Π½Π° нас Π½ΠΈ трябва ΠΏΠΎΠ²Π΅Ρ‡Π΅. Врябва Π΄Π° Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π°Π²Ρ‚ΠΎΠ²Π°ΠΊΡƒΡƒΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ checkpoint, Π² IO трябва Π΄Π° ΠΎΡ‚Π΄Π΅Π»ΠΈΠΌ checkpoint ΠΎΡ‚ bgwriter ΠΈ ΠΎΡ‚ Π±Π΅ΠΊΠ΅Π½Π΄ΠΈΡ‚Π΅ ΠΈ Ρ‚.Π½.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ помагаш Π½Π° някоя голяма компания, Ρ‚Π΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π±ΡŠΡ€Π·ΠΎ Π΄Π° внСдрят Π½Π΅Ρ‰ΠΎ. НС ΠΌΠΎΠ³Π°Ρ‚ Π±ΡŠΡ€Π·ΠΎ Π΄Π° купят OKmeter. МоТС Π±ΠΈ слСд ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ Π³ΠΎΠ΄ΠΈΠ½Π° Ρ‰Π΅ Π³ΠΎ купят. НС ΠΌΠΎΠ³Π°Ρ‚ Π±ΡŠΡ€Π·ΠΎ Π΄Π° инсталират някакви ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ.

И Π½ΠΈ Π΄ΠΎΠΉΠ΄Π΅ идСята, Ρ‡Π΅ Π½ΠΈ Π΅ Π½ΡƒΠΆΠ΅Π½ спСциалСн инструмСнт, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ изисква Π½ΠΈΡ‰ΠΎ Π·Π° инсталация, Ρ‚.Π΅. Π²ΠΈΠ΅ ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π½Π΅ трябва Π΄Π° инсталиратС Π½ΠΈΡ‰ΠΎ Π½Π° production. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Ρ‚Π΅ Π³ΠΎ Π½Π° Π»Π°ΠΏΡ‚ΠΎΠΏΠ° си ΠΈΠ»ΠΈ Π½Π° Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»Π΅Π½ ΡΡŠΡ€Π²ΡŠΡ€, ΠΎΡ‚ ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ Π³ΠΎ стартиратС. И Ρ‚ΠΎΠΉ Ρ‰Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° мноТСство Π½Π΅Ρ‰Π°: ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма, ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма, ΠΈ самия Postgres, ΠΏΡ€Π°Π²Π΅ΠΉΠΊΠΈ някои Π»Π΅ΠΊΠΈ запитвания, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π½Π° production ΠΈ Π½ΠΈΡ‰ΠΎ няма Π΄Π° сС сринС.

НазовахмС Π³ΠΎ Postgres-checkup. Ако Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ мСдицински, Ρ‚ΠΎΠ²Π° Π΅ Ρ€Π΅Π΄ΠΎΠ²Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° здравословното ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅. Ако Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π² Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π½Π° Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°, Ρ‚ΠΎΠ²Π° Π΅ ΠΊΠ°Ρ‚ΠΎ тСхничСски ΠΏΡ€Π΅Π³Π»Π΅Π΄. ΠŸΡ€Π°Π²ΠΈΡ‚Π΅ тСхничСски ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° ΠΊΠΎΠ»Π°Ρ‚Π° си Π½Π° всСки ΡˆΠ΅ΡΡ‚ мСсСца ΠΈΠ»ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π°, Π² зависимост ΠΎΡ‚ ΠΌΠ°Ρ€ΠΊΠ°Ρ‚Π°. А ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π»ΠΈ тСхничСски ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π±Π°Π·Π°Ρ‚Π° си? Π’.Π΅. ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π»ΠΈ Π΄ΡŠΠ»Π±ΠΎΡ‡ΠΈΠ½Π½ΠΎ изслСдванС Ρ€Π΅Π΄ΠΎΠ²Π½ΠΎ? Врябва Π΄Π° Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΡ‚Π΅. Ако ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈ копия, ΠΏΡ€Π°Π²Π΅Ρ‚Π΅ ΠΈ checkup, Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π²Π°ΠΆΠ½ΠΎ.

И ΠΈΠΌΠ°ΠΌΠ΅ Ρ‚Π°ΠΊΡŠΠ² инструмСнт. Π’ΠΎΠΉ Π·Π°ΠΏΠΎΡ‡Π½Π° Π΄Π° сС Ρ€Π°Π·Π²ΠΈΠ²Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΈ само Ρ‚Ρ€ΠΈ мСсСца. ΠžΡ‰Π΅ Π΅ ΠΌΠ»Π°Π΄, Π½ΠΎ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Ρ‰Π°.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Π‘ΡŠΠ±ΠΈΡ€Π°ΠΌΠ΅ Π½Π°ΠΉ-влиятСлнитС Π³Ρ€ΡƒΠΏΠΈ заявки – ΠΎΡ‚Ρ‡Π΅Ρ‚ К003 Π² Postgres-checkup

И Ρ‚Π°ΠΌ ΠΈΠΌΠ° Π³Ρ€ΡƒΠΏΠ° ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈ К. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΈΠΌΠ° Ρ‚Ρ€ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚Π°. И ΠΈΠΌΠ° Ρ‚Π°ΠΊΡŠΠ² ΠΎΡ‚Ρ‡Π΅Ρ‚ К003. Π’Π°ΠΌ Π΅ "Π²ΡŠΡ€Ρ…ΡŠΡ‚" ΠΎΡ‚ pg_stat_statements, сортиран ΠΏΠΎ total_time.

ΠšΠΎΠ³Π°Ρ‚ΠΎ сортирамС ΠΏΠΎ total_time Π³Ρ€ΡƒΠΏΠΈΡ‚Π΅ заявки, Π½Π° Π²ΡŠΡ€Ρ…Π° Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Ρ‚Π°ΠΊΠ°Π²Π° Π³Ρ€ΡƒΠΏΠ°, която Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π° Π½Π°ΡˆΠ°Ρ‚Π° систСма Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ, Ρ‚.Π΅. потрСбява ΠΏΠΎ-голямо количСство рСсурси. Π—Π°Ρ‰ΠΎ Π½Π°Ρ€ΠΈΡ‡Π°ΠΌ Π³Ρ€ΡƒΠΏΠΈ заявки? Π—Π°Ρ‰ΠΎΡ‚ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ…ΠΌΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅. Π’ΠΎΠ²Π° Π²Π΅Ρ‡Π΅ Π½Π΅ са заявки, Π° Π³Ρ€ΡƒΠΏΠΈ заявки, Ρ‚.Π΅. Ρ‚Π΅ са абстрактни.

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

МоТС Π±ΠΈ Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡŠΡ€ Π½Π°Ρ‡ΠΈΠ½ Π² контСкста Π½Π° Π³Ρ€ΠΈΠΆΠ°Ρ‚Π° Π·Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ Ρ€Π΅Π΄ΠΊΠΈ, Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ досадни случаи, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ‡ΠΎΠ²Π΅ΠΊ Ρ‡Π°ΠΊΠ° 15 сСкунди. ΠžΠ±Ρ‰ΠΈΡΡ‚ Π±Ρ€ΠΎΠΉ Π½Π° Ρ‚Π΅Π·ΠΈ случаи Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° малък, Ρ‡Π΅ Π½Π΅ Π³ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Π½ΠΎ всС ΠΏΠ°ΠΊ сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΠΌΠ΅ с рСсурситС.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Какво сС случи Π² Ρ‚Π°Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°? НаправихмС Π΄Π²Π° снимки. Postgres_checkup Ρ‰Π΅ Π²ΠΈ Π½Π°ΠΏΡ€Π°Π²ΠΈ Π΄Π΅Π»Ρ‚Π° Π·Π° всяка ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°: ΠΏΠΎ total-time, calls, rows, shared_blks_read ΠΈ Ρ‚.Π½. И Ρ‚Π°ΠΊΠ°, Π΄Π΅Π»Ρ‚Π°Ρ‚Π° Π΅ изчислСна. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ с pg_stat_statements Π΅, Ρ‡Π΅ Ρ‚ΠΎΠΉ Π½Π΅ ΠΏΠΎΠΌΠ½ΠΈ ΠΊΠΎΠ³Π° Π΅ Π±ΠΈΠ» Π½ΡƒΠ»ΠΈΡ€Π°Π½. Ако pg_stat_database ΠΏΠΎΠΌΠ½ΠΈ, Ρ‚ΠΎ pg_stat_statements Π½Π΅ ΠΏΠΎΠΌΠ½ΠΈ. Π’ΠΈΠΆΠ΄Π°Ρ‚Π΅, Ρ‡Π΅ Ρ‚Π°ΠΌ ΠΈΠΌΠ° число ΠΎΡ‚ 1 000 000, Π° ΠΎΡ‚ΠΊΡŠΠ΄Π΅ смС Π³ΠΎ Π²Π·Π΅Π»ΠΈ, Π½Π΅ Π·Π½Π°Π΅ΠΌ.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

А Ρ‚ΡƒΠΊ Π·Π½Π°Π΅ΠΌ, Ρ‚ΡƒΠΊ ΠΈΠΌΠ°ΠΌΠ΅ Π΄Π²Π° снимки. Π—Π½Π°Π΅ΠΌ, Ρ‡Π΅ Π΄Π΅Π»Ρ‚Π°Ρ‚Π° Π² Ρ‚ΠΎΠ·ΠΈ случай Π΅ 56 сСкунди. Много малък ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π». Π‘ΠΎΡ€Ρ‚ΠΈΡ€Π°Π½ΠΎ ΠΏΠΎ total_time. И Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π΄ΠΈΡ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ€Π°ΠΌΠ΅, Ρ‚.Π΅. раздСлямС всички ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π½Π° duration. Ако Ρ€Π°Π·Π΄Π΅Π»ΠΈΠΌ всяка ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ° Π½Π° duration, Ρ‰Π΅ ΠΈΠΌΠ°ΠΌΠ΅ Π±Ρ€ΠΎΠΉ извиквания Π² сСкунда.

Π‘Π»Π΅Π΄Π²Π° total_time Π½Π° сСкунда – Ρ‚ΠΎΠ²Π° Π΅ моята любима ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°. Вя сС ΠΈΠ·ΠΌΠ΅Ρ€Π²Π° Π² сСкунди, Ρ‚.Π΅. ΠΊΠΎΠ»ΠΊΠΎ сСкунди Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° систСма Π·Π° изпълнСниС Π½Π° Ρ‚Π°Π·ΠΈ Π³Ρ€ΡƒΠΏΠ° заявки Π·Π° сСкунда. Ако Π²ΠΈΠΆΠ΄Π°Ρ‚Π΅ Ρ‚Π°ΠΌ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Π΅Π΄Π½Π° сСкунда Π½Π° сСкунда, Ρ‚ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΈΠΌΠ°Ρ‚Π΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Π΅Π΄Π½ΠΎ ядро. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Ρ€Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅, Ρ‡Π΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ Ρ‡ΠΎΠ²Π΅ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡƒ трябват ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ‚Ρ€ΠΈ ядра.

Π•Ρ‚ΠΎ Ρ‚ΠΎΠ²Π° Π΅ Π½Π°ΡˆΠ΅Ρ‚ΠΎ Π½ΠΎΡƒ-Ρ…Π°Ρƒ, Π½Π΅ съм срСщал Ρ‚Π°ΠΊΠΎΠ²Π° никъдС. ΠžΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ – Ρ‚ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ проста Π²Π΅Ρ‰ – сСкунда Π½Π° сСкунда. Понякога, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠΌΠ°Ρ‚Π΅ CPU Π½Π° 100 %, Ρ‚ΠΎ Ρ‚ΠΎΠ²Π° Π΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ час Π½Π° сСкунда, Ρ‚.Π΅. Π²ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ час стС сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°Π»ΠΈ само с Ρ‚Π΅Π·ΠΈ заявки.

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² сСкунда. Π—Π½Π°Π΅ΠΌ ΠΊΠΎΠ»ΠΊΠΎ Ρ€Π΅Π΄Π° Π² сСкунда Π΅ Π²ΡŠΡ€Π½Π°Π»Π°.

И слСд Ρ‚ΠΎΠ²Π° ΠΈΠΌΠ° Π½Π΅Ρ‰ΠΎ интСрСсно. Колко shared_buffers ΠΏΡ€ΠΎΡ‡Π΅Ρ‚ΠΎΡ…ΠΌΠ΅ Π² сСкунда ΠΎΡ‚ самитС shared_buffers. Π₯ΠΈΡ‚ΠΎΠ²Π΅Ρ‚Π΅ Π²Π΅Ρ‡Π΅ бяха Ρ‚Π°ΠΌ, Π° Ρ€Π΅Π΄ΠΎΠ²Π΅Ρ‚Π΅ Π²Π·Π΅Ρ…ΠΌΠ΅ ΠΎΡ‚ кСша Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма ΠΈΠ»ΠΈ ΠΎΡ‚ диска. ΠŸΡŠΡ€Π²ΠΈΡΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΅ Π±ΡŠΡ€Π·, Π° вторият ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π±ΡŠΡ€Π·, Π½ΠΎ ΠΌΠΎΠΆΠ΅ ΠΈ Π΄Π° Π½Π΅ Π΅, Π² зависимост ΠΎΡ‚ ситуацията.

И вторият Π½Π°Ρ‡ΠΈΠ½ Π½Π° Π΄ΠΈΡ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ€Π°Π½Π΅ – Π΄Π΅Π»ΠΈΠΌ броя Π½Π° заявкитС Π² Ρ‚Π°Π·ΠΈ Π³Ρ€ΡƒΠΏΠ°. Π’ΡŠΠ² Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° ΠΊΠΎΠ»ΠΎΠ½Π° Π²ΠΈΠ½Π°Π³ΠΈ Ρ‰Π΅ ΠΈΠΌΠ°Ρ‚Π΅ Π΅Π΄Π½Π° заявка Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° заявка. А слСд Ρ‚ΠΎΠ²Π° Π΅ интСрСсно – ΠΊΠΎΠ»ΠΊΠΎ милисСкунди бяха Π² Ρ‚Π°Π·ΠΈ заявка. Π—Π½Π°Π΅ΠΌ ΠΊΠ°ΠΊ сС Π΄ΡŠΡ€ΠΆΠΈ Ρ‚Π°Π·ΠΈ заявка Π² срСдно. 101 милисСкунда бСшС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π½Π° всяка заявка. Π’ΠΎΠ²Π° Π΅ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π΅Π½ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°, която Π½ΠΈ трябва Π·Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅.

Колко Ρ€Π΅Π΄ΠΎΠ²Π΅ срСдно всяка заявка Π΅ Π²ΡŠΡ€Π½Π°Π»Π°. Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ 8 Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΡŠΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ Π²Ρ€ΡŠΡ‰Π°. Колко срСдно ΠΎΡ‚ кСша Π΅ Π²Π·Π΅Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Π½ΠΎ. Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ всичко Π΅ ΠΊΠ΅ΡˆΠΈΡ€Π°Π½ΠΎ чудСсно. Бплошни Ρ…ΠΈΡ‚ΠΈ Π·Π° ΠΏΡŠΡ€Π²Π°Ρ‚Π° Π³Ρ€ΡƒΠΏΠ°.

Π§Π΅Ρ‚Π²ΡŠΡ€Ρ‚Π°Ρ‚Π° подстрока Π² всяка Ρ€Π΅Π΄ΠΈΡ†Π° – Ρ‚ΠΎΠ²Π° Π΅ ΠΊΠΎΠ»ΠΊΠΎ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π° ΠΎΡ‚ ΠΎΠ±Ρ‰ΠΎΡ‚ΠΎ количСство. ИмамС calls. Π”Π° ΠΊΠ°ΠΆΠ΅ΠΌ, 1 000 000. И ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ какъв Π΅ ΠΏΡ€ΠΈΠ½ΠΎΡΡŠΡ‚ Π½Π° Ρ‚Π°Π·ΠΈ Π³Ρ€ΡƒΠΏΠ°. Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ Π² Ρ‚ΠΎΠ·ΠΈ случай ΠΏΡŠΡ€Π²Π°Ρ‚Π° Π³Ρ€ΡƒΠΏΠ° внася принос ΠΏΠΎ-малък ΠΎΡ‚ 0,01 %. Π’.Π΅. тя Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° Π±Π°Π²Π½Π°, Ρ‡Π΅ Π½Π΅ я Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π² ΠΎΠ±Ρ‰Π°Ρ‚Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π°. А Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° Π³Ρ€ΡƒΠΏΠ° – 5 % ΠΎΡ‚ повикванията. Π’.Π΅. 5 % ΠΎΡ‚ всички повиквания – Ρ‚ΠΎΠ²Π° Π΅ Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° Π³Ρ€ΡƒΠΏΠ°.

По total_time ΡΡŠΡ‰ΠΎ Π΅ интСрСсно. На ΠΏΡŠΡ€Π²Π°Ρ‚Π° Π³Ρ€ΡƒΠΏΠ° заявки ΠΏΠΎΡ…Π°Ρ€Ρ‡ΠΈΡ…ΠΌΠ΅ 14 % ΠΎΡ‚ ΠΎΠ±Ρ‰ΠΎΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅. А Π½Π° Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° – 11 % ΠΈ Ρ‚.Π½.

Няма Π΄Π° Π²Π»ΠΈΠ·Π°ΠΌ Π² Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈ, Π½ΠΎ Ρ‚Π°ΠΌ ΠΈΠΌΠ° нюанси. ΠžΡ‚Π³ΠΎΡ€Π΅ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°ΠΌΠ΅ Π³Ρ€Π΅ΡˆΠΊΠ°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΊΠΎΠ³Π°Ρ‚ΠΎ сравнявамС, ΠΌΠΎΠΌΠ΅Π½Ρ‚Π½ΠΈΡ‚Π΅ снимки ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС размСстват, Ρ‚.Π΅. някои заявки ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΎΡ‚ΠΏΠ°Π΄Π½Π°Ρ‚, Π° Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° Π²Π΅Ρ‡Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π°, Π° някои Π½ΠΎΠ²ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС появят. И Ρ‚Π°ΠΌ изчислявамС Π³Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π°. Ако Π²ΠΈΠ΄ΠΈΡ‚Π΅ 0, Π·Π½Π°Ρ‡ΠΈ Π΅ Π΄ΠΎΠ±Ρ€Π΅. Няма Π³Ρ€Π΅ΡˆΠΊΠΈ. Ако показатСлят Π·Π° Π³Ρ€Π΅ΡˆΠΊΠ° Π΅ Π΄ΠΎ 20 %, Π΅ ОК.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° сС Π²Ρ€ΡŠΡ‰Π°ΠΌΠ΅ Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° Ρ‚Π΅ΠΌΠ°. Врябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π΅Π½ ΠΏΠΎΡ‚ΠΎΠΊ. Π’Π·Π΅ΠΌΠ°ΠΌΠ΅ ΠΎΡ‚Π³ΠΎΡ€Π΅ Π½Π°Π΄ΠΎΠ»Ρƒ, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π΅ Π½Π°Ρ‚Ρ€ΡƒΠΏΠ°ΠΌΠ΅ 80 % ΠΈΠ»ΠΈ 90 %. ОбикновСно Ρ‚ΠΎΠ²Π° са 10-20 Π³Ρ€ΡƒΠΏΠΈ. И ΠΏΡ€Π°Π²ΠΈΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° pgbench. Π’Π°ΠΌ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ random. Понякога, Π·Π° съТалСниС, Ρ‚ΠΎΠ²Π° Π½Π΅ сС ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°. И Π² Postgres 12 Ρ‰Π΅ ΠΈΠΌΠ° ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ‚Π°ΠΊΡŠΠ² ΠΏΠΎΠ΄Ρ…ΠΎΠ΄.

И ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ Ρ‚Π°ΠΊΠ° Π½Π°Π±ΠΈΡ€Π°ΠΌΠ΅ 80-90 % ΠΎΡ‚ total_time. Какво Π΄Π° слоТим слСд Β«@Β»? Π“Π»Π΅Π΄Π°ΠΌΠ΅ Π½Π° calls, Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΊΠΎΠ»ΠΊΠΎ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π° са ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅, Ρ‡Π΅ Ρ‚ΡƒΠΊ трябва Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°. ΠžΡ‚ Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡ€Π΅Ρ†Π΅Π½ΠΈΠΌ ΠΊΠ°ΠΊ Π΄Π° балансирамС всСки ΠΎΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ pgbench ΠΈ Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

ИмамС ΠΎΡ‰Π΅ К001 ΠΈ К002.

К001 – Ρ‚ΠΎΠ²Π° Π΅ Π΅Π΄Π½Π° голяма линия с Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ подстроки. Π’ΠΎΠ²Π° Π΅ характСристика Π½Π° цялото Π½ΠΈ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅. Π“Π»Π΅Π΄Π°ΠΉΡ‚Π΅ Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° ΠΊΠΎΠ»ΠΎΠ½Π° ΠΈ Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° подстрока. Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ Π΅ ΠΎΠΊΠΎΠ»ΠΎ Π΅Π΄Π½Π° ΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° сСкунди Π² сСкунда, Ρ‚.Π΅. Π°ΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π΄Π²Π° ядра, Ρ‰Π΅ бъдС Π΄ΠΎΠ±Ρ€Π΅. Π©Π΅ ΠΈΠΌΠ° ΠΎΠΊΠΎΠ»ΠΎ 75 % Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅. И Ρ‚Π°ΠΊΠ° Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ. Ако ΠΈΠΌΠ°ΠΌΠ΅ 10 ядра, Ρ‰Π΅ смС спокойни. Π’Π°ΠΊΠ° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡ†Π΅Π½ΠΈΠΌ рСсурситС.

К002 – Ρ‚ΠΎΠ²Π° Π½Π°Ρ€ΠΈΡ‡Π°ΠΌ класовС Π½Π° запитвания, Ρ‚.Π΅. SELECT, INSERT, UPDATE, DELETE. И ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ SELECT FOR UPDATE, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ‚ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡ€Π°.

И Ρ‚ΡƒΠΊ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΠΌ, Ρ‡Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ‚Π΅ SELECT запитвания са 82 % ΠΎΡ‚ всички извиквания, Π½ΠΎ ΠΏΡ€ΠΈ Ρ‚ΠΎΠ²Π° – 74 % ΠΎΡ‚ total_time. ВоСст, Ρ‚Π΅ сС ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ потрСбяват ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ рСсурси.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

И сС Π²Ρ€ΡŠΡ‰Π°ΠΌΠ΅ Π½Π° Π²ΡŠΠΏΡ€ΠΎΡΠ°: «Как Π΄Π° ΠΏΠΎΠ΄Π±Π΅Ρ€Π΅ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ shared_buffers?Β». Наблюдавам, Ρ‡Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ²Π΅ сС ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Ρ‚ Π½Π° идСята – Π½Π΅ΠΊΠ° Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²Π° Ρ‰Π΅ бъдС производитСлността, Ρ‚.Π΅. ΠΊΠ°ΠΊΠ²Π° Ρ‰Π΅ Π΅ скоростта Π½Π° пропусканС. Вя ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ сС ΠΈΠ·ΠΌΠ΅Ρ€Π²Π° Π² TPS ΠΈΠ»ΠΈ QPS.

И Π½ΠΈΠ΅ сС ΠΎΠΏΠΈΡ‚Π²Π°ΠΌΠ΅ Π΄Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅ΠΌ максимално количСство Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² сСкунда ΠΎΡ‚ ΠΌΠ°ΡˆΠΈΠ½Π°Ρ‚Π° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π½Π° Ρ‚ΡƒΠ½ΠΈΠ½Π³Π°. Π’ΡƒΠΊ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ 311 Π² сСкунда Π·Π° select.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Но Π½ΠΈΠΊΠΎΠΉ Π½Π΅ ΠΏΡŠΡ‚ΡƒΠ²Π° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Ρƒ Π΄ΠΎΠΌΠ° с ΠΊΠΎΠ»Π° Π½Π° максимална скорост. Π’ΠΎΠ²Π° Π΅ Π³Π»ΡƒΠΏΠ°Π²ΠΎ. Π‘ΡŠΡ‰ΠΎΡ‚ΠΎ Π²Π°ΠΆΠΈ ΠΈ Π·Π° Π±Π°Π·ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ. НС трябва Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ Π½Π° пълна скорост, Π° Π½ΠΈΠΊΠΎΠΉ Π½Π΅ Π³ΠΎ ΠΏΡ€Π°Π²ΠΈ. Никой Π½Π΅ ΠΆΠΈΠ²Π΅Π΅ Π² продукция, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ CPU-Ρ‚ΠΎ Π΅ Π½Π° 100 %. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π±ΠΈ, някой ΠΆΠΈΠ²Π΅Π΅, Π½ΠΎ Π½Π΅ Π΅ Π΄ΠΎΠ±Ρ€Π΅.

Π˜Π΄Π΅ΡΡ‚Π° Π΅, Ρ‡Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ Π½Π° ΠΎΠΊΠΎΠ»ΠΎ 20 % ΠΎΡ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅, Π·Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π½Π΅ Π½Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 50 %. И сС ΠΎΠΏΠΈΡ‚Π²Π°ΠΌΠ΅ Π΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π·Π° Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π½Π° ΠΏΡŠΡ€Π²ΠΎ място. ВоСст, трябва Π΄Π° Π²ΡŠΡ€Ρ‚ΠΈΠΌ Π½Π°ΡˆΠΈΡ‚Π΅ Ρ€ΡŠΡ‡ΠΊΠΈ Ρ‚Π°ΠΊΠ°, Ρ‡Π΅ Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ latency ΠΏΡ€ΠΈ условна 20%-ΠΎΠ²Π° скорост. Π’ΠΎΠ²Π° Π΅ идСята, която ΡΡŠΡ‰ΠΎ сС ΠΎΠΏΠΈΡ‚Π²Π°ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π² Π½Π°ΡˆΠΈΡ‚Π΅ СкспСримСнти.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

И накрая ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ:

  • ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°ΠΏΡ€Π°Π²Π΅Ρ‚Π΅ Database Lab.
  • По Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π½Π°ΠΏΡ€Π°Π²Π΅Ρ‚Π΅ ΠΏΠΎ ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠ°, Π·Π° Π΄Π° сС Ρ€Π°Π·Π²ΠΈΠ΅ Π·Π° извСстно Π²Ρ€Π΅ΠΌΠ΅ – ΠΏΠΎΠΈΠ³Ρ€Π°ΠΉΡ‚Π΅ ΠΈ избросСтС. Ако ΠΈΠΌΠ°Ρ‚Π΅ ΠΎΠ±Π»Π°Ρ†ΠΈ, Ρ‚ΠΎΠ²Π° Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‚.Π΅. ΠΈΠΌΠ°ΠΉΡ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ standing.
  • Π‘ΡŠΠ΄Π΅Ρ‚Π΅ Π»ΡŽΠ±ΠΎΠΏΠΈΡ‚Π½ΠΈ. И Π°ΠΊΠΎ Π½Π΅Ρ‰ΠΎ Π½Π΅ Π΅ Π½Π°Ρ€Π΅Π΄, провСрявайтС с СкспСримСнти ΠΊΠ°ΠΊ сС Π΄ΡŠΡ€ΠΆΠΈ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Nancy, Π·Π° Π΄Π° сС ΠΎΠ±ΡƒΡ‡Π°Π²Π°Ρ‚Π΅ ΠΈ провСряватС ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π±Π°Π·Π°Ρ‚Π°.
  • И Ρ†Π΅Π»Π΅Ρ‚Π΅ сС Π² ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° рСакция.
  • И Π½Π΅ сС страхувайтС ΠΎΡ‚ изходния ΠΊΠΎΠ΄ Π½Π° Postgres. ΠšΠΎΠ³Π°Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ с изходния ΠΊΠΎΠ΄, трябва Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅ английски. Π’Π°ΠΌ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈ, всичко Π΅ обяснСно.
  • И провСрявайтС Π·Π΄Ρ€Π°Π²Π΅Ρ‚ΠΎ Π½Π° Π±Π°Π·Π°Ρ‚Π° Ρ€Π΅Π΄ΠΎΠ²Π½ΠΎ, ΠΏΠΎΠ½Π΅ Π½Π° всСки Ρ‚Ρ€ΠΈ мСсСца Π½Π° Ρ€ΡŠΠΊΠ° ΠΈΠ»ΠΈ с Postgres-checkup.

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

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

Много благодаря! Много интСрСсна Ρ€Π°Π±ΠΎΡ‚Π°.

Π”Π²Π΅ Π½Π΅Ρ‰Π°.

Π”Π°, Π΄Π²Π΅ Π½Π΅Ρ‰Π°. ΠžΠ±Π°Ρ‡Π΅ Π½Π΅ съвсСм Ρ€Π°Π·Π±Ρ€Π°Ρ…. ΠšΠΎΠ³Π°Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с Nancy, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° настройвамС само Π΅Π΄ΠΈΠ½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ ΠΈΠ»ΠΈ цяла Π³Ρ€ΡƒΠΏΠ°?

ИмамС delta-config ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° настроитС ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ искатС навСднъТ. Но трябва Π΄Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚Π΅, Ρ‡Π΅ ΠΊΠΎΠ³Π°Ρ‚ΠΎ промСнятС ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Ρ‰Π°, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈ ΠΈΠ·Π²ΠΎΠ΄ΠΈ.

Π”Π°. Π—Π°Ρ‰ΠΎ ΠΏΠΈΡ‚Π°ΠΌ? Π—Π°Ρ‰ΠΎΡ‚ΠΎ Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°Ρ‚Π΅ СкспСримСнти, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠΌΠ°Ρ‚Π΅ само Π΅Π΄ΠΈΠ½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€. НастройватС Π³ΠΎ, Π³Π»Π΅Π΄Π°Ρ‚Π΅ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ, настройватС Π³ΠΎ. ПослС Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚Π΅ с слСдващия.

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

И ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ Π²ΡŠΠΏΡ€ΠΎΡ. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ Π΅ Π½ΠΎΠ², Ρ€Π°Π·Π²ΠΈΠ²Π° сС. Има Π»ΠΈ Π²Π΅Ρ‡Π΅ Π³ΠΎΡ‚ΠΎΠ²Π° докумСнтация, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описаниС?

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

ΠšΠΎΠ³Π°Ρ‚ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ лаборатория, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΎΠ±Ρ€Π°Ρ‚Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°. Π©Π΅ Π²ΠΈΠ΄ΠΈΠΌ. Благодаря!

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅! Благодаря Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! Видях, Ρ‡Π΅ ΠΈΠΌΠ° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Amazon. ΠŸΠ»Π°Π½ΠΈΡ€Π° Π»ΠΈ сС ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° GSP?

Π”ΠΎΠ±ΡŠΡ€ Π²ΡŠΠΏΡ€ΠΎΡ. Π—Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ ΠΏΠΎ Π½Π΅Π³ΠΎ. И Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π³ΠΎ Π·Π°ΠΌΡ€Π°Π·ΠΈΡ…ΠΌΠ΅, Π·Π°Ρ‰ΠΎΡ‚ΠΎ искамС Π΄Π° спСстявамС. Π’.Π΅. ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° run on localhost. ΠœΠΎΠΆΠ΅Ρ‚Π΅ сами Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ инстанция ΠΈ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ Π»ΠΎΠΊΠ°Π»Π½ΠΎ. ΠœΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠ° ΠΏΡ€Π°Π²ΠΈΠΌ. Π’ Getlab правя Ρ‚Π°ΠΊΠ°, Ρ‚Π°ΠΌ Π½Π° GSP. Но Π½Π΅ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ смисъл Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠ°Π²Π° оркСстрация, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Google няма Π΅Π²Ρ‚ΠΈΠ½ΠΈ спотовС. Има ??? инстанции, Π½ΠΎ Ρ‚Π΅ ΠΈΠΌΠ°Ρ‚ ограничСния. ΠŸΡŠΡ€Π²ΠΎ, Π²ΠΈΠ½Π°Π³ΠΈ ΠΈΠΌΠ°Ρ‚ само 70% ΠΎΡ‚ΡΡ‚ΡŠΠΏΠΊΠ° ΠΈ Ρ‚Π°ΠΌ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ³Ρ€Π°Π΅Ρ‚Π΅ с Ρ†Π΅Π½Π°Ρ‚Π°. Π‘ΠΏΠΎΡ‚ΠΎΠ²Π΅Ρ‚Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Ρ‚ Ρ†Π΅Π½Π°Ρ‚Π° с 5-10%, Π·Π° Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ вСроятността Π΄Π° Π²ΠΈ ΠΈΠ·Ρ…Π²ΡŠΡ€Π»ΡΡ‚. Π’.Π΅. спотовСтС спСстяват, Π½ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΎΡ‚Π½Π΅Ρ‚ΠΈ ΠΏΠΎ всяко Π²Ρ€Π΅ΠΌΠ΅. Ако поставятС Ρ†Π΅Π½Π°Ρ‚Π° ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-висока ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅, Ρ‰Π΅ Π±ΡŠΠ΄Π΅Ρ‚Π΅ ΠΏΠΎ-късно ΡƒΠ±ΠΈΡ‚ΠΈ. Google ΠΈΠΌΠ° съвсСм Ρ€Π°Π·Π»ΠΈΡ‡Π½Π° спСцифика. Има ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ лошо ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ - Ρ‚Π΅ ТивСят само 24 часа. А понякога искамС Π΄Π° ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°ΠΌΠ΅ СкспСримСнт Π·Π° 5 Π΄Π½ΠΈ. Но Ρ‚ΠΎΠ²Π° Π΅ възмоТно ΠΏΡ€ΠΈ спотовСтС, спотовСтС понякога ТивСят с мСсСци.

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅! Благодаря Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! Π‘ΠΏΠΎΠΌΠ΅Π½Π°Ρ…Ρ‚Π΅ Π·Π° checkup. Как изчисляватС Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ stat_statements?

Много Π΄ΠΎΠ±ΡŠΡ€ Π²ΡŠΠΏΡ€ΠΎΡ. Мога ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΈ Ρ€Π°Π·ΠΊΠ°ΠΆΠ°. Накратко - Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ сС Π΄Π²ΠΈΠΆΠΈ Π½Π°Π±ΠΎΡ€ΡŠΡ‚ ΠΎΡ‚ Π³Ρ€ΡƒΠΏΠΈ заявки: ΠΊΠΎΠ»ΠΊΠΎ са сС ΠΎΡ‚ΠΊΠ°Π·Π°Π»ΠΈ ΠΈ ΠΊΠΎΠ»ΠΊΠΎ Π½ΠΎΠ²ΠΈ са сС появили. И слСд Ρ‚ΠΎΠ²Π° Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ Π΄Π²Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ: total_time ΠΈ calls, Π·Π°Ρ‚ΠΎΠ²Π° ΠΈΠΌΠ° Π΄Π²Π΅ Π³Ρ€Π΅ΡˆΠΊΠΈ. И Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ какъв Π΅ ΠΏΡ€ΠΈΠ½ΠΎΡΡŠΡ‚ Π½Π° ΠΎΡ‚ΠΊΠ°Π·Π°Π»ΠΈΡ‚Π΅ сС Π³Ρ€ΡƒΠΏΠΈ. Има Π΄Π²Π΅ ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΏΠΈ: ΠΈΠ·Ρ‚Π΅ΠΊΠ»Π° ΠΈ Π²ΡŠΡ€Π½Π°Ρ‚Π°. Π“Π»Π΅Π΄Π°ΠΌΠ΅ какъв Π΅ тСхният принос Π² ΠΎΠ±Ρ‰Π°Ρ‚Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π°.

Но Π½Π΅ сС Π»ΠΈ страхуватС, Ρ‡Π΅ тя Ρ‚Π°ΠΌ Ρ‰Π΅ сС ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈ Π΄Π²Π°-Ρ‚Ρ€ΠΈ ΠΏΡŠΡ‚ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° създаванС Π½Π° ΡΠ½Π΅ΠΏΡˆΠΎΡ‚ΠΎΠ²Π΅Ρ‚Π΅?

Π’.Π΅. Ρ‚Π΅ сС рСгистрираха ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ?

НапримСр, Ρ‚Π°Π·ΠΈ заявка Π²Π΅Ρ‡Π΅ вСднъТ Π΅ Π±ΠΈΠ»Π° ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½Π°, слСд Ρ‚ΠΎΠ²Π° Π΅ дошла ΠΈ ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π΅ Π±ΠΈΠ»Π° ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½Π°, слСд Ρ‚ΠΎΠ²Π° ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π΅ дошла ΠΈ ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π΅ Π±ΠΈΠ»Π° ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½Π°. И Π²ΠΈΠ΅ Ρ‚ΡƒΠΊ Π½Π΅Ρ‰ΠΎ стС смСтнали, Π° къдС Π΅ всичко Ρ‚ΠΎΠ²Π°?

Π”ΠΎΠ±ΡŠΡ€ Π²ΡŠΠΏΡ€ΠΎΡ, трябва Π΄Π° сС ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅.

ΠŸΡ€Π°Π²ΠΈΡ… Π½Π΅Ρ‰ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ. Π Π°Π·Π±ΠΈΡ€Π° сС, ΠΏΠΎ-просто, Π½Π°ΠΏΡ€Π°Π²ΠΈΡ… Π³ΠΎ сам. Но ΠΌΠΈ сС Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° Π½ΡƒΠ»ΠΈΡ€Π°ΠΌ, Π΄Π° направя reset Π½Π° stat_statements ΠΈ Π΄Π° сС ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°ΠΌ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° ΡΠ½Π΅ΠΏΡˆΠΎΡ‚Π°, Ρ‡Π΅ Ρ‚Π°ΠΌ Π΅ ΠΏΠΎΠ΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ дял, Ρ‡Π΅ всС ΠΏΠ°ΠΊ Π½Π΅ Π΅ достигнало Π΄ΠΎ Ρ‚Π°Π²Π°Π½Π°, ΠΊΠΎΠ»ΠΊΠΎ stat_statements ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°Ρ‚Ρ€ΡƒΠΏΠ°. ΠžΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°ΠΌ сС, Ρ‡Π΅ Π½Π°ΠΉ-вСроятно Π½ΠΈΡ‰ΠΎ Π½Π΅ Π΅ Π±ΠΈΠ»ΠΎ ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½ΠΎ.

Π”Π°-Π΄Π°.

Но ΠΊΠ°ΠΊ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ Π½Π°Ρ‡ΠΈΠ½ Π΄Π° Π³ΠΎ направя достовСрно Π½Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌ.

Π—Π° съТалСниС, Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π΅ помня - ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π»ΠΈ Ρ‚Π°ΠΌ тСкста Π½Π° заявката ΠΈΠ»ΠΈ queryid с pg_stat_statements ΠΈ Π½Π° Π½Π΅Π³ΠΎ сС ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°ΠΌΠ΅. Ако сС ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°ΠΌΠ΅ Π½Π° queryid, Ρ‚ΠΎ ΠΏΠΎ идСя сравнявамС сравними Π½Π΅Ρ‰Π°.

НС, Ρ‚ΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·Ρ…Π²ΡŠΡ€Π»Π΅Π½ няколко ΠΏΡŠΡ‚ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ снимкитС ΠΈ Π΄Π° сС Π²ΡŠΡ€Π½Π΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ.

Бъс ΡΡŠΡ‰ΠΎΡ‚ΠΎ id?

Π”Π°.

Π©Π΅ ΠΏΡ€ΠΎΡƒΡ‡ΠΈΠΌ Ρ‚ΠΎΠ²Π°. Π”ΠΎΠ±ΡŠΡ€ Π²ΡŠΠΏΡ€ΠΎΡ. Врябва Π΄Π° сС изслСдва. Но засСга Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Π΅ ΠΈΠ»ΠΈ 0 сС записва...

Π’ΠΎΠ²Π°, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, Π΅ Ρ€ΡΠ΄ΡŠΠΊ случай, Π½ΠΎ бях ΡˆΠΎΠΊΠΈΡ€Π°Π½, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ€Π°Π·Π±Ρ€Π°Ρ…, Ρ‡Π΅ stat_statements ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·Ρ…Π²ΡŠΡ€Π»Π΅Π½.

Π’ Pg_stat_statements ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Ρ‰Π°. Π‘Ρ€Π΅Ρ‰Π°Π»ΠΈ смС сС с Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ Π°ΠΊΠΎ track_utility Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, Ρ‚ΠΎ Π½Π°Π±ΠΎΡ€ΠΈΡ‚Π΅ ΡΡŠΡ‰ΠΎ сС прослСдяват.

Π”Π°, Ρ€Π°Π·Π±ΠΈΡ€Π° сС.

И Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ java hibernate, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½, Ρ‚ΠΎΠ³Π°Π²Π° Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° сС Π±Π»ΠΎΠΊΠΈΡ€Π°. И ΠΊΠΎΠ³Π°Ρ‚ΠΎ спрСтС ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚Π΅ 50-100 Π³Ρ€ΡƒΠΏΠΈ. И Ρ‚Π°ΠΌ всичко Π΅ ΠΏΠΎ-ΠΈΠ»ΠΈ-ΠΌΠ΅Π½Π΅ стабилно. Π•Π΄ΠΈΠ½ ΠΎΡ‚ Π½Π°Ρ‡ΠΈΠ½ΠΈΡ‚Π΅ Π΄Π° сС справитС с Ρ‚ΠΎΠ²Π° Π΅ Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ pg_stat_statements.max.

Π”Π°, Π½ΠΎ трябва Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅ Π΄ΠΎΠΊΠΎΠ»ΠΊΠΎ. И трябва Π΄Π° Π³ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°Ρ‚Π΅. Аз Ρ‚Π°ΠΊΠ° ΠΈ правя. Π’.Π΅. ΠΈΠΌΠ°ΠΌ pg_stat_statements.max. И Π³Π»Π΅Π΄Π°ΠΌ, Ρ‡Π΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° снимката Π½Π΅ съм достигнал 70%. Π”ΠΎΠ±Ρ€Π΅, Π·Π½Π°Ρ‡ΠΈ Π½Π΅ смС Π·Π°Π³ΡƒΠ±ΠΈΠ»ΠΈ Π½ΠΈΡ‰ΠΎ. ΠŸΡ€Π°Π²ΠΈΠΌ reset ΠΈ ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π½Π°Ρ‚Ρ€ΡƒΠΏΠ²Π°ΠΌΠ΅. Ако Π² слСдващата снимка Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ 70, Ρ‚ΠΎΠ³Π°Π²Π° вСроятно ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π½Π΅ смС Π·Π°Π³ΡƒΠ±ΠΈΠ»ΠΈ Π½ΠΈΡ‰ΠΎ.

Π”Π°. По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ сСга Π΅ 5 000. И Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ тях Ρ‚ΠΎΠ²Π° Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ.

ОбикновСно – Π΄Π°.

Π’ΠΈΠ΄Π΅ΠΎ:

Π’ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄ΠΈ Π²ΠΈΠ΄Π΅ΠΎ

P.S. ΠžΡ‚ сСбС си добавям, Ρ‡Π΅ Π°ΠΊΠΎ Π² Postgres ΠΈΠΌΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ трябва Π΄Π° Π²Π»ΠΈΠ·Π°Ρ‚ Π² тСстовата срСда, ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²ΡŠΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΎΡ‚ PostgreSQL Анонимизатор. Π‘Ρ…Π΅ΠΌΠ°Ρ‚Π° Π΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ слСдната:

ΠŸΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към настройката Π½Π° PostgreSQL: СкспСримСнти с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

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

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