ΠŸΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ‚ΡŽΠ½ΠΈΠ½Π³Ρƒ 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 ΠΏΠΎΠΌΠΈΠΌΠΎ обСспСчСния создания instances, развСртывания бэкапов ΠΈ Ρ‚. Π΄., β€” это поиск ΡƒΠ·ΠΊΠΈΡ… мСст ΠΈ оптимизация ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ΠŸΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ‚ΡŽΠ½ΠΈΠ½Π³Ρƒ 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: экспСримСнты Π½Π°Π΄ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

НапримСр, ΠΌΡ‹ нашли ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. Π§Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ дСлаСтся? Если Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Ρ‚ΠΎ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ instance, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Если Π²Ρ‹ DBA, Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ staging. И ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½. И ΠΎΠ½ отстал Π½Π° ΠΏΠΎΠ»Π³ΠΎΠ΄Π°. И Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° production. И Π΄Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ DBA ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ ΠΏΠΎΡ‚ΠΎΠΌ Π½Π° production, Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ΅. И Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ индСкс, ΡƒΠ±Π΅ΠΆΠ΄Π°ΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚, Π΄Ρ€ΠΎΠΏΠ°ΡŽΡ‚ Π΅Π³ΠΎ ΠΈ ΠΎΡ‚Π΄Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π΅Π³ΠΎ Π² ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ засунули. Π’ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ Π±Ρ€Π΅Π΄ происходит сСйчас. И это Π±Π΅Π΄Π°.

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

  • Π’ΡŽΠ½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.
  • ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ индСксов.
  • Π˜Π·ΠΌΠ΅Π½ΡΡ‚ΡŒ сам SQL-запрос (это самый слоТный способ).
  • Π”ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ мощностСй (самый простой способ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв).

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

Π‘ этими Π²Π΅Ρ‰Π°ΠΌΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ всСго. Π’Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€ΡƒΡ‡Π΅ΠΊ Π² Postgres. НуТно ΠΌΠ½ΠΎΠ³ΠΎ Π·Π½Π°Ρ‚ΡŒ. Много индСксов Π² Postgres, благодаря Π² Ρ‚ΠΎΠΌ числС ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°ΠΌ этой ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ. И всС это Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ это Ρƒ Π½Π΅ DBA Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ DBA Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π½ΠΎΠΉ ΠΌΠ°Π³ΠΈΠ΅ΠΉ. Π’. Π΅. Π½ΡƒΠΆΠ½ΠΎ Π»Π΅Ρ‚ 10 Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ всС это Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.

И я – Π±ΠΎΡ€Π΅Ρ† с этой Ρ‡Π΅Ρ€Π½ΠΎΠΉ ΠΌΠ°Π³ΠΈΠ΅ΠΉ. Π― Ρ…ΠΎΡ‡Ρƒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всС Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»Π° тСхнология, Π° Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΈΠ½Ρ‚ΡƒΠΈΡ†ΠΈΠΈ Π²ΠΎ всСм этом.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΠ· ΠΆΠΈΠ·Π½ΠΈ

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

Π­Ρ‚ΠΎ я наблюдал ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π² Π΄Π²ΡƒΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ свой. ΠžΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ пост Π² Π±Π»ΠΎΠ³Π΅ сообщаСт Π½Π°ΠΌ, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1 000 для default_statistict_target – это Ρ…ΠΎΡ€ΠΎΡˆΠΎ. Π₯ΠΎΡ€ΠΎΡˆΠΎ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π² production.

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

И Ρ‚ΡƒΡ‚ ΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ наш инструмСнт Π΄Π²Π° Π³ΠΎΠ΄Π° спустя с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ экспСримСнтов Π½Π°Π΄ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сСгодня Ρ€Π΅Ρ‡ΡŒ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ ΠΈ Ρ‡Ρ‚ΠΎ стало.

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

И для этого Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экспСримСнт. Он состоит ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… частСй.

  • ΠŸΠ΅Ρ€Π²Π°Ρ – это ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅. Нам Π½ΡƒΠΆΠ½Π° ΠΆΠ΅Π»Π΅Π·ΠΊΠ°. И ΠΊΠΎΠ³Π΄Π° я ΠΏΡ€ΠΈΡ…ΠΎΠΆΡƒ Π² ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ компанию ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚, Ρ‚ΠΎ я Π³ΠΎΠ²ΠΎΡ€ΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ½Π΅ Π΄Π°Π»ΠΈ Ρ‚Π°ΠΊΡƒΡŽ ΠΆΠ΅ ΠΆΠ΅Π»Π΅Π·ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° production. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π²Π°ΡˆΠΈΡ… ΠœΠ°ΡΡ‚Π΅Ρ€ΠΎΠ² ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½Π° хотя Π±Ρ‹ ΠΎΠ΄Π½Π° ΠΆΠ΅Π»Π΅Π·ΠΊΠ° такая ΠΆΠ΅. Π›ΠΈΠ±ΠΎ это Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина instance Π² АмазонС ΠΈΠ»ΠΈ Π² Google, Π»ΠΈΠ±ΠΎ ΠΌΠ½Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ такая ΠΆΠ΅ ΠΆΠ΅Π»Π΅Π·ΠΊΠ° Π½ΡƒΠΆΠ½Π°. Π’. Π΅. я Ρ…ΠΎΡ‡Ρƒ Π²ΠΎΡΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅. И Π² понятиС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΌΡ‹ Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅ΠΌ ΠΌΠ°ΠΆΠΎΡ€Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ 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: экспСримСнты Π½Π°Π΄ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…". Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ²

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Ρƒ нас Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅. Оно Π±Π»ΠΈΠ·ΠΊΠΎ ΠΊ production, Π½ΠΎ Π½Π΅ Π±Π»ΠΈΠ·ΠΊΠΎ. Главная Π΅Π³ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ дСшСво, повторяСмо ΠΈ максимально Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ. И Π΅Ρ‰Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства для провСдСния Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°.

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

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

Nancy CLI – Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚ Β«Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΈ Π‘Π”Β»

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

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

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

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

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

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

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

И Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ Π² АмазонС Π² EC2 Instance, Π² спотах. И это ΠΎΡ‡Π΅Π½ΡŒ классная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ. НапримСр, Π²Ρ‡Π΅Ρ€Π° ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Π»ΠΈ большС 500 экспСримСнтов Π½Π° i3 instance, начиная с самого младшСго ΠΈ заканчивая i3-16-xlarge. И Π½Π°ΠΌ 500 экспСримСнтов встали Π² 64 Π΄ΠΎΠ»Π»Π°Ρ€Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ длился 15 ΠΌΠΈΠ½ΡƒΡ‚. Π’. Π΅. Π·Π° счСт Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ споты, это ΠΎΡ‡Π΅Π½ΡŒ дСшСво – скидка 70 %, посСкундная тарификация Амазона. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ исслСдованиС ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ.

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

И Ρ‚Ρ€ΠΈ ΠΌΠ°ΠΆΠΎΡ€Π½Ρ‹Π΅ вСрсии Postgres ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ. НС Ρ‚Π°ΠΊ слоТно Π΄ΠΎΠΏΠΈΠ»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ старыС ΠΈ Π½ΠΎΠ²ΡƒΡŽ 12-ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Ρ‚ΠΎΠΆΠ΅.

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

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ трСмя способами Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ:

  • Dump/sql-Ρ„Π°ΠΉΠ».
  • Π“Π»Π°Π²Π½Ρ‹ΠΉ способ – это ΠΊΠ»ΠΎΠ½ PGDATA дирСктория. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ бСрСтся ΠΈΠ· бэкап-сСрвСра. Если Ρƒ вас Π΅ΡΡ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ бэкапы Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅, ΠΎΡ‚Ρ‚ΡƒΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠ»ΠΎΠ½Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ. Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΎΠ±Π»Π°ΠΊΠ°, Ρ‚ΠΎ Π·Π° вас это облачная ΠΊΠΎΠ½Ρ‚ΠΎΡ€Π° Ρ‚ΠΈΠΏΠ° Амазона ΠΈ Google сама Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ самый Π³Π»Π°Π²Π½Ρ‹ΠΉ способ для ΠΊΠ»ΠΎΠ½ΠΎΠ² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ production. ΠœΡ‹ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΊΠ°ΠΊ Ρ€Π°Π· Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌ.
  • И послСдний способ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для исслСдований, ΠΊΠΎΠ³Π΄Π° Π΅ΡΡ‚ΡŒ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ Π² Postgres Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ какая-Ρ‚ΠΎ ΡˆΡ‚ΡƒΠΊΠ°. Π­Ρ‚ΠΎ pgbench. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pgbench. Π­Ρ‚ΠΎ просто ΠΎΠ΄Π½Π° опция Β«db-pgbenchΒ». Π“ΠΎΠ²ΠΎΡ€ΠΈΡˆΡŒ Π΅ΠΌΡƒ, ΠΊΠ°ΠΊΠΎΠΉ scale. И всС Π±ΡƒΠ΄Π΅Ρ‚ Π² ΠΎΠ±Π»Π°ΠΊΠ΅ сгСнСрировано, ΠΊΠ°ΠΊ сказано.

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

И Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°:

  • Нагрузку ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ SQL ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒ. Π­Ρ‚ΠΎ самый ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ способ.
  • А ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ. И ΡΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΡ‹ ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго ΠΌΠΎΠΆΠ΅ΠΌ Π΅Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Нам Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ всС Π»ΠΎΠ³ΠΈ. И это Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎ. Π― ΠΏΠΎΠΊΠ°ΠΆΡƒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ. И с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pgreplay ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ встроСн Π² Nancy.
  • Или Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Π’Π°ΠΊ называСмая крафтовая Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ количСством усилий. Анализируя Π½Π°ΡˆΡƒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° Π±ΠΎΠ΅Π²ΡƒΡŽ систСму, ΠΌΡ‹ Π²Ρ‹Π΄Π΅Ρ€Π³ΠΈΠ²Π°Π΅ΠΌ Ρ‚ΠΎΠΏΠΎΠ²Ρ‹Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ запросов. И с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pgbench ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π² Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΈ.

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

  • Π›ΠΈΠ±ΠΎ ΠΌΡ‹ SQL ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, Ρ‚. Π΅. ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ провСряСм, индСкс Ρ‚Π°ΠΌ создаСм, ANALAZE Ρ‚Π°ΠΌ выполняСм. И смотрим, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π΄ΠΎ Π²Π°ΠΊΡƒΡƒΠΌΠ° ΠΈ послС Π²Π°ΠΊΡƒΡƒΠΌΠ°. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, любой SQL.
  • Π›ΠΈΠ±ΠΎ ΠΌΡ‹ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ мСняСм ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 100 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² АмазонС для нашСй Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚Π½ΠΎΠΉ Π±Π°Π·Ρ‹. И Ρ‡Π΅Ρ€Π΅Π· нСсколько часов Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, тСрабайтная Π±Π°Π·Π° Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ нСсколько часов. Но Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΅ΡΡ‚ΡŒ ΠΏΠ°Ρ‚Ρ‡, Ρƒ нас Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° сСрия, Ρ‚. Π΅. Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ сСрвСрС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρƒ ΠΆΠ΅ ΡΠ°ΠΌΡƒΡŽ pgdata ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ. Postgres Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅ΡΡ‚Π°Ρ€Ρ‚ΠΎΠ²Π°Ρ‚ΡŒΡΡ, кэши ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒΡΡ. И Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π³ΠΎΠ½ΡΡ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ.

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

  • ΠŸΡ€ΠΈΠ΅Π·ΠΆΠ°Π΅Ρ‚ дирСктория, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΡƒΡ‡Π° всяких Ρ„Π°ΠΉΠ»ΠΈΠΊΠΎΠ², начиная ΠΎΡ‚ ΡΠ½Π°ΠΏΡˆΠΎΡ‚ΠΎΠ² pgstat***. И Ρ‚Π°ΠΌ самоС интСрСсноС – это pg_stat_statements, pg_stat_kcacke. Π­Ρ‚ΠΎ Π΄Π²Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ запросы. И pg_stat_bgwriter содСрТит Π² сСбС Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ pgwriter статистику, Π° Π΅Ρ‰Π΅ ΠΈ ΠΏΠΎ checkpoint ΠΈ ΠΏΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ сами бэкСнды Π²Ρ‹Ρ‚Π΅ΡΠ½ΡΡŽΡ‚ грязныС Π±ΡƒΡ„Π΅Ρ€Π°. И это всС интСрСсно ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ. НапримСр, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ shared_buffers настраиваСм, Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ интСрСсно ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, сколько Ρ‚Π°ΠΌ ΠΊΡ‚ΠΎ повытСснял.
  • Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ΅Π·ΠΆΠ°ΡŽΡ‚ Π»ΠΎΠ³ΠΈ Postgres. Π”Π²Π° Π»ΠΎΠ³Π° – Π»ΠΎΠ³ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΈ Π»ΠΎΠ³ проигрывания Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.
  • ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ новая Ρ„ΠΈΡ‡Π° – это FlameGraphs.
  • Π’Π°ΠΊΠΆΠ΅, Ссли Π²Ρ‹ использовали pgreplay ΠΈΠ»ΠΈ pgbench Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ проигрывания Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€ΠΎΠ΄Π½ΠΎΠΉ ΠΈΡ… Π²Ρ‹Π²ΠΎΠ΄. И Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ latency ΠΈ TPS. МоТно Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ это Π²ΠΈΠ΄Π΅Π»ΠΈ.
  • Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ систСмС.
  • Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ CPU ΠΈ IO. Π­Ρ‚ΠΎ большС для EC2 instance Π² АмазонС, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ 100 ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… instances ΠΈ Ρ‚Π°ΠΌ ΠΏΡ€ΠΎΠ³Π½Π°Ρ‚ΡŒ ΠΏΠΎ 100 Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³ΠΎΠ½ΠΎΠ², Ρ‚ΠΎ Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ 10 000 экспСримСнтов. И Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ попался ΡƒΡ‰Π΅Ρ€Π±Π½Ρ‹ΠΉ instance, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΠΆΠ΅ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ притСсняСт. На этой ΠΆΠ΅Π»Π΅Π·ΠΊΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈΡ‡Π°ΡŽΡ‚ ΠΈ Π²Π°ΠΌ рСсурса ΠΌΠ°Π»ΠΎ остаСтся. Π’Π°ΠΊΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ. И ΠΊΠ°ΠΊ Ρ€Π°Π· с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ 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. Π‘Ρ‚Π°Π²ΠΈΡ‚Π΅ сСбС Π½Π° Π½ΠΎΡƒΡ‚Π±ΡƒΠΊ, Π»ΠΈΠ±ΠΎ Π½Π° observing server, ΠΎΡ‚ΠΊΡƒΠ΄Π° Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ. И ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π³ΠΎ: ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму, ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму, ΠΈ сам 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 большая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ ΠΏΠΎΠΌΠ½ΠΈΡ‚, ΠΊΠΎΠ³Π΄Π° Π±Ρ‹Π» reset. Если pg_stat_database ΠΏΠΎΠΌΠ½ΠΈΡ‚, Ρ‚ΠΎ pg_stat_statements Π½Π΅ ΠΏΠΎΠΌΠ½ΠΈΡ‚. Π’Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ 1 000 000 число, Π° ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΌΡ‹ считали, ΠΌΡ‹ Π½Π΅ Π·Π½Π°Π΅ΠΌ.

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

А здСсь ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, здСсь Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π° ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π°. ΠœΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»ΡŒΡ‚Π° Π±Ρ‹Π»Π° Π² этом случаС 56 сСкунд. ΠžΡ‡Π΅Π½ΡŒ нСбольшой ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ. По total_time отсортировали. И дальшС ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚. Π΅. ΠΌΡ‹ всС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π΄Π΅Π»ΠΈΠΌ Π½Π° duration. Если ΠΌΡ‹ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΡƒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΠΌ Π½Π° duration, Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚ количСство Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π² сСкунду.

Π”Π°Π»ΡŒΡˆΠ΅ total_time per second – это моя любимая ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°. Она измСряСтся Π² сСкундах, Π² сСкунду, Ρ‚. Π΅. сколько сСкунд ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ нашСй систСмы Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этой Π³Ρ€ΡƒΠΏΠΏΡ‹ запросов Π² сСкунду. Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚Π°ΠΌ большС сСкунды Π² сСкунду, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ большС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ядра Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π΄Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ этому Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½ΡƒΠΆΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ‚Ρ€ΠΈ ядра.

Π’ΠΎΡ‚ это нашС Π½ΠΎΡƒ-Ρ…Π°Ρƒ, я Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π½ΠΈΠ³Π΄Π΅ Π½Π΅ Π²ΠΈΠ΄Π΅Π». ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ – это ΠΎΡ‡Π΅Π½ΡŒ простая Π²Π΅Ρ‰ΡŒ – сСкунда Π² сСкунду. Иногда, ΠΊΠΎΠ³Π΄Π° Ρƒ вас CPU 100 %, Ρ‚ΠΎ полчаса Π² сСкунду, Ρ‚. Π΅. Π²Ρ‹ полчаса занимались Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этим запросов.

Π”Π°Π»ΡŒΡˆΠ΅ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ rows Π² сСкунду. ΠœΡ‹ Π·Π½Π°Π΅ΠΌ, сколько строк Π² сСкунду Π²Π΅Ρ€Π½ΡƒΠ»Π°.

И дальшС Ρ‚ΠΎΠΆΠ΅ интСрСсная Π²Π΅Ρ‰ΡŒ. Бколько ΠΌΡ‹ shared_buffers Π² сСкунду ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π»ΠΈ ΠΈΠ· самого shared_buffers. Π₯ΠΈΡ‚Ρ‹ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ Ρ‚Π°ΠΌ, Π° ряды ΠΌΡ‹ взяли ΠΈΠ· кэша ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Π»ΠΈΠ±ΠΎ ΠΈΠ· диска. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ быстрый, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, быстрым, Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ Π½Π΅Ρ‚, ΠΎΡ‚ ситуации зависит.

И Π²Ρ‚ΠΎΡ€ΠΎΠΉ способ диффСрСнцирования – ΠΌΡ‹ Π΄Π΅Π»ΠΈΠΌ количСство запросов Π² этой Π³Ρ€ΡƒΠΏΠΏΠ΅. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ Ρƒ вас всСгда Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ запрос Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° запрос. А дальшС интСрСсно – сколько миллисСкунд Π±Ρ‹Π»ΠΎ Π² этом запросС. ΠœΡ‹ Π·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ Π² срСднСм Π²Π΅Π΄Π΅Ρ‚ сСбя этот запрос. 101 миллисСкунда Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ запрос. Π­Ρ‚ΠΎ традиционная ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°, которая Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° для понимания.

Бколько строчСк ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ запрос Π²Π΅Ρ€Π½ΡƒΠ» Π² срСднСм. ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ 8 эта Π³Ρ€ΡƒΠΏΠΏΠ° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚. Бколько Π² срСднСм ΠΈΠ· кэша взялось ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π»ΠΎΡΡŒ. ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ всС Π·Π°ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΎ классно. Π‘ΠΏΠ»ΠΎΡˆΠ½Ρ‹Π΅ Ρ…ΠΈΡ‚Ρ‹ для ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹.

И чСтвСртая подстрока Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строчкС – это сколько ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ² ΠΎΡ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ количСства. Π£ нас Π΅ΡΡ‚ΡŒ calls. Допустим, Π² 1 000 000. И ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ Π²ΠΊΠ»Π°Π΄ эта Π³Ρ€ΡƒΠΏΠΏΠ° вносит. ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС пСрвая Π³Ρ€ΡƒΠΏΠΏΠ° вносит Π²ΠΊΠ»Π°Π΄ мСньшС, Ρ‡Π΅ΠΌ 0,01 %. Π’. Π΅. ΠΎΠ½Π° такая мСдлСнная, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΅Π΅ Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ Π² ΠΎΠ±Ρ‰Π΅ΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π΅. А вторая Π³Ρ€ΡƒΠΏΠΏΠ° – 5 % ΠΏΠΎ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌ. Π’. Π΅. 5 % ΠΈΠ· всСх Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² – это вторая Π³Ρ€ΡƒΠΏΠΏΠ°.

По total_time Ρ‚ΠΎΠΆΠ΅ интСрСсно. На ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ запросов ΠΌΡ‹ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ»ΠΈ 14 % всСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹. А Π½Π° Π²Ρ‚ΠΎΡ€ΡƒΡŽ – 11 % ΠΈ Ρ‚. Π΄.

Π― Π² Π΄Π΅Ρ‚Π°Π»ΠΈ Π½Π΅ Π±ΡƒΠ΄Ρƒ ΡƒΠ³Π»ΡƒΠ±Π»ΡΡ‚ΡŒΡΡ, Π½ΠΎ Ρ‚Π°ΠΌ Π΅ΡΡ‚ΡŒ тонкости. ΠœΡ‹ свСрху Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ сравниваСм, ΡΠ½Π°ΠΏΡˆΠΎΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΏΠ»Ρ‹Ρ‚ΡŒ, Ρ‚. Π΅. ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ запросы ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠ°ΡΡ‚ΡŒ ΠΈ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΡƒΠΆΠ΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, Π° ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ. И ΠΌΡ‹ Ρ‚Π°ΠΌ высчитываСм ΠΎΡˆΠΈΠ±ΠΊΡƒ. Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ 0, Ρ‚ΠΎ это Ρ…ΠΎΡ€ΠΎΡˆΠΎ. Π­Ρ‚ΠΎ ошибок Π½Π΅Ρ‚. Если ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ошибки Π΄ΠΎ 20 %, это ОК.

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

Π”Π°Π»ΡŒΡˆΠ΅ ΠΌΡ‹ возвращаСмся ΠΊ нашСй Ρ‚Π΅ΠΌΠ΅. ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΊΡ€Π°Ρ„Ρ‚ΠΈΡ‚ΡŒ workload. ΠœΡ‹ Π±Π΅Ρ€Π΅ΠΌ свСрху Π²Π½ΠΈΠ· ΠΈΠ΄Π΅ΠΌ, ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°Π±Π΅Ρ€Π΅ΠΌ 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?Β». Π― наблюдаю, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ² строятся Π½Π° ΠΈΠ΄Π΅Π΅ – Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊΠΎΠΉ throughput Π±ΡƒΠ΄Π΅Ρ‚, Ρ‚. Π΅. ΠΊΠ°ΠΊΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ пропускная ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ. Она Π² TPS ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ измСряСтся ΠΈΠ»ΠΈ QPS.

И ΠΌΡ‹ стараСмся Π²Ρ‹ΠΆΠ°Ρ‚ΡŒ ΠΎΡ‚ Ρ‚Π°Ρ‡ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΡ‚ Ρ‚ΡŽΠ½ΠΈΠ½Π³Π° ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π² сСкунду. Π—Π΄Π΅ΡΡŒ ΠΊΠ°ΠΊ Ρ€Π°Π· 311 Π² сСкунду для select.

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

Но Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π΅Π·Π΄ΠΈΡ‚ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π΄ΠΎΠΌΠΎΠΉ Π½Π° машинС Π½Π° ΠΏΠΎΠ»Π½ΠΎΠΉ скорости. Π­Ρ‚ΠΎ Π³Π»ΡƒΠΏΠΎ. Π’Π°ΠΊ ΠΈ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠœΡ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΅Π·Π΄ΠΈΡ‚ΡŒ Π½Π° ΠΏΠΎΠ»Π½ΠΎΠΉ скорости, Π΄Π° Π½ΠΈΠΊΡ‚ΠΎ этого ΠΈ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚. Никто Π½Π΅ ΠΆΠΈΠ²Π΅Ρ‚ Π² production, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ 100% CPU. Π₯отя, ΠΌΠΎΠΆΠ΅Ρ‚, ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΈ ΠΆΠΈΠ²Π΅Ρ‚, Π½ΠΎ это Π½Π΅Ρ…ΠΎΡ€ΠΎΡˆΠΎ.

ИдСя такая, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΅Π·Π΄ΠΈΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°Ρ… Π½Π° 20 ΠΎΡ‚ возмоТности, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ Π²Ρ‹ΡˆΠ΅ 50 %. И ΠΌΡ‹ стараСмся врСмя ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для Π½Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго. Π’. Π΅. ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ наши Ρ€ΡƒΡ‡ΠΊΠΈ ΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ минимальноС latency ΠΏΡ€ΠΈ 20%-ΠΎΠΉ скорости, условно. Π­Ρ‚ΠΎ такая идСя, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Ρ‚ΠΎΠΆΠ΅ стараСмся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π½Π°ΡˆΠΈΡ… экспСримСнтах.

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

И Π² Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ:

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

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

Вопросы

Бпасибо большоС! ΠžΡ‡Π΅Π½ΡŒ интСрСсная ΡˆΡ‚ΡƒΠΊΠ°.

Π”Π²Π΅ ΡˆΡ‚ΡƒΠΊΠΈ.

Π”Π°, Π΄Π²Π΅ ΡˆΡ‚ΡƒΠΊΠΈ. Волько я Π½Π΅ совсСм понял. Когда ΠΌΡ‹ с Nancy Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ, ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ΄ΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Ρ†Π΅Π»ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ?

Π£ нас Π΄Π΅Π»ΡŒΡ‚Π°-ΠΊΠΎΠ½Ρ„ΠΈΠ³ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚ΡƒΠ΄Π° сколько ΡƒΠ³ΠΎΠ΄Π½ΠΎ сразу ΠΊΡ€ΡƒΡ‚Π°Π½ΡƒΡ‚ΡŒ. Но Π½Π°Π΄ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ мСняСтС ΠΌΠ½ΠΎΠ³ΠΎ всСго, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Π”Π°. ΠŸΠΎΡ‡Π΅ΠΌΡƒ я спросил? ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ слоТно ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ экспСримСнты, ΠΊΠΎΠ³Π΄Π° Ρƒ тСбя Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€. Π’Ρ‹ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Π΅ΡˆΡŒ, посмотрСл, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Выставил Π΅Π³ΠΎ. ΠŸΠΎΡ‚ΠΎΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΡˆΡŒ.

МоТно ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄ΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Ρ‚ΡŒ, Π½ΠΎ зависит ΠΎΡ‚ ситуации, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ. Но Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΠ΄Π½Ρƒ идСю ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ. Π£ нас Π²Ρ‡Π΅Ρ€Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° идСя. Π£ нас Π±Ρ‹Π»Π° ΠΎΡ‡Π΅Π½ΡŒ близкая ситуация. Π‘Ρ‹Π»ΠΎ Π΄Π²Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°. И ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ большая Ρ€Π°Π·Π½ΠΈΡ†Π°. И Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° идСя, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΡ…ΠΎΡ‚ΠΎΠΌΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈ Π½Π°ΠΉΡ‚ΠΈ Π² Ρ‡Π΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅. МоТно сразу ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ, ΠΏΠΎΡ‚ΠΎΠΌ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΡŒ ΠΈ Ρ‚. Π΄. ВсС Π³ΠΈΠ±ΠΊΠΎ.

И Π΅Ρ‰Π΅ Π΅ΡΡ‚ΡŒ вопрос. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ, развиваСтся. ДокумСнтация ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²Π°, Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС?

Π― Ρ‚Π°ΠΌ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ссылку сдСлал Π½Π° описаниС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π­Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ. Но ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π³ΠΎ Π½Π΅Ρ‚ Π΅Ρ‰Π΅ ΠΏΠΎΠΊΠ°. Π― ΠΈΡ‰Ρƒ Π΅Π΄ΠΈΠ½ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΎΠ². И я ΠΈΡ… Π½Π°Ρ…ΠΎΠΆΡƒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽ. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΊΡ€ΡƒΡ‚ΠΎ. ΠšΡ‚ΠΎ-Ρ‚ΠΎ ΡƒΠΆΠ΅ со ΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³ ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρ‚Π°ΠΌ сдСлал. И Ссли Π²Π°ΠΌ интСрСсна эта Ρ‚Π΅ΠΌΠ°, Π΄Π°ΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ связь – Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚.

Как сдСлаСм Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΡŽ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π±ΡƒΠ΄Π΅Ρ‚ обратная связь. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ. Бпасибо!

ЗдравствуйтС! Бпасибо Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄! Π― ΡƒΠ²ΠΈΠ΄Π΅Π», Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Амазона. ΠŸΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° GSP?

Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ вопрос. Начали Π΄Π΅Π»Π°Ρ‚ΡŒ. И ΠΏΠΎΠΊΠ° Π·Π°ΠΌΠΎΡ€ΠΎΠ·ΠΈΠ»ΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ. Π’. Π΅. Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ run on localhost. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сами ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ instance ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ локально. ΠšΡΡ‚Π°Ρ‚ΠΈ, Ρ‚Π°ΠΊ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ. Π’ Getlab я Ρ‚Π°ΠΊ дСлаю, Ρ‚Π°ΠΌ Π½Π° GSP. Но Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΡƒΡŽ ΠΎΡ€ΠΊΠ΅ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΌΡ‹ ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ смысл, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρƒ Google Π½Π΅Ρ‚ спотов Π΄Π΅ΡˆΠ΅Π²Ρ‹ΠΉ. Π’Π°ΠΌ Π΅ΡΡ‚ΡŒ ??? instances, Π½ΠΎ Ρƒ Π½ΠΈΡ… ограничСния. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Ρƒ Π½ΠΈΡ… всСгда Ρ‚ΠΎΠ»ΡŒΠΊΠΎ скидка Π² 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_statemetns Ρ‚Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Ρ‚Π΅ΡΠ½ΠΈΡ‚ΡŒ.

Π’ Pg_stat_statements ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π³ΠΎ. ΠœΡ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ссли Ρƒ вас track_utility = on, Ρ‚ΠΎ Ρƒ вас сСты Ρ‚ΠΎΠΆΠ΅ Ρ‚Ρ€Π΅ΠΊΠ°ΡŽΡ‚ΡΡ.

Π”Π°, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ.

И Ссли Ρƒ вас java hibernate, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π½Π΄ΠΎΠΌΠ½Ρ‹ΠΉ, Ρ‚ΠΎ Ρ‚Π°ΠΌ начинаСтся лочится Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Π°. И ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π½Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρƒ вас становится 50-100 Π³Ρ€ΡƒΠΏΠΏ. И Ρ‚Π°ΠΌ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ всС. Один ΠΈΠ· способов Π±ΠΎΡ€ΡŒΠ±Ρ‹ с этим – это pg_stat_statements.max ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ.

Π”Π°, Π½ΠΎ Π½Π°Π΄ΠΎ Π·Π½Π°Ρ‚ΡŒ, насколько. И ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π·Π° Π½ΠΈΠΌ Π½Π°Π΄ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ. Π― Ρ‚Π°ΠΊ ΠΈ дСлаю. Π’. Π΅. Ρƒ мСня Π΅ΡΡ‚ΡŒ pg_stat_statements.max. И ΡΠΌΠΎΡ‚Ρ€ΡŽ, Ρ‡Ρ‚ΠΎ я Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π° Π½Π΅ дошСл ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ² 70 %. Π₯ΠΎΡ€ΠΎΡˆΠΎ, Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΌΡ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ потСряли. Π”Π΅Π»Π°Π΅ΠΌ reset. И ΠΊΠΎΠΏΠΈΠΌ снова. Если Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π΅ мСньшС 70, Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, скорСС всСго, снова Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ потСряли.

Π”Π°. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ сСйчас 5 000. И ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠΌ этого Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ – Π΄Π°.

Π’ΠΈΠ΄Π΅ΠΎ:

P.S. ΠžΡ‚ сСбя добавлю Ρ‡Ρ‚ΠΎ Ссли Π² Postgres находятся ΠΊΠΎΠ½Ρ„Π΅Π΄ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΈΠΌ нСльзя ΠΏΠΎΠΏΠ°Π΄Π°Ρ‚ΡŒ Π² тСстовоС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ PostgreSQL Anonymizer. Π‘Ρ…Π΅ΠΌΠ° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

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

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