ΠΡΠ΅Π΄Π»Π°Π³Π°ΠΌ Π²ΠΈ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΡΠ΅Π½ΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π° Π½Π° ΠΠΈΠΊΠΎΠ»Π°ΠΉ Π‘Π°ΠΌΠΎΡ Π²Π°Π»ΠΎΠ² βΠΠ½Π΄ΡΡΡΡΠΈΠ°Π»Π΅Π½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° PostgreSQL: Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ Π²ΡΡΡ Ρ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈβ
Shared_buffers = 25% β ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈ Π΅ ΠΈΠ»ΠΈ ΠΌΠ°Π»ΠΊΠΎ? ΠΠ»ΠΈ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠ°? ΠΠ°ΠΊ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ Π΄Π°Π»ΠΈ ΡΠ°Π·ΠΈ - Π΄ΠΎΡΡΠ° ΠΎΡΡΠ°ΡΡΠ»Π° - ΠΏΡΠ΅ΠΏΠΎΡΡΠΊΠ° Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ° Π²ΡΠ² Π²Π°ΡΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΡΠ»ΡΡΠ°ΠΉ?
ΠΡΠ΅ΠΌΠ΅ Π΅ Π΄Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΠΌ ΠΊΡΠΌ Π²ΡΠΏΡΠΎΡΠ° Π·Π° ΠΈΠ·Π±ΠΎΡΠ° Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° postgresql.conf βΠΊΠ°ΡΠΎ Π²ΡΠ·ΡΠ°ΡΡΠ΅Π½β. ΠΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ»Π΅ΠΏΠΈ "Π°Π²ΡΠΎ ΡΡΠ½Π΅ΡΠΈ" ΠΈΠ»ΠΈ ΠΎΡΡΠ°ΡΠ΅Π»ΠΈ ΡΡΠ²Π΅ΡΠΈ ΠΎΡ ΡΡΠ°ΡΠΈΠΈ ΠΈ Π±Π»ΠΎΠ³ΠΎΠ²Π΅, Π° Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π°:
- ΡΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ Π²ΡΡΡ Ρ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΈΠ·Π²ΡΡΡΠ²Π°Π½ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ, Π² Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΈ ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎ Π±Π»ΠΈΠ·ΠΊΠΈ Π΄ΠΎ βΠ±ΠΎΠΉΠ½ΠΈΡΠ΅β,
- Π΄ΡΠ»Π±ΠΎΠΊΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈΡΠ΅ Π½Π° Π‘Π£ΠΠ ΠΈ ΠΠ‘.
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Nancy CLI (
Π©Π΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ Ρ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠ²Π° Π΅ ΠΈΡΡΠΎΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π° ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΡΠ΅ΡΡ ΠΌΠ΅ΡΠ΅ΡΠ°.
ΠΠ°Π»ΠΊΠΎ Π·Π° ΠΌΠ΅Π½. ΠΠΏΠΈΡ Ρ Postgres ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 14 Π³ΠΎΠ΄ΠΈΠ½ΠΈ. Π‘ΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΡΠ° ΡΠ΅Π΄ΠΈΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π·Π° ΡΠΎΡΠΈΠ°Π»Π½ΠΈ ΠΌΡΠ΅ΠΆΠΈ. Postgres Π±Π΅ΡΠ΅ ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π°Π²ΡΡΠΊΡΠ΄Π΅.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π³ΡΡΠΏΠ°ΡΠ° RuPostgres Π½Π° Meetup, 2-ΡΠΎ ΠΌΡΡΡΠΎ Π² ΡΠ²Π΅ΡΠ°. ΠΠ°Π²Π½ΠΎ Π½Π°Π±Π»ΠΈΠΆΠ°Π²Π°ΠΌΠ΅ 2 Π΄ΡΡΠΈ. RuPostgres.org.
Π Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Highload, Π°Π· ΠΎΡΠ³ΠΎΠ²Π°ΡΡΠΌ Π·Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΏΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ Postgres ΠΎΡ ΡΠ°ΠΌΠΎΡΠΎ Π½Π°ΡΠ°Π»ΠΎ.
Π ΠΏΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Ρ ΠΊΠΎΠ½ΡΡΠ»ΡΠ°Π½ΡΡΠΊΠ°ΡΠ° ΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° Π² Postgres 11 ΡΠ°ΡΠΎΠ²ΠΈ Π·ΠΎΠ½ΠΈ ΠΎΡ ΡΡΠΊ.
Π ΠΊΠΎΠ³Π°ΡΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡ ΡΠΎΠ²Π° ΠΏΡΠ΅Π΄ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π³ΠΎΠ΄ΠΈΠ½ΠΈ, ΠΈΠΌΠ°Ρ ΠΈΠ·Π²Π΅ΡΡΠ½Π° ΠΏΠ°ΡΠ·Π° Π² Π°ΠΊΡΠΈΠ²Π½Π°ΡΠ° ΡΡΡΠ½Π° ΡΠ°Π±ΠΎΡΠ° Ρ Postgres, Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΎΡ 2010 Π³. ΠΡΡ ΠΈΠ·Π½Π΅Π½Π°Π΄Π°Π½ ΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ°Π»ΠΊΠΎ ΡΠ΅ Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠ»Π° ΡΠ°Π±ΠΎΡΠ½Π°ΡΠ° ΡΡΡΠΈΠ½Π° Π½Π° DBA ΠΈ ΠΊΠΎΠ»ΠΊΠΎ ΡΡΡΠ΅Π½ ΡΡΡΠ΄ Π²ΡΠ΅ ΠΎΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°. Π Π²Π΅Π΄Π½Π°Π³Π° ΡΠΈ ΠΏΠΎΠΌΠΈΡΠ»ΠΈΡ , ΡΠ΅ ΡΡΠΊ Π½Π΅ΡΠΎ Π½Π΅ Π΅ Π½Π°ΡΠ΅Π΄, ΡΡΡΠ±Π²Π° Π΄Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°ΠΌ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π²ΡΠΈΡΠΊΠΎ.
Π ΡΡΠΉ ΠΊΠ°ΡΠΎ Π²ΡΠΈΡΠΊΠΎ Π±Π΅ΡΠ΅ Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ, ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ Π±ΡΡ Π° Π² ΠΎΠ±Π»Π°ΡΠΈΡΠ΅. Π ΠΌΠ½ΠΎΠ³ΠΎ Π²Π΅ΡΠ΅ ΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ, ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ. ΠΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΠΎΠ²Π° ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ. Π’ΠΎΠ΅ΡΡ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΈΠ΄Π΅ΡΡΠ°, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ° ΡΠ΅Π΄ΠΈΡΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, Ρ.Π΅. Π½ΡΠΊΠ°ΠΊΠ²Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΊΠΎΡΡΠΎ Π΄Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ° ΠΏΠΎΡΡΠΈ Π²ΡΠΈΡΠΊΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π° DBA, ΡΠ°ΠΊΠ° ΡΠ΅ Π΄Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Ρ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ.
Π’ΠΎΠ·ΠΈ ΠΎΡΡΠ΅Ρ Π½ΡΠΌΠ° Π΄Π° Π²ΠΊΠ»ΡΡΠ²Π°:
- βΠ‘ΡΠ΅Π±ΡΡΠ½ΠΈ ΠΊΡΡΡΡΠΌΠΈβ ΠΈ ΡΠ²ΡΡΠ΄Π΅Π½ΠΈΡ ΠΊΠ°ΡΠΎ - Π·Π°Π΄Π°ΠΉΡΠ΅ 8 GB ΠΈΠ»ΠΈ 25% shared_buffers ΠΈ ΡΠ΅ ΡΠ΅ ΠΎΠΏΡΠ°Π²ΠΈΡΠ΅. ΠΡΠΌΠ° Π΄Π° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π·Π° shared_buffers.
- Π₯Π°ΡΠ΄ΠΊΠΎΡ "Π²ΡΡΡΠ΅ΡΠ½ΠΎΡΡΠΈ".
ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ΅ ΡΠ»ΡΡΠΈ?
- Π©Π΅ ΠΈΠΌΠ° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΈΠ»Π°Π³Π°ΠΌΠ΅ ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°ΠΌΠ΅. Π©Π΅ ΠΈΠΌΠ° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΠΈΠ΄Π΅ΠΈ, ΠΊΠΎΠΈΡΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π°Ρ ΠΏΠΎ ΠΏΡΡΡ, ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ Π² ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠ°ΡΠ° ΡΠΈ ΡΠ°ΡΡ Π² Open Source, Ρ.Π΅. Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π² Open Source. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΈΠΌΠ°ΠΌΠ΅ Π±ΠΈΠ»Π΅ΡΠΈ, ΡΡΠ»Π°ΡΠ° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ Π΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ°Π²ΠΈΠΌ ΡΠ΅Π³Π°, ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ Π² ΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ Ρ.Π½.
- Π©Π΅ ΠΈΠΌΠ° ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΎΠΏΠΈΡ Π² ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Π·ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈ, ΡΠ΅Π·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π² ΡΠ΅Π΄ΠΈΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ: ΠΎΡ ΠΌΠ°Π»ΠΊΠΈ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠΈ ΡΠΈΡΠΌΠΈ Π΄ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.
ΠΠ°ΠΊ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π°?
ΠΡΡΠ²ΠΎ, ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π·Π°Π΄Π°ΡΠ° Π½Π° DBA, Π² Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΈ, Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΡ ΠΈ Ρ.Π½., Π΅ Π΄Π° Π½Π°ΠΌΠΈΡΠ° ΡΠ΅ΡΠ½ΠΈ ΠΌΠ΅ΡΡΠ° ΠΈ Π΄Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°.
Π‘Π΅Π³Π° Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½ ΡΠ°ΠΊΠ°. ΠΠ»Π΅Π΄Π°ΠΌΠ΅ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°, Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π½Π΅ΡΠΎ, Π½ΠΎ Π½ΠΈ Π»ΠΈΠΏΡΠ²Π°Ρ Π½ΡΠΊΠΎΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ. ΠΠ°ΠΏΠΎΡΠ²Π°ΠΌΠ΅ Π΄Π° ΠΊΠΎΠΏΠ°Π΅ΠΌ ΠΏΠΎ-Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Ρ ΡΡΡΠ΅, ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΏΡΠ°Π²ΠΈΠΌ Ρ Π½Π΅Π³ΠΎ ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ Π½Π°ΡΠΈΠ½.
Π ΠΈΠΌΠ° Π΄Π²Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°. Pg_stat_statements Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° Π±Π°Π²Π½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ. Π Π°Π½Π°Π»ΠΈΠ· Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Postgres Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° pgBadger.
ΠΡΠ΅ΠΊΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΈΠΌΠ° ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ. ΠΡΠΈ ΠΏΡΡΠ²ΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠΌΠ΅ ΠΈΠ·Ρ Π²ΡΡΠ»ΠΈΠ»ΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ. Π Π°ΠΊΠΎ Π²ΠΈΠ΄ΠΈΠΌ Π³ΡΡΠΏΠΈΡΠ΅ SELECT * FROM ΡΠ°Π±Π»ΠΈΡΠ°, ΠΊΡΠ΄Π΅ΡΠΎ ΠΊΠΎΠ»ΠΎΠ½Π°ΡΠ° Π΅ ΡΠ°Π²Π½Π° Π½Π° "?" ΠΈΠ»ΠΈ β$β ΠΎΡ Postgres 10. ΠΠ΅ Π·Π½Π°Π΅ΠΌ Π΄Π°Π»ΠΈ ΡΠΎΠ²Π° Π΅ ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈΠ»ΠΈ ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° seq. ΠΠ½ΠΎΠ³ΠΎ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ°. ΠΠΊΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΡΠ΄ΠΊΠΎ ΡΡΠ΅ΡΠ°Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΡΠ°ΠΌ, ΡΠΎΠ²Π° ΡΠ΅ Π±ΡΠ΄Π΅ ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΠΊΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΠΊΠΎΡΡΠΎ Π·Π°Π΅ΠΌΠ° 90% ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° ΡΠ°ΠΌ, ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° seq ΡΠ΅ Π±ΡΠ΄Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π·Π°ΡΠΎΡΠΎ Postgres Π·Π½Π°Π΅ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°ΡΠ°. Π ΡΠΎΠ²Π° Π΅ Π³ΠΎΠ»ΡΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ Π½Π° pg_stat_statements, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π΅ Π² Ρ ΠΎΠ΄ ΠΈΠ·Π²Π΅ΡΡΠ½Π° ΡΠ°Π±ΠΎΡΠ°.
ΠΠ°ΠΉ-Π³ΠΎΠ»Π΅ΠΌΠΈΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ Π½Π° Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° ΠΆΡΡΠ½Π°Π»Π° Π΅, ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΠ΅ "log_min_duration_statement = 0" ΠΊΠ°ΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ. Π ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΈ Π·Π° ΡΠΎΠ²Π°. Π‘ΡΠΎΡΠ²Π΅ΡΠ½ΠΎ Π½Π΅ Π²ΠΈΠΆΠ΄Π°ΡΠ΅ ΡΡΠ»Π°ΡΠ° ΠΊΠ°ΡΡΠΈΠ½Π°. Π Π½ΡΠΊΠΎΠΈ Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·ΠΈ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ°Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΡΡΡΠΈ, Π½ΠΎ Π²ΠΈΠ΅ Π½ΡΠΌΠ° Π΄Π° Π³ΠΈ Π²ΠΈΠ΄ΠΈΡΠ΅, Π·Π°ΡΠΎΡΠΎ ΡΠ° ΠΏΠΎΠ΄ Π²Π°ΡΠΈΡ ΠΏΡΠ°Π³.
ΠΠ°ΠΊ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈΡΠ΅ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΡΠ΅ΡΠ°Π²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠΊΡΠΈΠ²Π°Ρ?
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠΊΡΠΈΡ ΠΌΠ΅ Π½ΡΠΊΠ°ΠΊΡΠ² ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΏΡΠ°Π²ΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ? ΠΠΊΠΎ ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ ΠΏΡΠ°Π²ΠΈΡΠ΅ Π½Π΅ΡΠΎ Π½Π° Π½ΡΠΊΠ°ΠΊΡΠ² Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ, ΠΊΠΎΠΉΡΠΎ Π½Π΅ Π΅ ΡΡΡ ΡΡΡΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ. ΠΠΊΠΎ ΡΡΠ΅ DBA, ΡΠΎΠ³Π°Π²Π° ΠΈΠΌΠ°ΡΠ΅ Π΅ΡΠ°ΠΏ. Π ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½. Π ΡΠΎΠΉ ΠΈΠ·ΠΎΡΡΠ°Π½Π° Ρ ΡΠ΅ΡΡ ΠΌΠ΅ΡΠ΅ΡΠ°. Π ΠΌΠΈΡΠ»ΠΈΡ, ΡΠ΅ ΡΠ΅ ΠΎΡΠΈΠ΄Π΅Ρ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ. Π Π΄ΠΎΡΠΈ ΠΎΠΏΠΈΡΠ½ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°. Π ΡΠ΅ ΡΠ»ΡΡΠ²Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π°Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π΅Π½ ΠΈΠ½Π΄Π΅ΠΊΡ, Π΄Π° ΡΠ΅ ΡΠ²Π΅ΡΡΡ, ΡΠ΅ ΠΏΠΎΠΌΠ°Π³Π°, Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΡΡΠ½Π°Ρ ΠΈ Π΄Π° Π³ΠΎ Π΄Π°Π΄Π°Ρ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅, Π·Π° Π΄Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π³ΠΎ ΠΏΠΎΡΡΠ°Π²ΡΡ Π²ΡΠ² ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π·Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ. ΠΡΠΎ ΡΠ°ΠΊΠΈΠ²Π° Π³Π»ΡΠΏΠΎΡΡΠΈ ΡΠ΅ ΡΠ»ΡΡΠ²Π°Ρ ΡΠ΅Π³Π°. Π ΡΠΎΠ²Π° Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
- ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°ΠΉΡΠ΅ Π½Π°Π±ΠΎΡΠ° ΠΎΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ.
- ΠΡΠΎΠΌΠ΅Π½Π΅ΡΠ΅ ΡΠ°ΠΌΠ°ΡΠ° SQL Π·Π°ΡΠ²ΠΊΠ° (ΡΠΎΠ²Π° Π΅ Π½Π°ΠΉ-ΡΡΡΠ΄Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄).
- ΠΠΎΠ±Π°Π²Π΅ΡΠ΅ ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅Ρ (Π½Π°ΠΉ-Π»Π΅ΡΠ½ΠΈΡΡ Π½Π°ΡΠΈΠ½ Π² ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ»ΡΡΠ°ΠΈ).
ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°Ρ Ρ ΡΠ΅Π·ΠΈ Π½Π΅ΡΠ°. Π Postgres ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ. ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π° ΡΠ΅ Π·Π½Π°Π΅. Π Postgres ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π½Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΎΡΠΈΡΠ΅ Π½Π° ΡΠ°Π·ΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡ. Π Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π·Π½Π°Π΅ ΠΈ ΡΠΎΠ²Π° ΠΊΠ°ΡΠ° Π½Π΅-DBA Π΄Π° ΡΠ΅ ΡΡΠ²ΡΡΠ²Π°Ρ ΡΡΠΊΠ°Ρ DBA ΠΏΡΠ°ΠΊΡΠΈΠΊΡΠ²Π°Ρ ΡΠ΅ΡΠ½Π° ΠΌΠ°Π³ΠΈΡ. Π’ΠΎΠ΅ΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠΈΡ 10 Π³ΠΎΠ΄ΠΈΠ½ΠΈ, Π·Π° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅Ρ Π΄Π° ΡΠ°Π·Π±ΠΈΡΠ°Ρ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π½ΠΎΡΠΌΠ°Π»Π½ΠΎ.
Π Π°Π· ΡΡΠΌ Π±ΠΎΡΠ΅Ρ ΡΡΠ΅ΡΡ ΡΠ°Π·ΠΈ ΡΠ΅ΡΠ½Π° ΠΌΠ°Π³ΠΈΡ. ΠΡΠΊΠ°ΠΌ Π΄Π° Π½Π°ΠΏΡΠ°Π²Ρ Π²ΡΠΈΡΠΊΠΎ ΡΠ°ΠΊΠ°, ΡΠ΅ Π΄Π° ΠΈΠΌΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΈ Π΄Π° Π½ΡΠΌΠ° ΠΈΠ½ΡΡΠΈΡΠΈΡ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π°.
ΠΡΠΈΠΌΠ΅ΡΠΈ ΠΎΡ ΠΆΠΈΠ²ΠΎΡΠ°
ΠΠ°Π±Π»ΡΠ΄Π°Π²Π°Ρ ΡΠΎΠ²Π° Π² ΠΏΠΎΠ½Π΅ Π΄Π²Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΌΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½. ΠΡΡΠ³Π° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π² Π±Π»ΠΎΠ³Π° Π½ΠΈ ΠΊΠ°Π·Π²Π°, ΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΎΡ 1 Π·Π° default_statistict_target Π΅ Π΄ΠΎΠ±ΡΠ°. ΠΠΎΠ±ΡΠ΅, Π½Π΅ΠΊΠ° Π³ΠΎ ΠΏΡΠΎΠ±Π²Π°ΠΌΠ΅ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ.
Π Π΅ΡΠΎ Π½ΠΈ ΡΡΠΊ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π½Π°ΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ, Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ Π²ΡΡΡ Ρ Π±Π°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ, Π·Π° ΠΊΠΎΠΈΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π΄Π½Π΅Ρ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΠ°Π²Π½ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Π±ΠΈΠ»ΠΎ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΡΡΠ°Π½Π°Π»ΠΎ.
Π Π·Π° ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½Ρ. Π‘ΡΡΡΠΎΠΈ ΡΠ΅ ΠΎΡ ΡΠ΅ΡΠΈΡΠΈ ΡΠ°ΡΡΠΈ.
- ΠΡΡΠ²ΠΈΡΡ Π΅ ΠΎΠΊΠΎΠ»Π½Π°ΡΠ° ΡΡΠ΅Π΄Π°. ΠΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ Ρ Π°ΡΠ΄ΡΠ΅Ρ. Π ΠΊΠΎΠ³Π°ΡΠΎ Π΄ΠΎΠΉΠ΄Π° Π² Π½ΡΠΊΠΎΡ ΡΠΈΡΠΌΠ° ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ, ΠΈΠΌ ΠΊΠ°Π·Π²Π°ΠΌ Π΄Π° ΠΌΠΈ Π΄Π°Π΄Π°Ρ ΡΡΡΠΈΡ Ρ Π°ΡΠ΄ΡΠ΅Ρ, ΠΊΠ°ΠΊΡΠΎ Π΅ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ. ΠΠ° Π²ΡΠ΅ΠΊΠΈ ΠΎΡ Π²Π°ΡΠΈΡΠ΅ ΡΡΠΈΡΠ΅Π»ΠΈ ΠΌΠΈ ΡΡΡΠ±Π²Π° ΠΏΠΎΠ½Π΅ Π΅Π΄ΠΈΠ½ Ρ Π°ΡΠ΄ΡΠ΅Ρ ΠΊΠ°ΡΠΎ ΡΠΎΠ·ΠΈ. ΠΠ»ΠΈ ΡΠΎΠ²Π° Π΅ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° Π² Amazon ΠΈΠ»ΠΈ Google, ΠΈΠ»ΠΈ ΠΈΠΌΠ°ΠΌ Π½ΡΠΆΠ΄Π° ΠΎΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΡΡΠΈΡ Ρ Π°ΡΠ΄ΡΠ΅Ρ. Π’ΠΎΠ΅ΡΡ ΠΈΡΠΊΠ°ΠΌ Π΄Π° ΠΏΡΠ΅ΡΡΠ·Π΄Π°ΠΌ ΡΡΠ΅Π΄Π°ΡΠ°. Π Π² ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° Π·Π° ΡΡΠ΅Π΄Π° Π²ΠΊΠ»ΡΡΠ²Π°ΠΌΠ΅ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Postgres.
- ΠΡΠΎΡΠ°ΡΠ° ΡΠ°ΡΡ Π΅ ΠΎΠ±Π΅ΠΊΡ Π½Π° Π½Π°ΡΠ΅ΡΠΎ ΠΈΠ·ΡΠ»Π΅Π΄Π²Π°Π½Π΅. Π’ΠΎΠ²Π° Π΅ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ ΠΏΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π½Π°ΡΠΈΠ½Π°. Π©Π΅ ΡΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ.
- Π’ΡΠ΅ΡΠ°ΡΠ° ΡΠ°ΡΡ Π΅ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ. Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-ΡΡΡΠ΄Π½ΠΈΡΡ ΠΌΠΎΠΌΠ΅Π½Ρ.
- Π ΡΠ΅ΡΠ²ΡΡΡΠ°ΡΠ° ΡΠ°ΡΡ Π΅ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅, Ρ.Π΅. ΠΊΠ°ΠΊΠ²ΠΎ Ρ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΡΠ°Π²Π½ΠΈΠΌ. ΠΠ° ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌ Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ Ρ.Π½.
ΠΠ°ΠΏΠΎΡΠ²Π°ΠΌΠ΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½Ρ. ΠΡΠΎ pg_stat_statements. ΠΡΠ»ΡΠ²ΠΎ Π΅ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠΈ. ΠΠ΄ΡΡΠ½ΠΎ - ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠΈ.
ΠΡΠ»ΡΠ²ΠΎ default_statistics_target = 100, ΠΎΡΠ΄ΡΡΠ½ΠΎ = 1. ΠΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ ΡΠΎΠ²Π° Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°. ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ Ρ 000%.
ΠΠΎ Π°ΠΊΠΎ ΠΏΡΠ΅Π²ΡΡΡΠΈΠΌ Π½Π°Π΄ΠΎΠ»Ρ, ΡΠ΅ ΠΈΠΌΠ° Π³ΡΡΠΏΠΈ ΠΎΡ Π·Π°ΡΠ²ΠΊΠΈ ΠΎΡ pgBadger ΠΈΠ»ΠΈ ΠΎΡ pg_stat_statements. ΠΠΌΠ° Π΄Π²Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ. Π©Π΅ Π²ΠΈΠ΄ΠΈΠΌ, ΡΠ΅ Π½ΡΠΊΠΎΠΈ Π·Π°ΡΠ²ΠΊΠΈ ΡΠ° Π½Π°ΠΌΠ°Π»Π΅Π»ΠΈ Ρ 88%. Π ΡΡΠΊ ΠΈΠ΄Π²Π° ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΠΈΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄. ΠΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΊΠΎΠΏΠ°Π΅ΠΌ ΠΎΡΠ΅ Π²ΡΡΡΠ΅, Π·Π°ΡΠΎΡΠΎ ΡΠ΅ ΡΡΠ΄ΠΈΠΌ Π·Π°ΡΠΎ Π΅ ΠΏΠΎΡΡΠ½Π°Π»ΠΎ. Π’ΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠΈ ΡΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°ΡΠ°. ΠΠ°ΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΊΠΎΡΠΈ Π² ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°ΡΠ° Π²ΠΎΠ΄ΡΡ Π΄ΠΎ ΠΏΠΎ-Π»ΠΎΡΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ.
ΠΠ»ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π΅ ΠΊΠΎΠΏΠ°Π΅ΠΌ, Π½ΠΎ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ βALTER TABLE ... ALTER COLUMNβ ΠΈ Π΄Π° Π²ΡΡΠ½Π΅ΠΌ 100 ΠΊΠΎΡΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΊΡΠΌ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°ΡΠ° Π½Π° ΡΠ°Π·ΠΈ ΠΊΠΎΠ»ΠΎΠ½Π°. Π ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Ρ Π΄ΡΡΠ³ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ΅ ΡΠ²Π΅ΡΠΈΠΌ, ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΏΠ»Π°ΡΡΠΈΡ Π΅ ΠΏΠΎΠΌΠΎΠ³Π½Π°Π». ΠΡΠΈΡΠΊΠΎ. Π’ΠΎΠ²Π° Π΅ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ΅Π½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ Π½ΠΈ ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Π³ΠΎΠ»ΡΠΌΠ°ΡΠ° ΠΊΠ°ΡΡΠΈΠ½Π° ΠΈ Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π΄Π°Π½Π½ΠΈ, Π° Π½Π΅ Π½Π° ΠΈΠ½ΡΡΠΈΡΠΈΡ.
ΠΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΎΡ Π΄ΡΡΠ³ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ. Π ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΈΠΌΠ° CI ΡΠ΅ΡΡΠΎΠ²Π΅. Π Π½ΠΈΡΠΎ Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΠ΅ΠΊΡ ΡΡΡ Π·Π΄ΡΠ°Π² ΡΠΌ Π½Π΅ Π±ΠΈ ΠΎΡΠ΅Π»ΡΠ» Π±Π΅Π· Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅.
Π Π΄ΡΡΠ³ΠΈ ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈ: Π² Π°Π²ΠΈΠ°ΡΠΈΡΡΠ°, Π² Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π½Π°ΡΠ° ΠΈΠ½Π΄ΡΡΡΡΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅ Π°Π΅ΡΠΎΠ΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ°ΡΠ°, Π½ΠΈΠ΅ ΡΡΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΠΏΡΠ°Π²ΠΈΠΌ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ. ΠΡΠΌΠ° Π΄Π° ΠΈΠ·ΡΡΡΠ΅Π»ΡΠΌΠ΅ Π½Π΅ΡΠΎ ΠΎΡ ΡΠ΅ΡΡΠ΅ΠΆ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² ΠΊΠΎΡΠΌΠΎΡΠ° ΠΈΠ»ΠΈ Π½ΡΠΌΠ° Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° ΠΈΠ·Π²Π΅Π΄Π΅ΠΌ ΠΊΠΎΠ»Π° Π½Π° ΠΏΠΈΡΡΠ°ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠΌΠ° Π°Π΅ΡΠΎΠ΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅Π½ ΡΡΠ½Π΅Π».
ΠΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΈΠ·Π²ΠΎΠ΄ΠΈ ΠΎΡ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ Π½Π° Π΄ΡΡΠ³ΠΈ ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈ.
ΠΡΡΠ²ΠΎ, ΠΈΠΌΠ°ΠΌΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½Π° ΡΡΠ΅Π΄Π°. ΠΠ»ΠΈΠ·ΠΎ Π΅ Π΄ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ, Π½ΠΎ Π½Π΅ Π΅ Π±Π»ΠΈΠ·ΠΎ. ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΌΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π΅, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π΅Π²ΡΠΈΠ½, ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΡΠΎΠ±Π΅Π½ Π°Π½Π°Π»ΠΈΠ·.
ΠΠ°ΠΉ-Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠ°ΠΌΠΎΠ»Π΅Ρ ΠΈ Π»Π΅ΡΠΈΠΌ, ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π° ΠΈΠ·ΡΡΠ°Π²Π°ΠΌΠ΅ Π²ΡΠ΅ΠΊΠΈ ΠΌΠΈΠ»ΠΈΠΌΠ΅ΡΡΡ ΠΎΡ ΠΏΠΎΠ²ΡΡΡ Π½ΠΎΡΡΡΠ° Π½Π° ΠΊΡΠΈΠ»ΠΎΡΠΎ, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π² Π°Π΅ΡΠΎΠ΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅Π½ ΡΡΠ½Π΅Π». ΠΠΌΠ°ΠΌΠ΅ ΠΎΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ°. ΠΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠΌ Π΄Π° Π½ΠΎΡΠΈΠΌ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ΠΆΠΊΠΈ Π½Π΅ΡΠ°, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠΌ Π΄Π° ΠΊΠ°ΡΠΈΠΌ Π² ΡΠ°ΠΌΠΎΠ»Π΅Ρ Π²ΡΠ² Π²ΡΠ·Π΄ΡΡ Π°. Π‘ΡΡΠΎΡΠΎ Ρ Postgres. Π Π½ΡΠΊΠΎΠΈ ΡΠ»ΡΡΠ°ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠ»Π½ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ. Π Π½ΠΈΠ΅ Π½Π΅ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΏΡΠ°Π²ΠΈΠΌ ΡΠΎΠ²Π° Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ. ΠΠΎΠΆΠ΅ Π΄ΠΎΡΠΈ Π΄Π° ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΠΌΠ΅ ΡΠΎΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° auto_explain.
Π ΠΊΠ°ΠΊΡΠΎ ΠΊΠ°Π·Π°Ρ , Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π½Π°ΡΠΈΡΠΊΠ°ΠΌΠ΅ Π±ΡΡΠΎΠ½Π° ΠΈ ΠΏΠΎΠ²ΡΠ°ΡΡΠΌΠ΅. Π’Π°ΠΊΠ° ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅, Π·Π° Π΄Π° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ, Π·Π° Π΄Π° Π΅ Π½Π° ΠΏΠΎΡΠΎΠΊ.
Nancy CLI - ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° βΠ»Π°Π±ΠΎΡΠ°ΡΠΎΡΠΈΡΡΠ° Π·Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈβ
Π ΡΠ°ΠΊΠ° Π½Π°ΠΏΡΠ°Π²ΠΈΡ ΠΌΠ΅ ΡΠΎΠ²Π° Π½Π΅ΡΠΎ. Π’ΠΎΠ΅ΡΡ Π°Π· Π³ΠΎΠ²ΠΎΡΠΈΡ Π·Π° ΡΠ΅Π·ΠΈ ΠΈΠ΄Π΅ΠΈ ΠΏΡΠ΅Π· ΡΠ½ΠΈ, ΠΏΡΠ΅Π΄ΠΈ ΠΏΠΎΡΡΠΈ Π³ΠΎΠ΄ΠΈΠ½Π°. Π Π²Π΅ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ°ΠΊΠ° Π½Π°ΡΠ΅ΡΠ΅Π½ΠΈΡ Nancy CLI Π² Open Source. Π’ΠΎΠ²Π° Π΅ ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠΈΡ Π·Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ.
Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, ΠΈΠΌΠ° ΠΎΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π² ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°. ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅ΠΈ ΡΠ°ΠΌ. ΠΠΎ ΡΠΎΠ²Π° Π΅ Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ΠΊΠΈ Π΄Π΅Π½. Π ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΈΠ΄Π΅Ρ - Π·Π°ΡΠΎ ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΡΡΠΈΠ΅ΠΌ 40 000 000 ΡΠ΅Π΄Π°, Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π° Π΄ΠΎ IO, ΡΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½Ρ ΠΈ Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ, Π·Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΏΠΎΠΏΡΠ°Π²ΠΈΠΌ Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅. Π’ΠΎΠ΅ΡΡ ΠΏΡΠ°Π²ΠΈΠΌ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°ΡΡΡΠΎΠΉΠ²Π°ΠΌΠ΅ Π½Π΅ΡΠΎ ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ΅ ΡΠ»ΡΡΠΈ Π½Π°ΠΊΡΠ°Ρ. Π Π½ΠΈΠ΅ Π½Π΅ ΠΏΡΠ°Π²ΠΈΠΌ ΡΠΎΠ²Π° Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ. Π’ΠΎΠ²Π° Π΅ ΡΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ΄Π΅ΡΡΠ°.
ΠΡΠ΄Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΡΠΎΠ²Π°? Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ, Ρ.Π΅. ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π½Π°Π²ΡΡΠΊΡΠ΄Π΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΡΠΈ Π΄Π° Π³ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° MacBook. ΠΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ Π΄ΠΎΠΊΠ΅Ρ, Π΄Π° Π²ΡΡΠ²ΠΈΠΌ. Π’ΠΎΠ²Π° Π΅ Π²ΡΠΈΡΠΊΠΎ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π² Π½ΡΠΊΠ°ΠΊΡΠ² ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΡΠ°ΡΡ ΠΎΡ Ρ Π°ΡΠ΄ΡΠ΅Ρ ΠΈΠ»ΠΈ Π²ΡΠ² Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, Π½Π°Π²ΡΡΠΊΡΠ΄Π΅.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΈΠΌΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π² Amazon Π² EC2 ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡ, Π½Π° ΠΌΠ΅ΡΡΠ°. Π ΡΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΡΠΈΠ½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ΅ΡΠ° ΠΏΡΠΎΠ²Π΅Π΄ΠΎΡ ΠΌΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 500 Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ° Π½Π° Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ i3, Π·Π°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ Ρ Π½Π°ΠΉ-ΠΌΠ»Π°Π΄ΠΈΡ ΠΈ Π·Π°Π²ΡΡΡΠ²Π°ΠΉΠΊΠΈ Ρ i3-16-xlarge. Π 500 Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ° Π½ΠΈ ΡΡΡΡΠ²Π°Ρ $64. ΠΡΠ΅ΠΊΠΈ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ ΠΏΠΎ 15 ΠΌΠΈΠ½ΡΡΠΈ. Π’ΠΎΠ΅ΡΡ, ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΡΠ°ΠΌ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠΏΠΎΡΠΎΠ²Π΅, Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΅Π²ΡΠΈΠ½ΠΎ - 70% ΠΎΡΡΡΡΠΏΠΊΠ°, ΡΠ°ΠΊΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΠΊΡΠ½Π΄Π° Π½Π° Amazon. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΈΡΡΠΈΠ½ΡΠΊΠΎ ΠΏΡΠΎΡΡΠ²Π°Π½Π΅.
ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ΅ ΠΈ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° Postgres. ΠΠ΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΡΡΡΠ΄Π½ΠΎ Π΄Π° Π·Π°Π²ΡΡΡΠΈΡΠ΅ Π½ΡΠΊΠΎΠΈ ΡΡΠ°ΡΠΈ ΠΈ Π½ΠΎΠ²Π°ΡΠ° 12-ΡΠ° Π²Π΅ΡΡΠΈΡ ΡΡΡΠΎ.
ΠΠΎΠΆΠ΅ΠΌ Π΄Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΠΌΠ΅ ΠΎΠ±Π΅ΠΊΡ ΠΏΠΎ ΡΡΠΈ Π½Π°ΡΠΈΠ½Π°. Π’ΠΎΠ²Π°:
- Dump/sql ΡΠ°ΠΉΠ».
- ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ Π½Π°ΡΠΈΠ½ Π΅ Π΄Π° ΠΊΠ»ΠΎΠ½ΠΈΡΠ°ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° PGDATA. ΠΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ΅ Π²Π·Π΅ΠΌΠ° ΠΎΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈΡ ΡΡΡΠ²ΡΡ. ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»Π½ΠΈ Π΄Π²ΠΎΠΈΡΠ½ΠΈ Π°ΡΡ ΠΈΠ²ΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΊΠ»ΠΎΠ½ΠΈΠ½Π³ΠΈ ΠΎΡ ΡΠ°ΠΌ. ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΎΠ±Π»Π°ΡΠΈ, ΡΠΎΠ³Π°Π²Π° ΠΎΠ±Π»Π°ΡΠ΅Π½ ΠΎΡΠΈΡ ΠΊΠ°ΡΠΎ Amazon ΠΈ Google ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠΎΠ²Π° Π²ΠΌΠ΅ΡΡΠΎ Π²Π°Ρ. Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΈΡΡ Π½Π°ΡΠΈΠ½ Π·Π° ΠΊΠ»ΠΎΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π°Π»Π½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ. ΠΡΠΎ ΠΊΠ°ΠΊ ΡΠ΅ ΡΠ°Π·Π³ΡΡΡΠ°ΠΌΠ΅.
- Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π·Π° ΠΈΠ·ΡΠ»Π΅Π΄Π²Π°Π½Π΅, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ Π½Π΅ΡΠΎ Π² Postgres. Π’ΠΎΠ²Π° Π΅ pgbench. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° pgbench. Π’ΠΎΠ²Π° Π΅ ΡΠ°ΠΌΠΎ Π΅Π΄Π½Π° ΠΎΠΏΡΠΈΡ "db-pgbench". Π’ΠΈ ΠΌΡ ΠΊΠ°ΠΆΠΈ ΠΊΠ°ΠΊΡΠ² ΠΌΠ°ΡΠ°Π±. Π Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΎ Π² ΠΎΠ±Π»Π°ΠΊΠ°, ΠΊΠ°ΠΊΡΠΎ Π΅ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΎ.
Π Π·Π°ΡΠ΅Π΄ΠΈ:
- ΠΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π² Π΅Π΄Π½Π° SQL Π½ΠΈΡΠΊΠ°. Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΠΈΡΡ Π½Π°ΡΠΈΠ½.
- Π Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π΅ΠΌΡΠ»ΠΈΡΠ°ΠΌΠ΅ ΡΠΎΠ²Π°ΡΠ°. Π ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΎ Π΅ΠΌΡΠ»ΠΈΡΠ°ΠΌΠ΅ ΠΏΡΡΠ²ΠΎ ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½. Π’ΡΡΠ±Π²Π° Π΄Π° ΡΡΠ±Π΅ΡΠ΅ΠΌ Π²ΡΠΈΡΠΊΠΈ ΡΡΡΠΏΠΈ. Π ΡΠΎΠ²Π° Π΅ Π±ΠΎΠ»Π΅Π·Π½Π΅Π½ΠΎ. Π©Π΅ ΡΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ° Π·Π°ΡΠΎ. Π ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ pgreplay we play, ΠΊΠΎΠΉΡΠΎ Π΅ Π²Π³ΡΠ°Π΄Π΅Π½ Π² Nancy.
- ΠΠ»ΠΈ Π΄ΡΡΠ³ Π²Π°ΡΠΈΠ°Π½Ρ. Π’Π°ΠΊΠ° Π½Π°ΡΠ΅ΡΠ΅Π½ΠΎΡΠΎ Π·Π°Π½Π°ΡΡΡΠΈΠΉΡΠΊΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ°Π²ΠΈΠΌ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΡΠΈΠ»ΠΈΠ΅. ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΉΠΊΠΈ Π½Π°ΡΠ΅ΡΠΎ ΡΠ΅ΠΊΡΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π½Π° Π±ΠΎΠΉΠ½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, Π½ΠΈΠ΅ ΠΈΠ·Π²Π°ΠΆΠ΄Π°ΠΌΠ΅ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΠ΅ Π³ΡΡΠΏΠΈ Π·Π°ΡΠ²ΠΊΠΈ. Π Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° pgbench ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π΅ΠΌΡΠ»ΠΈΡΠ°ΠΌΠ΅ ΡΠΎΠ²Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π² Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠΈΡΡΠ°.
- ΠΠ»ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·Π²ΡΡΡΠΈΠΌ Π½ΡΠΊΠ°ΠΊΡΠ² Π²ΠΈΠ΄ SQL, Ρ.Π΅. ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ Π½ΡΠΊΠ°ΠΊΡΠ² Π²ΠΈΠ΄ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ, ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ°ΠΌ, ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΌΠ΅ ANALAZE ΡΠ°ΠΌ. Π Π½ΠΈΠ΅ Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ Π΅ ΡΠ»ΡΡΠΈΠ»ΠΎ ΠΏΡΠ΅Π΄ΠΈ Π²Π°ΠΊΡΡΠΌΠ° ΠΈ ΡΠ»Π΅Π΄ Π²Π°ΠΊΡΡΠΌΠ°. ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ Π²ΡΠ΅ΠΊΠΈ SQL.
- ΠΠ»ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΡΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°. ΠΠΎΠΆΠ΅ΠΌ Π΄Π° Π½ΠΈ ΠΊΠ°ΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 100 ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π² Amazon Π·Π° Π½Π°ΡΠ°ΡΠ° ΡΠ΅ΡΠ°Π±Π°ΠΉΡΠΎΠ²Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. Π ΡΠ»Π΅Π΄ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°ΡΠ° ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ°. ΠΠ°ΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ΅ Π²ΠΈ ΠΎΡΠ½Π΅ΠΌΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°ΡΠ°, Π·Π° Π΄Π° ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅ ΡΠ΅ΡΠ°Π±Π°ΠΉΡΠΎΠ²Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. ΠΠΎ ΠΈΠΌΠ° ΠΊΡΡΠΏΠΊΠ° Π² ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΠΈΠΌΠ°ΠΌΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ ΡΠ΅ΡΠΈΠΈ, Ρ.Π΅. ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π΅Π΄Π½ΠΈ ΠΈ ΡΡΡΠΈ pgdata Π½Π° ΡΡΡΠΈΡ ΡΡΡΠ²ΡΡ ΠΈ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΡΠ΅. Postgres ΡΠ΅ ΡΠ΅ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ° ΠΈ ΠΊΠ΅ΡΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π°Ρ Π½ΡΠ»ΠΈΡΠ°Π½ΠΈ. Π ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΊΠ°ΡΠ°ΡΠ΅ ΡΠΎΠ²Π°ΡΠ°.
- ΠΡΠΈΡΡΠΈΠ³Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Ρ ΠΊΡΠΏ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠ°ΡΠΎ ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ ΠΎΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ½ΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ Π½Π° pgStat***. Π Π½Π°ΠΉ-ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΡΠΎ Π½Π΅ΡΠΎ ΡΠ°ΠΌ Π΅ pg_stat_statements, pg_stat_kcacke. Π’ΠΎΠ²Π° ΡΠ° Π΄Π²Π΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ Π·Π°ΡΠ²ΠΊΠΈ. Π pg_stat_bgwriter ΡΡΠ΄ΡΡΠΆΠ° Π½Π΅ ΡΠ°ΠΌΠΎ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π½Π° pgwriter, Π½ΠΎ ΡΡΡΠΎ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π½Π° ΡΠΎΡΠΊΠ° ΠΈ ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΈΡΠ΅ Π±Π΅ΠΊΠ΅Π½Π΄ΠΎΠ²Π΅ ΠΈΠ·ΠΌΠ΅ΡΡΠ²Π°Ρ ΠΌΡΡΡΠ½ΠΈΡΠ΅ Π±ΡΡΠ΅ΡΠΈ. Π Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π°ΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠ²Π°ΠΌΠ΅ shared_buffers, Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠΎΠ»ΠΊΠΎ ΡΠ° Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π²ΡΠΈΡΠΊΠΈ.
- ΠΡΠΈΡΡΠΈΠ³Π°Ρ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Postgres. ΠΠ²Π° Π»ΠΎΠ³Π° β Π΄Π½Π΅Π²Π½ΠΈΠΊ Π·Π° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΈ Π΄Π½Π΅Π²Π½ΠΈΠΊ Π·Π° Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅.
- Π‘ΡΠ°Π²Π½ΠΈΡΠ΅Π»Π½ΠΎ Π½ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΡ Π΅ FlameGraphs.
- ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π°ΠΊΠΎ ΡΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»ΠΈ ΠΎΠΏΡΠΈΠΈΡΠ΅ pgreplay ΠΈΠ»ΠΈ pgbench Π·Π° Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠΎΠ²Π°ΡΠ°, ΡΠΎΠ³Π°Π²Π° ΡΠ΅Ρ Π½ΠΈΡΡ ΠΈΠ·Ρ ΠΎΠ΄ ΡΠ΅ Π±ΡΠ΄Π΅ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½. Π ΡΠ΅ Π²ΠΈΠ΄ΠΈΡΠ΅ Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ ΠΈ TPS. Π©Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ ΠΊΠ°ΠΊ ΡΠ° Π³ΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ.
- Π‘ΠΈΡΡΠ΅ΠΌΠ½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
- ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΠΈ IO. Π’ΠΎΠ²Π° Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π° EC2 Π² Amazon, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ 100 ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΈ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π² Π½ΠΈΡΠΊΠ° ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ 100 ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΌ, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ 10 000 Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°. Π ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ΅ ΡΠΈΠ³ΡΡΠ½ΠΈ, ΡΠ΅ Π½ΡΠΌΠ° Π΄Π° ΠΏΠΎΠΏΠ°Π΄Π½Π΅ΡΠ΅ Π½Π° ΠΏΠΎΠ³ΡΠ΅ΡΠ΅Π½ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ, ΠΊΠΎΠΉΡΠΎ Π²Π΅ΡΠ΅ Π΅ ΠΏΠΎΡΠΈΡΠΊΠ°Π½ ΠΎΡ Π½ΡΠΊΠΎΠ³ΠΎ. ΠΡΡΠ³ΠΈ ΡΠ° Π°ΠΊΡΠΈΠ²Π½ΠΈ Π½Π° ΡΠ°Π·ΠΈ ΡΠ°ΡΡ ΠΎΡ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ° ΠΈ Π²ΠΈΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ°Π»ΠΊΠΎ ΠΎΡΡΠ°Π½Π°Π» ΡΠ΅ΡΡΡΡ. ΠΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΅ Π΄Π° ΠΎΡΡ Π²ΡΡΠ»ΠΈΡΠ΅ ΡΠ°ΠΊΠΈΠ²Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ. Π Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° sysbench ΠΎΡ ΠΠ»Π΅ΠΊΡΠ΅ΠΉ ΠΠΎΠΏΠΈΡΠΎΠ² ΠΏΡΠ°Π²ΠΈΠΌ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΡΠ°ΡΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π΄ΠΎΠΉΠ΄Π°Ρ ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈ Ρ Π΄ΡΡΠ³ΠΈ, Ρ.Π΅. ΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ Π΄ΡΡΠΆΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΡΡ ΠΈ ΠΊΠ°ΠΊ ΡΠ΅ Π΄ΡΡΠΆΠΈ IO.
ΠΠ°ΠΊΠ²ΠΈ ΡΠ° ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ ΡΡΡΠ΄Π½ΠΎΡΡΠΈ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ?
ΠΠ° ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΏΠΎΠ²ΡΠΎΡΠΈΠΌ ΡΠ΅Π°Π»Π½ΠΎΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. Π‘ΡΡΠ°Ρ ΠΎΡΠ½Π° ΠΈΠ΄Π΅Ρ Π΅, Π°ΠΊΠΎ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π° pgreplay Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄. ΠΠΈΠ΅ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅. ΠΠΎ Π·Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π΄ΠΎΠ±ΡΠ΅, ΡΡΡΠ±Π²Π° Π΄Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΠΏΡΠ»Π½ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΈ Π²ΡΠ΅ΠΌΠ΅.
ΠΠΌΠ° Π½ΡΠΊΠΎΠΈ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡ Ρ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡ ΠΏΠ΅ΡΠ°Ρ. Π©Π΅ ΠΈΠ·ΠΏΡΠ°Π·Π½ΠΈΠΌ ΡΡΠ»Π°ΡΠ° ΡΠ°Π·ΠΈ ΠΊΡΡ Π½Ρ. ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ Π²ΡΠΏΡΠΎΡ Π΅ Π΄Π°Π»ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠΈ Π³ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΠ΅ ΠΈΠ»ΠΈ Π½Π΅?
ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅, ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π΅ Π½Π°Π»ΠΈΡΠ΅Π½. ΠΠ° ΠΏΡΡΠ²ΠΎ ΠΌΡΡΡΠΎ, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΡΠ² ΠΏΠΎΡΠΎΠΊ ΡΠ΅ Π±ΡΠ΄Π΅ Π·Π°ΠΏΠΈΡΠ°Π½ Π² Π΄Π½Π΅Π²Π½ΠΈΠΊΠ°. ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ pg_stat_statements, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ°Π·ΠΈ Π·Π°ΡΠ²ΠΊΠ° (Π²ΡΡΠ·ΠΊΠ°ΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ Π½Π°Π»ΠΈΡΠ½Π° Π² ΡΠ»Π°ΠΉΠ΄ΠΎΠ²Π΅ΡΠ΅), Π·Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠΎΠ»ΠΊΠΎ Π±Π°ΠΉΡΠ° ΡΠ΅ Π±ΡΠ΄Π°Ρ Π·Π°ΠΏΠΈΡΠ°Π½ΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°.
ΠΠ»Π΅Π΄Π°ΠΌΠ΅ Π΄ΡΠ»ΠΆΠΈΠ½Π°ΡΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°. ΠΡΠ΅Π½Π΅Π±ΡΠ΅Π³Π²Π°ΠΌΠ΅ ΡΠ°ΠΊΡΠ°, ΡΠ΅ Π½ΡΠΌΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ, Π½ΠΎ Π·Π½Π°Π΅ΠΌ Π΄ΡΠ»ΠΆΠΈΠ½Π°ΡΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ° ΠΈ Π·Π½Π°Π΅ΠΌ ΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΡΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π° Π΅ Π±ΠΈΠ»Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½Π°. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΡΠΈΡΠ»ΠΈΠΌ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠΎΠ»ΠΊΠΎ Π±Π°ΠΉΡΠ° Π² ΡΠ΅ΠΊΡΠ½Π΄Π°. ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ³ΡΠ΅ΡΠΈΠΌ Π΄Π²Π° ΠΏΡΡΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅, Π½ΠΎ ΡΡΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΠ΅Π΄Π° ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½.
ΠΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ ΡΠ°Π·ΠΈ Π·Π°ΡΠ²ΠΊΠ° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° 802 ΠΏΡΡΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°. Π Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ bytes_per sec β 300 kB/s ΡΠ΅ Π±ΡΠ΄Π΅ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΏΠ»ΡΡ ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΡΡ. Π ΠΊΠ°ΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠΌ ΡΠ°ΠΊΡΠ² ΠΏΠΎΡΠΎΠΊ.
ΠΠΎ! Π€Π°ΠΊΡ Π΅, ΡΠ΅ ΠΈΠΌΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅. Π Ρ ΠΎΡΠ°ΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ° "syslog".
Π Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ syslog, ΡΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ°ΡΠ΅ ΡΠ½ΠΈΠΌΠΊΠ° ΠΊΠ°ΡΠΎ ΡΠ°Π·ΠΈ. Π©Π΅ Π²Π·Π΅ΠΌΠ΅ΠΌ pgbench, ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΠΌΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΈ ΡΠ΅ Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ΅ ΡΠ»ΡΡΠΈ.
ΠΠ΅Π· Π»ΠΎΠ³Π²Π°Π½Π΅ - ΡΠΎΠ²Π° Π΅ ΠΊΠΎΠ»ΠΎΠ½Π°ΡΠ° ΠΎΡΠ»ΡΠ²ΠΎ. ΠΠΌΠ°ΠΌΠ΅ 161 000 TPS. Π‘ΡΡ syslog - ΡΠΎΠ²Π° Π΅ Π² Ubuntu 16.04 Π½Π° Amazon, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ 37 000 TPS. Π Π°ΠΊΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌ Π΄Π²Π° Π΄ΡΡΠ³ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅, ΡΠΎΠ³Π°Π²Π° ΡΠΈΡΡΠ°ΡΠΈΡΡΠ° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ°. Π’ΠΎΠ΅ΡΡ ΠΎΡΠ°ΠΊΠ²Π°Ρ ΠΌΠ΅ Π΄Π° ΡΠΏΠ°Π΄Π½Π΅, Π½ΠΎ Π½Π΅ Π² ΡΡΡΠ°ΡΠ° ΡΡΠ΅ΠΏΠ΅Π½.
Π Π½Π° CentOS 7, Π² ΠΊΠΎΠΉΡΠΎ journald ΡΡΡΠΎ ΡΡΠ°ΡΡΠ²Π°, ΠΏΡΠ΅Π²ΡΡΡΠ°ΠΉΠΊΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² Π΄Π²ΠΎΠΈΡΠ΅Π½ ΡΠΎΡΠΌΠ°Ρ Π·Π° Π»Π΅ΡΠ½ΠΎ ΡΡΡΡΠ΅Π½Π΅ ΠΈ Ρ.Π½., ΡΠΎΠ³Π°Π²Π° ΡΠΎΠ²Π° Π΅ ΠΊΠΎΡΠΌΠ°Ρ ΡΠ°ΠΌ, ΠΏΡΡΠΊΠ°ΠΌΠ΅ 44 ΠΏΡΡΠΈ Π² TPS.
Π ΡΠΎΠ²Π° Π΅, Ρ ΠΊΠΎΠ΅ΡΠΎ Ρ ΠΎΡΠ°ΡΠ° ΠΆΠΈΠ²Π΅ΡΡ. Π ΡΠ΅ΡΡΠΎ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ, ΡΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ΄Π½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ. ΠΠΊΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΌΡΠΊΠ½Π΅ΡΠ΅ ΠΎΡ syslog, ΠΌΠΎΠ»Ρ, ΠΌΠ°Ρ Π½Π΅ΡΠ΅ ΡΠ΅ ΠΎΡ Π½Π΅Π³ΠΎ.
- ΠΡΠ΅Π½Π΅ΡΠ΅ IOPS ΠΈ ΠΏΠΎΡΠΎΠΊΠ° Π½Π° Π·Π°ΠΏΠΈΡ.
- ΠΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Π²Π°ΡΠ°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅.
- ΠΠΊΠΎ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½ΠΎΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π΅ ΠΏΡΠ΅ΠΊΠ°Π»Π΅Π½ΠΎ Π³ΠΎΠ»ΡΠΌΠΎ, ΠΏΠΎΠΌΠΈΡΠ»Π΅ΡΠ΅ Π·Π° Π²Π·Π΅ΠΌΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±ΠΈ.
ΠΠΌΠ°ΠΌΠ΅ pg_stat_statements. ΠΠ°ΠΊΡΠΎ ΠΊΠ°Π·Π°Ρ , ΡΡΡΠ±Π²Π° Π΄Π° Π΅ ΡΠ°ΠΌ. Π ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ ΠΈ ΠΎΠΏΠΈΡΠ΅ΠΌ Π²ΡΡΠΊΠ° Π³ΡΡΠΏΠ° Π·Π°ΡΠ²ΠΊΠΈ ΠΏΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ Π½Π°ΡΠΈΠ½ Π²ΡΠ² ΡΠ°ΠΉΠ». Π ΡΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½Π° ΡΡΠ½ΠΊΡΠΈΡ Π² pgbench - ΡΠΎΠ²Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° Π²ΠΌΡΠΊΠ½Π΅ΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°ΠΉΠ»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΎΠΏΡΠΈΡΡΠ° β-fβ.
Π Π°Π·Π±ΠΈΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ "-f". Π ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΊΠ°ΠΆΠ΅ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° β@β Π² ΠΊΡΠ°Ρ ΠΊΠ°ΠΊΡΠ² Π΄ΡΠ» ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ° Π²ΡΠ΅ΠΊΠΈ ΡΠ°ΠΉΠ». Π’ΠΎΠ΅ΡΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ ΠΏΡΠ°Π²Π΅ΡΠ΅ ΡΠΎΠ²Π° Π² 10% ΠΎΡ ΡΠ»ΡΡΠ°ΠΈΡΠ΅, Π° ΡΠΎΠ²Π° Π² 20%. Π ΡΠΎΠ²Π° ΡΠ΅ Π½ΠΈ Π΄ΠΎΠ±Π»ΠΈΠΆΠΈ Π΄ΠΎ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ.
ΠΠ°ΠΊ ΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ? ΠΠ°ΠΊΡΠ² Π΄ΡΠ» ΠΈ ΠΊΠ°ΠΊ? Π’ΠΎΠ²Π° Π΅ ΠΌΠ°Π»ΠΊΠΎ Π½Π°ΡΡΡΠ°Π½Π°. ΠΠΌΠ°ΠΌΠ΅ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΠ΄ΡΠΊΡ
Π’ΠΎΠΉ Π΅ ΡΠΎΠ΄Π΅Π½ ΠΏΠΎ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΈΡΠΈΠ½ΠΈ. ΠΠΎΡΠ°Π΄ΠΈ ΠΏΡΠΈΡΠΈΠ½ΠΈ, ΡΠ΅ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π΅ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ. Π’ΠΎΠ΅ΡΡ ΠΈΠ΄Π²Π°ΡΠ΅, ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°ΡΠ΅ Π±Π°Π·Π°ΡΠ°, ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ. Π ΠΊΠ°ΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π·Π΄ΡΠ°Π²Π΅ΡΠΎ. ΠΠΊΠΎ ΡΡΠ΅ ΠΎΠΏΠΈΡΠ΅Π½ DBA, ΡΠΎΠ³Π°Π²Π° ΠΏΡΠ°Π²Π΅ΡΠ΅ health_check. Π Π°Π·Π³Π»Π΅Π΄Π°Ρ ΠΌΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈ ΠΈ Ρ.Π½. ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ OKmeter, ΡΠΎΠ³Π°Π²Π° ΡΡΡΠ°Ρ ΠΎΡΠ½ΠΎ. Π’ΠΎΠ²Π° Π΅ ΡΡΡΠ°Ρ ΠΎΡΠ΅Π½ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π·Π° Postgres. OKmeter.io β ΠΌΠΎΠ»Ρ, ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ Π³ΠΎ, ΡΠ°ΠΌ Π²ΡΠΈΡΠΊΠΎ Π΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠ΅. ΠΠ»Π°ΡΠ΅Π½ΠΎ Π΅.
ΠΠΊΠΎ Π½ΡΠΌΠ°ΡΠ΅ ΡΠ°ΠΊΡΠ², ΡΠΎΠ³Π°Π²Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π½ΡΠΌΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ. ΠΡΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠΌΠ° CPU, IO ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Ρ ΡΠ΅Π·Π΅ΡΠ²ΠΈ ΠΈ ΡΠΎΠ²Π° Π΅ Π²ΡΠΈΡΠΊΠΎ. Π ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΠΏΠΎΠ²Π΅ΡΠ΅. Π’ΡΡΠ±Π²Π° Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ Π°Π²ΡΠΎΠ²Π°ΠΊΡΡΠΌΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π½Π°ΡΠ° ΡΠΎΡΠΊΠ°, Π² io ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΡΠ΄Π΅Π»ΠΈΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π½Π°ΡΠ° ΡΠΎΡΠΊΠ° ΠΎΡ bgwriter ΠΈ ΠΎΡ Π·Π°Π΄Π½ΠΈΡΠ΅ ΡΠ°ΡΡΠΈ ΠΈ Ρ.Π½.
ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅, ΡΠ΅ ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΎΠΌΠ°Π³Π°Ρ Π½Π° Π³ΠΎΠ»ΡΠΌΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ, ΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²Π½Π΅Π΄ΡΠΈ Π½Π΅ΡΠΎ Π±ΡΡΠ·ΠΎ. Π’Π΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π±ΡΡΠ·ΠΎ Π΄Π° ΠΊΡΠΏΡΡ OKmeter. ΠΠΎΠΆΠ΅ Π±ΠΈ ΡΠ΅ Π³ΠΎ ΠΊΡΠΏΡΡ ΡΠ»Π΅Π΄ ΡΠ΅ΡΡ ΠΌΠ΅ΡΠ΅ΡΠ°. Π’Π΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π±ΡΡΠ·ΠΎ Π΄Π° Π΄ΠΎΡΡΠ°Π²ΡΡ Π½ΡΠΊΠΎΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ.
Π Π½ΠΈΠ΅ ΡΡΠΈΠ³Π½Π°Ρ ΠΌΠ΅ Π΄ΠΎ ΠΈΠ΄Π΅ΡΡΠ°, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π½ΠΈΡΠΎ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΎ, Ρ.Π΅. Π½Π΅ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Π½ΠΈΡΠΎ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ. ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ Π³ΠΎ Π½Π° Π²Π°ΡΠΈΡ Π»Π°ΠΏΡΠΎΠΏ ΠΈΠ»ΠΈ Π½Π° ΡΡΡΠ²ΡΡ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅, ΠΎΡΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ Π³ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅. Π ΡΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠ°: ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ ΡΠ°ΠΌΠΈΡ Postgres, ΠΊΠ°ΡΠΎ ΠΏΡΠ°Π²ΠΈ Π½ΡΠΊΠΎΠΈ Π»Π΅ΠΊΠΈ Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ ΠΈ Π½ΠΈΡΠΎ Π½ΡΠΌΠ° Π΄Π° ΡΠ΅ ΠΏΡΠΎΠ²Π°Π»ΠΈ.
ΠΠ°ΡΠ΅ΠΊΠΎΡ ΠΌΠ΅ Π³ΠΎ Postgres-checkup. ΠΡ ΠΌΠ΅Π΄ΠΈΡΠΈΠ½ΡΠΊΠ° Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° ΡΠΎΠ²Π° Π΅ ΡΠ΅Π΄ΠΎΠ²Π΅Π½ Π·Π΄ΡΠ°Π²Π΅Π½ ΠΏΡΠ΅Π³Π»Π΅Π΄. ΠΠΊΠΎ Π΅ Π½Π° Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π½Π° ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ°, ΡΠΎΠ³Π°Π²Π° Π΅ ΠΊΠ°ΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°. ΠΡΠ°Π²ΠΈΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΊΠΎΠ»Π°ΡΠ° ΡΠΈ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ΅ΡΡ ΠΌΠ΅ΡΠ΅ΡΠ° ΠΈΠ»ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π°, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΠΌΠ°ΡΠΊΠ°ΡΠ°. ΠΡΠ°Π²ΠΈΡΠ΅ Π»ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π²Π°ΡΠ°ΡΠ° Π±Π°Π·Π°? Π’ΠΎΠ΅ΡΡ ΠΏΡΠ°Π²ΠΈΡΠ΅ Π»ΠΈ Π·Π°Π΄ΡΠ»Π±ΠΎΡΠ΅Π½ΠΈ ΠΈΠ·ΡΠ»Π΅Π΄Π²Π°Π½ΠΈΡ ΡΠ΅Π΄ΠΎΠ²Π½ΠΎ? Π’ΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ. ΠΠΊΠΎ ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΡ, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π½Π°ΠΏΡΠ°Π²Π΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, ΡΠΎΠ²Π° Π΅ Π½Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π²Π°ΠΆΠ½ΠΎ.
Π Π½ΠΈΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ°ΠΊΡΠ² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. ΠΠ°ΠΏΠΎΡΠ½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π° Π΅Π΄Π²Π° ΠΏΡΠ΅Π΄ΠΈ ΠΎΠΊΠΎΠ»ΠΎ ΡΡΠΈ ΠΌΠ΅ΡΠ΅ΡΠ°. Π’ΠΎΠΉ Π΅ ΠΎΡΠ΅ ΠΌΠ»Π°Π΄, Π½ΠΎ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠ°.
Π‘ΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°ΠΉ-βΠ²Π»ΠΈΡΡΠ΅Π»Π½ΠΈΡΠ΅β Π³ΡΡΠΏΠΈ ΠΎΡ Π·Π°ΡΠ²ΠΊΠΈ - ΠΎΡΡΠ΅Ρ K003 Π² Postgres-checkup
Π ΠΈΠΌΠ° Π³ΡΡΠΏΠ° Π΄ΠΎΠΊΠ»Π°Π΄ΠΈ K. Π’ΡΠΈ Π΄ΠΎΠΊΠ»Π°Π΄Π° Π΄ΠΎΡΠ΅Π³Π°. Π ΠΈΠΌΠ° ΡΠ°ΠΊΡΠ² Π΄ΠΎΠΊΠ»Π°Π΄ K003. ΠΠΌΠ° Π³ΠΎΡΠ½Π°ΡΠ° ΡΠ°ΡΡ ΠΎΡ pg_stat_statements, ΡΠΎΡΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎ total_time.
ΠΠΎΠ³Π°ΡΠΎ ΡΠΎΡΡΠΈΡΠ°ΠΌΠ΅ Π³ΡΡΠΏΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ ΠΏΠΎ total_time, Π½Π°ΠΉ-ΠΎΡΠ³ΠΎΡΠ΅ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π³ΡΡΠΏΠ°ΡΠ°, ΠΊΠΎΡΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π½ΠΈ Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ, Ρ.Π΅. ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ΡΡΡΡΠΈ. ΠΠ°ΡΠΎ Π½Π°ΠΈΠΌΠ΅Π½ΡΠ²Π°ΠΌ Π³ΡΡΠΏΠΈ Π·Π°ΡΠ²ΠΊΠΈ? ΠΠ°ΡΠΎΡΠΎ ΠΈΠ·Ρ Π²ΡΡΠ»ΠΈΡ ΠΌΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅. Π’ΠΎΠ²Π° Π²Π΅ΡΠ΅ Π½Π΅ ΡΠ° Π·Π°ΡΠ²ΠΊΠΈ, Π° Π³ΡΡΠΏΠΈ ΠΎΡ Π·Π°ΡΠ²ΠΊΠΈ, Ρ.Π΅. ΡΠ΅ ΡΠ° Π°Π±ΡΡΡΠ°Ρ ΠΈΡΠ°Π½ΠΈ.
Π Π°ΠΊΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΠΎΡΠ³ΠΎΡΠ΅ Π½Π°Π΄ΠΎΠ»Ρ, ΡΠ΅ ΠΎΠ±Π»Π΅ΠΊΡΠΈΠΌ ΡΠ΅ΡΡΡΡΠΈΡΠ΅ ΡΠΈ ΠΈ ΡΠ΅ ΠΎΡΠ»ΠΎΠΆΠΈΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, Π² ΠΊΠΎΠΉΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°Π΄ΡΡΡΠΎΠΈΠΌ. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΡ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠΏΠ΅ΡΡΠΈΡΠ΅ ΠΏΠ°ΡΠΈ.
ΠΠΎΠΆΠ΅ Π±ΠΈ ΡΠΎΠ²Π° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΡ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ΅ Π³ΡΠΈΠΆΠΈΠΌ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅, Π·Π°ΡΠΎΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ ΡΠ΅Π΄ΠΊΠΈ, Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΠ°Π΄Π½ΠΈ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠΎΠ²Π΅ΠΊ ΡΠ°ΠΊΠ° 15 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ. ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ ΡΠ΅ ΡΠ° ΡΠΎΠ»ΠΊΠΎΠ²Π° ΡΠ΅Π΄ΠΊΠΈ, ΡΠ΅ Π½Π΅ Π³ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Π½ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ΅ΡΡΡΡΠΈ.
ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠΈ Π² ΡΠ°Π·ΠΈ ΡΠ°Π±Π»ΠΈΡΠ°? ΠΠ°ΠΏΡΠ°Π²ΠΈΡ ΠΌΠ΅ Π΄Π²Π΅ ΠΌΠΎΠΌΠ΅Π½ΡΠ½ΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ. Postgres_checkup ΡΠ΅ Π²ΠΈ Π΄Π°Π΄Π΅ Π΄Π΅Π»ΡΠ° Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»: ΠΎΠ±ΡΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ, ΡΠ΅Π΄ΠΎΠ²Π΅, shared_blks_read ΠΈ Ρ.Π½. Π’ΠΎΠ²Π° Π΅, Π΄Π΅Π»ΡΠ°ΡΠ° Π΅ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½Π°. ΠΠΎΠ»Π΅ΠΌΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ pg_stat_statements Π΅, ΡΠ΅ ΡΠΎΠΉ Π½Π΅ ΠΏΠΎΠΌΠ½ΠΈ ΠΊΠΎΠ³Π° Π΅ Π±ΠΈΠ» Π½ΡΠ»ΠΈΡΠ°Π½. ΠΠΊΠΎ pg_stat_database ΠΏΠΎΠΌΠ½ΠΈ, ΡΠΎΠ³Π°Π²Π° pg_stat_statements Π½Π΅ ΠΏΠΎΠΌΠ½ΠΈ. ΠΠΈΠΆΠ΄Π°ΡΠ΅, ΡΠ΅ ΠΈΠΌΠ° ΡΠΈΡΠ»ΠΎ ΠΎΡ 1 000 000, Π½ΠΎ Π½Π΅ Π·Π½Π°Π΅ΠΌ ΠΎΡΠΊΡΠ΄Π΅ Π±ΡΠΎΠΈΠΌ.
Π ΡΡΠΊ Π·Π½Π°Π΅ΠΌ, ΡΡΠΊ ΠΈΠΌΠ°ΠΌΠ΅ Π΄Π²Π΅ ΠΌΠΎΠΌΠ΅Π½ΡΠ½ΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ. ΠΠ½Π°Π΅ΠΌ, ΡΠ΅ Π΄Π΅Π»ΡΠ°ΡΠ° Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ Π΅ 56 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ. ΠΠ½ΠΎΠ³ΠΎ ΠΊΡΠ°ΡΡΠΊ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π». Π‘ΠΎΡΡΠΈΡΠ°Π½ΠΎ ΠΏΠΎ total_time. Π ΡΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π΄ΠΈΡΠ΅ΡΠ΅Π½ΡΠΈΡΠ°ΠΌΠ΅, Ρ.Π΅. ΡΠ°Π·Π΄Π΅Π»ΡΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΏΠΎ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎΡΡ. ΠΠΊΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΠΌ Π²ΡΠ΅ΠΊΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π» Π½Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ Π±ΡΠΎΡ ΠΎΠ±Π°ΠΆΠ΄Π°Π½ΠΈΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π°, total_time per second Π΅ Π»ΡΠ±ΠΈΠΌΠΈΡΡ ΠΌΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π». ΠΠ·ΠΌΠ΅ΡΠ²Π° ΡΠ΅ Π² ΡΠ΅ΠΊΡΠ½Π΄ΠΈ Π·Π° ΡΠ΅ΠΊΡΠ½Π΄Π°, Ρ.Π΅. ΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΡΠ° ΠΎΡΠ½Π΅Π»ΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π½ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈ ΡΠ°Π·ΠΈ Π³ΡΡΠΏΠ° Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΡΠ΅ΠΊΡΠ½Π΄Π°. ΠΠΊΠΎ Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΡΠ΅ΠΊΡΠ½Π΄Π° Π² ΡΠ΅ΠΊΡΠ½Π΄Π° ΡΠ°ΠΌ, ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π΄Π°Π΄Π΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π΅Π΄Π½ΠΎ ΡΠ΄ΡΠΎ. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π». ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅, ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΏΡΠΈΡΡΠ΅Π» Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ ΠΎΡ ΠΏΠΎΠ½Π΅ ΡΡΠΈ ΡΠ΄ΡΠ°.
Π’ΠΎΠ²Π° Π΅ Π½Π°ΡΠ΅ΡΠΎ Π½ΠΎΡ-Ρ Π°Ρ, ΡΠ°ΠΊΠΎΠ²Π° Π½Π΅ΡΠΎ Π½Π΅ ΡΡΠΌ Π²ΠΈΠΆΠ΄Π°Π» Π½ΠΈΠΊΡΠ΄Π΅. ΠΠΎΠ»Ρ, ΠΎΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ - ΡΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π΅ΡΠΎ - ΡΠ΅ΠΊΡΠ½Π΄Π° Π² ΡΠ΅ΠΊΡΠ½Π΄Π°. ΠΠΎΠ½ΡΠΊΠΎΠ³Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π²Π°ΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π΅ 100%, ΡΠΎΠ³Π°Π²Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ ΡΠ°Ρ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°, ΡΠΎΠ΅ΡΡ ΡΡΠ΅ ΠΏΡΠ΅ΠΊΠ°ΡΠ°Π»ΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ ΡΠ°Ρ, ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΉΠΊΠΈ ΡΠ°ΠΌΠΎ ΡΠ΅Π·ΠΈ Π·Π°ΡΠ²ΠΊΠΈ.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°. ΠΠ½Π°Π΅ΠΌ ΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅Π΄Π° Π² ΡΠ΅ΠΊΡΠ½Π΄Π° Π΅ Π²ΡΡΠ½Π°Π»ΠΎ.
Π ΡΠΎΠ³Π°Π²Π° ΠΈΠΌΠ° ΠΈ Π½Π΅ΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ. ΠΠΎΠ»ΠΊΠΎ shared_buffers ΡΠ΅ΡΠ΅ΠΌ Π·Π° ΡΠ΅ΠΊΡΠ½Π΄Π° ΠΎΡ ΡΠ°ΠΌΠΈΡΠ΅ shared_buffers. ΠΠΎΠΏΠ°Π΄Π΅Π½ΠΈΡΡΠ° Π²Π΅ΡΠ΅ Π±ΡΡ Π° Π½Π°Π»ΠΈΡΠ΅ ΠΈ Π½ΠΈΠ΅ Π²Π·Π΅Ρ ΠΌΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΠΊΠ΅ΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠ»ΠΈ ΠΎΡ Π΄ΠΈΡΠΊΠ°. ΠΡΡΠ²ΠΈΡΡ Π²Π°ΡΠΈΠ°Π½Ρ Π΅ Π±ΡΡΠ·, Π° Π²ΡΠΎΡΠΈΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ»ΠΈ Π΄Π° Π½Π΅ Π΅ Π±ΡΡΠ·, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΠΈΡΡΠ°ΡΠΈΡΡΠ°.
Π Π²ΡΠΎΡΠΈΡΡ Π½Π°ΡΠΈΠ½ Π·Π° Π΄ΠΈΡΠ΅ΡΠ΅Π½ΡΠΈΡΠ°Π½Π΅ Π΅ Π΄Π° ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΠΈ Π±ΡΠΎΡΡ Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ Π² ΡΠ°Π·ΠΈ Π³ΡΡΠΏΠ°. ΠΡΠ² Π²ΡΠΎΡΠ°ΡΠ° ΠΊΠΎΠ»ΠΎΠ½Π° Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΏΠΎ Π΅Π΄Π½Π° Π·Π°ΡΠ²ΠΊΠ°, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° Π·Π°ΡΠ²ΠΊΠ°. Π ΡΠΎΠ³Π°Π²Π° Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ - ΠΊΠΎΠ»ΠΊΠΎ ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΡΠ° Π±ΠΈΠ»ΠΈ Π² ΡΠ°Π·ΠΈ Π·Π°ΡΠ²ΠΊΠ°. ΠΠ½Π°Π΅ΠΌ ΠΊΠ°ΠΊ ΡΠ΅ Π΄ΡΡΠΆΠΈ ΡΠ°Π·ΠΈ Π·Π°ΡΠ²ΠΊΠ° ΡΡΠ΅Π΄Π½ΠΎ. ΠΠ° Π²ΡΡΠΊΠ° Π·Π°ΡΠ²ΠΊΠ° Π±ΡΡ Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ 101 ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄ΠΈ. Π’ΠΎΠ²Π° Π΅ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½Π°ΡΠ° ΠΌΠ΅ΡΡΠΈΠΊΠ°, ΠΊΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ.
ΠΠΎΠ»ΠΊΠΎ ΡΠ΅Π΄Π° Π΅ Π²ΡΡΠ½Π°Π»Π° ΡΡΠ΅Π΄Π½ΠΎ Π²ΡΡΠΊΠ° Π·Π°ΡΠ²ΠΊΠ°? ΠΠΈΠΆΠ΄Π°ΠΌΠ΅ 8, ΡΠ΅ ΡΠ°Π·ΠΈ Π³ΡΡΠΏΠ° ΡΠ΅ Π·Π°Π²ΡΡΡΠ°. Π‘ΡΠ΅Π΄Π½ΠΎ ΠΊΠΎΠ»ΠΊΠΎ Π΅ Π²Π·Π΅ΡΠΎ ΠΎΡ ΠΊΠ΅ΡΠ° ΠΈ ΠΏΡΠΎΡΠ΅ΡΠ΅Π½ΠΎ. ΠΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΊΠ΅ΡΠΈΡΠ°Π½ΠΎ Π΄ΠΎΠ±ΡΠ΅. Π‘ΠΎΠ»ΠΈΠ΄Π½ΠΈ ΠΏΠΎΠΏΠ°Π΄Π΅Π½ΠΈΡ Π·Π° ΠΏΡΡΠ²Π° Π³ΡΡΠΏΠ°.
Π ΡΠ΅ΡΠ²ΡΡΡΠΈΡΡ ΠΏΠΎΠ΄Π½ΠΈΠ· Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ ΡΠ΅Π΄ Π΅ ΠΊΠ°ΠΊΡΠ² ΠΏΡΠΎΡΠ΅Π½Ρ ΠΎΡ ΠΎΠ±ΡΠ°ΡΠ° ΡΡΠΌΠ°. ΠΠΌΠ°ΠΌΠ΅ ΠΎΠ±Π°ΠΆΠ΄Π°Π½ΠΈΡ. ΠΠ° ΠΊΠ°ΠΆΠ΅ΠΌ 1 000 000. Π ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΊΡΠ² ΠΏΡΠΈΠ½ΠΎΡ ΠΈΠΌΠ° ΡΠ°Π·ΠΈ Π³ΡΡΠΏΠ°. ΠΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΠΏΡΡΠ²Π°ΡΠ° Π³ΡΡΠΏΠ° Π΄ΠΎΠΏΡΠΈΠ½Π°ΡΡ Ρ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ 0,01%. Π’ΠΎΠ΅ΡΡ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π΅ Π±Π°Π²Π΅Π½, ΡΠ΅ Π½Π΅ Π³ΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π² ΠΎΠ±ΡΠ°ΡΠ° ΠΊΠ°ΡΡΠΈΠ½Π°. Π Π²ΡΠΎΡΠ°ΡΠ° Π³ΡΡΠΏΠ° Π΅ 5% Π½Π° ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠΈ. Π’ΠΎΠ΅ΡΡ 5% ΠΎΡ Π²ΡΠΈΡΠΊΠΈ ΠΎΠ±Π°ΠΆΠ΄Π°Π½ΠΈΡ ΡΠ° Π²ΡΠΎΡΠ°ΡΠ° Π³ΡΡΠΏΠ°.
Total_time ΡΡΡΠΎ Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ. ΠΡΠ΅ΠΊΠ°ΡΠ°Ρ ΠΌΠ΅ 14% ΠΎΡ ΠΎΠ±ΡΠΎΡΠΎ ΡΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΏΡΡΠ²Π°ΡΠ° Π³ΡΡΠΏΠ° Π·Π°ΡΠ²ΠΊΠΈ. Π Π·Π° Π²ΡΠΎΡΠΎΡΠΎ - 11% ΠΈ Ρ.Π½.
ΠΡΠΌΠ° Π΄Π° Π½Π°Π²Π»ΠΈΠ·Π°ΠΌ Π² ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ, Π½ΠΎ ΠΈΠΌΠ° ΡΡΠ½ΠΊΠΎΡΡΠΈ. ΠΠΎΠΊΠ°Π·Π²Π°ΠΌΠ΅ Π³ΡΠ΅ΡΠΊΠ° Π² Π³ΠΎΡΠ½Π°ΡΠ° ΡΠ°ΡΡ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ°Π²Π½ΡΠ²Π°ΠΌΠ΅, ΠΌΠΎΠΌΠ΅Π½ΡΠ½ΠΈΡΠ΅ ΡΠ½ΠΈΠΌΠΊΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠ»ΡΠ²Π°Ρ, Ρ.Π΅. Π½ΡΠΊΠΎΠΈ Π·Π°ΡΠ²ΠΊΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠ°Π΄Π½Π°Ρ ΠΈ Π²Π΅ΡΠ΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΡΠΈΡΡΡΡΠ²Π°Ρ Π²ΡΠ² Π²ΡΠΎΡΠ°ΡΠ°, Π΄ΠΎΠΊΠ°ΡΠΎ Π½ΡΠΊΠΎΠΈ Π½ΠΎΠ²ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ²ΡΡ. Π ΡΠ°ΠΌ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ Π³ΡΠ΅ΡΠΊΠ°ΡΠ°. ΠΠΊΠΎ Π²ΠΈΠ΄ΠΈΡΠ΅ 0, ΡΠΎΠ²Π° Π΅ Π΄ΠΎΠ±ΡΠ΅. ΠΡΠΌΠ° Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ Π³ΡΠ΅ΡΠΊΠΈ. ΠΠΊΠΎ ΠΏΡΠΎΡΠ΅Π½ΡΡΡ Π½Π° Π³ΡΠ΅ΡΠΊΠ° Π΅ Π΄ΠΎ 20%, Π²ΡΠΈΡΠΊΠΎ Π΅ Π½Π°ΡΠ΅Π΄.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ Π²ΡΡΡΠ°ΠΌΠ΅ ΠΊΡΠΌ Π½Π°ΡΠ°ΡΠ° ΡΠ΅ΠΌΠ°. Π’ΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΡΠ°Π±ΠΎΡΠΈΠΌ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ. ΠΠ·ΠΈΠΌΠ°ΠΌΠ΅ Π³ΠΎ ΠΎΡΠ³ΠΎΡΠ΅ Π½Π°Π΄ΠΎΠ»Ρ ΠΈ Π²ΡΡΠ²ΠΈΠΌ, Π΄ΠΎΠΊΠ°ΡΠΎ Π΄ΠΎΡΡΠΈΠ³Π½Π΅ΠΌ 80% ΠΈΠ»ΠΈ 90%. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠΎΠ²Π° ΡΠ° 10-20 Π³ΡΡΠΏΠΈ. Π Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠΌ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° pgbench. ΠΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΡΠ°ΠΌ. ΠΠΎΠ½ΡΠΊΠΎΠ³Π° ΡΠΎΠ²Π°, Π·Π° ΡΡΠΆΠ°Π»Π΅Π½ΠΈΠ΅, Π½Π΅ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π²Π°. Π Π² Postgres 12 ΡΠ΅ ΠΈΠΌΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄.
Π ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΠ΅ΡΠ΅Π»ΠΈΠΌ 80-90% ΠΎΠ±ΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½. ΠΠ°ΠΊΠ²ΠΎ ΡΠ»Π΅Π΄Π²Π° Π΄Π° ΠΏΠΎΡΡΠ°Π²Ρ ΡΠ»Π΅Π΄ β@β? ΠΠΈΠ΅ Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΎΠ±Π°ΠΆΠ΄Π°Π½ΠΈΡΡΠ°, Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠΎΠ»ΠΊΠΎ Π»ΠΈΡ Π²ΠΈ ΠΈΠΌΠ° ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌΠ΅, ΡΠ΅ Π΄ΡΠ»ΠΆΠΈΠΌ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ Π²ΠΈ ΡΡΠΊ. ΠΡ ΡΠ΅Π·ΠΈ ΠΏΡΠΎΡΠ΅Π½ΡΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π΄Π° Π±Π°Π»Π°Π½ΡΠΈΡΠ°ΠΌΠ΅ Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ pgbench ΠΈ ΠΎΡΠΈΠ²Π°ΠΌΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°.
ΠΠΌΠ°ΠΌΠ΅ ΠΈ K001 ΠΈ K002.
K001 Π΅ Π΅Π΄ΠΈΠ½ Π³ΠΎΠ»ΡΠΌ Π½ΠΈΠ· Ρ ΡΠ΅ΡΠΈΡΠΈ ΠΏΠΎΠ΄Π½ΠΈΠ·Π°. Π’ΠΎΠ²Π° Π΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π½Π° ΡΠ΅Π»ΠΈΡ Π½ΠΈ ΡΠΎΠ²Π°Ρ. ΠΠΈΠΆΡΠ΅ Π²ΡΠΎΡΠ°ΡΠ° ΠΊΠΎΠ»ΠΎΠ½Π° ΠΈ Π²ΡΠΎΡΠΈΡ ΠΏΠΎΠ΄ΡΠ΅Π΄. ΠΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ ΠΎΠΊΠΎΠ»ΠΎ Π΅Π΄Π½Π° ΡΠ΅ΠΊΡΠ½Π΄Π° ΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Π² ΡΠ΅ΠΊΡΠ½Π΄Π°, Ρ.Π΅. Π°ΠΊΠΎ ΠΈΠΌΠ° Π΄Π²Π΅ ΡΠ΄ΡΠ°, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ Π΅ Π΄ΠΎΠ±ΡΠ΅. Π©Π΅ ΠΈΠΌΠ° ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ 75% ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅Ρ. Π ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΡΠ°ΠΊΠ°. ΠΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ 10 ΡΠ΄ΡΠ°, ΡΠΎΠ³Π°Π²Π° ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ ΡΠ΅ ΡΠΌΠ΅ ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΈ. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡΠ΅Π½ΠΈΠΌ ΡΠ΅ΡΡΡΡΠΈΡΠ΅.
K002 Π΅ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π°Π· Π½Π°ΡΠΈΡΠ°ΠΌ ΠΊΠ»Π°ΡΠΎΠ²Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ, Ρ.Π΅. ΠΠΠΠΠ ΠΠ’Π, ΠΠΠͺΠΠΠΠ’Π, ΠΠΠ’Π£ΠΠΠΠΠΠ ΠΠΠ, ΠΠΠ’Π ΠΠΠΠΠ. Π ΠΎΡΠ΄Π΅Π»Π½ΠΎ SELECT FOR UPDATE, Π·Π°ΡΠΎΡΠΎ Π΅ Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½Π΅.
Π ΡΡΠΊ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°ΠΊΠ»ΡΡΠΈΠΌ, ΡΠ΅ SELECT Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΡΠΈΡΠ°ΡΠ΅Π» - 82% ΠΎΡ Π²ΡΠΈΡΠΊΠΈ ΠΎΠ±Π°ΠΆΠ΄Π°Π½ΠΈΡ, Π½ΠΎ Π² ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ - 74% Π² total_time. Π’ΠΎΠ΅ΡΡ, ΡΠ΅ ΡΠ΅ Π½Π°ΡΠΈΡΠ°Ρ ββββΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ°Ρ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΠ΅ΡΡΡΡΠΈ.
Π ΡΠ΅ Π²ΡΡΡΠ°ΠΌΠ΅ Π½Π° Π²ΡΠΏΡΠΎΡΠ°: βΠΠ°ΠΊ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡΠ΅ shared_buffers?β ΠΠ°Π±Π΅Π»ΡΠ·Π²Π°ΠΌ, ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΎΠ²Π΅ ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π°Ρ Π½Π° ΠΈΠ΄Π΅ΡΡΠ° - Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²Π° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΠ΅Π»Π½Π°ΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ, Ρ.Π΅. ΠΊΠ°ΠΊΠ²Π° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΠ΅Π»Π½Π°ΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠ²Π° Π² TPS ΠΈΠ»ΠΈ QPS.
Π Π½ΠΈΠ΅ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π΄Π° ΠΈΠ·ΡΡΡΠ³Π½Π΅ΠΌ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π° ΠΎΡ ΠΊΠΎΠ»Π°ΡΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ°. ΠΡΠΎ ΡΠΎΡΠ½ΠΎ 311 Π² ΡΠ΅ΠΊΡΠ½Π΄Π° Π·Π° ΠΈΠ·Π±ΡΠ°Π½ΠΈ.
ΠΠΎ Π½ΠΈΠΊΠΎΠΉ Π½Π΅ ΠΊΠ°ΡΠ° Π΄ΠΎ ΡΠ°Π±ΠΎΡΠ° ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π²ΠΊΡΡΠΈ Ρ ΠΏΡΠ»Π½Π° ΡΠΊΠΎΡΠΎΡΡ. Π’ΠΎΠ²Π° Π΅ Π³Π»ΡΠΏΠ°Π²ΠΎ. Π‘ΡΡΠΎΡΠΎ Ρ Π±Π°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ. ΠΠ΅ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° ΠΊΠ°ΡΠ°ΠΌΠ΅ Ρ ΠΏΡΠ»Π½Π° ΡΠΊΠΎΡΠΎΡΡ ΠΈ Π½ΠΈΠΊΠΎΠΉ Π½Π΅ Π³ΠΎ ΠΏΡΠ°Π²ΠΈ. ΠΠΈΠΊΠΎΠΉ Π½Π΅ ΠΆΠΈΠ²Π΅Π΅ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΈΠΌΠ° 100% CPU. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π½ΡΠΊΠΎΠΉ ΠΆΠΈΠ²Π΅Π΅, Π½ΠΎ ΡΠΎΠ²Π° Π½Π΅ Π΅ Π΄ΠΎΠ±ΡΠ΅.
ΠΠ΄Π΅ΡΡΠ° Π΅, ΡΠ΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΊΠ°ΡΠ°ΠΌΠ΅ Ρ 20 ΠΏΡΠΎΡΠ΅Π½ΡΠ° ΠΎΡ ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅ΡΠ°, Π·Π° ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½Π΅ Π½Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 50%. Π Π½ΠΈΠ΅ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π΄Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΡΠ΅Π°ΠΊΡΠΈΡ ΠΏΡΠ΅Π΄ΠΈ Π²ΡΠΈΡΠΊΠΎ Π·Π° Π½Π°ΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ. Π’ΠΎΠ΅ΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠΈ Π·Π°Π²ΡΡΡΠΈΠΌ ΠΊΠΎΠΏΡΠ΅ΡΠ°ΡΠ°, Π·Π° Π΄Π° ΠΈΠΌΠ° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ ΠΏΡΠΈ 20% ΡΠΊΠΎΡΠΎΡΡ, ΡΡΠ»ΠΎΠ²Π½ΠΎ. Π’ΠΎΠ²Π° Π΅ ΠΈΠ΄Π΅Ρ, ΠΊΠΎΡΡΠΎ Π½ΠΈΠ΅ ΡΡΡΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π² Π½Π°ΡΠΈΡΠ΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ.
Π Π½Π°ΠΊΡΠ°Ρ ΠΏΡΠ΅ΠΏΠΎΡΡΠΊΠΈ:
- ΠΠ°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ Π½Π°ΠΏΡΠ°Π²Π΅ΡΠ΅ Database Lab.
- ΠΠΊΠΎ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡΠ°Π²Π΅ΡΠ΅ Π³ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ²Π°Π½Π΅, ΡΠ°ΠΊΠ° ΡΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π·Π³ΡΠ½Π΅ Π·Π° ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ - ΠΈΠ³ΡΠ°ΠΉΡΠ΅ ΠΈ Π³ΠΎ ΠΈΠ·Ρ Π²ΡΡΠ»Π΅ΡΠ΅. ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΎΠ±Π»Π°ΡΠΈ, ΡΠΎΠ³Π°Π²Π° ΡΠΎΠ²Π° ΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°, Ρ.Π΅. ΠΈΠΌΠ°ΠΉΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΎΡΡΠΎΡΡΠΈ.
- ΠΡΠ΄ΠΈ Π»ΡΠ±ΠΎΠΏΠΈΡΠ΅Π½. Π Π°ΠΊΠΎ Π½Π΅ΡΠΎ Π½Π΅ Π΅ Π½Π°ΡΠ΅Π΄, ΠΏΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Ρ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ ΠΊΠ°ΠΊ ΡΠ΅ Π΄ΡΡΠΆΠΈ. ΠΠ°Π½ΡΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, Π·Π° Π΄Π° ΡΠ΅ ΠΎΠ±ΡΡΠΈΡΠ΅, Π·Π° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ Π±Π°Π·Π°ΡΠ°.
- Π ΡΠ΅ ΡΡΡΠ΅ΠΌΠ΅ΡΠ΅ ΠΊΡΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΡΠ΅Π°ΠΊΡΠΈΡ.
- Π Π½Π΅ ΡΠ΅ ΡΡΡΠ°Ρ ΡΠ²Π°ΠΉΡΠ΅ ΠΎΡ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈΡΠ΅ Π½Π° Postgres. ΠΠΎΠ³Π°ΡΠΎ ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Ρ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ, ΡΡΡΠ±Π²Π° Π΄Π° Π·Π½Π°Π΅ΡΠ΅ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈ. Π’Π°ΠΌ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈ, ΡΠ°ΠΌ Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΎΠ±ΡΡΠ½Π΅Π½ΠΎ.
- Π ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΉΡΠ΅ ΠΈΠ·ΠΏΡΠ°Π²Π½ΠΎΡΡΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΡΠ΅Π΄ΠΎΠ²Π½ΠΎ, ΠΏΠΎΠ½Π΅ Π²Π΅Π΄Π½ΡΠΆ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΡΡΠΈ ΠΌΠ΅ΡΠ΅ΡΠ°, ΡΡΡΠ½ΠΎ ΠΈΠ»ΠΈ Postgres-checkup.
ΠΡΠΏΡΠΎΡΠΈ
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ! ΠΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π½Π΅ΡΠΎ.
ΠΠ²Π΅ ΠΏΠ°ΡΡΠ΅ΡΠ°.
ΠΠ°, Π΄Π²Π° Π±ΡΠΎΡ. Π‘Π°ΠΌΠΎ Π΄Π΅ΡΠΎ Π½Π΅ ΡΠ°Π·Π±ΡΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΎ. ΠΠΎΠ³Π°ΡΠΎ ΠΠ°Π½ΡΠΈ ΠΈ Π°Π· ΡΠ°Π±ΠΎΡΠΈΠΌ, ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΠΌΠ΅ ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈΠ»ΠΈ ΡΡΠ»Π° Π³ΡΡΠΏΠ°?
ΠΠΌΠ°ΠΌΠ΅ Π΄Π΅Π»ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ ΠΎΠ±ΡΡΠ½Π΅ΡΠ΅ ΡΠ°ΠΌ ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π½Π°Π²Π΅Π΄Π½ΡΠΆ. ΠΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅, ΡΠ΅ ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π³ΡΠ΅ΡΠ½ΠΈ ΠΈΠ·Π²ΠΎΠ΄ΠΈ.
Π΄Π° ΠΠ°ΡΠΎ ΠΏΠΎΠΏΠΈΡΠ°Ρ ? ΠΠ°ΡΠΎΡΠΎ Π΅ ΡΡΡΠ΄Π½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΠΆΠ΄Π°Ρ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ°ΡΠ΅ ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. Π‘ΡΠ΅Π³Π½Π΅ΡΠ΅ Π³ΠΎ, Π²ΠΈΠΆΡΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ. ΠΠ·Π³ΠΎΠ½ΠΈΡ Π³ΠΎ. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π·Π°ΠΏΠΎΡΠ²Π°ΡΠ΅ ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΡΡΠ΅Π³Π½Π΅ΡΠ΅ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, Π½ΠΎ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΡΠΈΡΡΠ°ΡΠΈΡΡΠ°, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅. ΠΠΎ Π΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΄Π° ΡΠ΅ΡΡΠ²Π°ΡΠ΅ Π΅Π΄Π½Π° ΠΈΠ΄Π΅Ρ. ΠΡΠ΅ΡΠ° Π½ΠΈ Ρ ΡΡΠΌΠ½Π° ΠΈΠ΄Π΅Ρ. ΠΠΌΠ°Ρ ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π±Π»ΠΈΠ·ΠΊΠ° ΡΠΈΡΡΠ°ΡΠΈΡ. ΠΠΌΠ°ΡΠ΅ Π΄Π²Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. Π Π½Π΅ ΠΌΠΎΠΆΠ°Ρ ΠΌΠ΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π·Π°ΡΠΎ ΠΈΠΌΠ° Π³ΠΎΠ»ΡΠΌΠ° ΡΠ°Π·Π»ΠΈΠΊΠ°. Π Π²ΡΠ·Π½ΠΈΠΊΠ½Π° ΠΈΠ΄Π΅ΡΡΠ°, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π΄ΠΈΡ ΠΎΡΠΎΠΌΠΈΡΡΠ°, Π·Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΠΈ Π΄Π° ΠΎΡΠΊΡΠΈΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠ²Π° Π΅ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ°. ΠΠΎΠΆΠ΅ΡΠ΅ Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π°ΡΠ° ΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ Π΅Π΄Π½Π°ΠΊΠ²ΠΈ, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΅Π΄Π½Π° ΡΠ΅ΡΠ²ΡΡΡ ΠΈ Ρ.Π½. ΠΡΠΈΡΠΊΠΎ Π΅ Π³ΡΠ²ΠΊΠ°Π²ΠΎ.
Π ΠΈΠΌΠ° ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ Π²ΡΠΏΡΠΎΡ. ΠΡΠΎΠ΅ΠΊΡΡΡ Π΅ ΠΌΠ»Π°Π΄ ΠΈ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°. ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π²Π΅ΡΠ΅ Π΅ Π³ΠΎΡΠΎΠ²Π°, ΠΈΠΌΠ° Π»ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅?
Π‘ΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡ Π»ΠΈΠ½ΠΊ ΡΠ°ΠΌ ΠΊΡΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅. Π’Π°ΠΌ Π»ΠΈ Π΅. ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠ° Π²ΡΠ΅ ΠΎΡΠ΅ Π³ΠΈ Π½ΡΠΌΠ°. Π’ΡΡΡΡ ΡΡΠΌΠΈΡΠ»Π΅Π½ΠΈΡΠΈ. Π Π³ΠΈ Π½Π°ΠΌΠΈΡΠ°ΠΌ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΌ. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΊΠΎ. ΠΡΠΊΠΎΠΉ Π²Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Ρ ΠΌΠ΅Π½, Π½ΡΠΊΠΎΠΉ ΠΏΠΎΠΌΠΎΠ³Π½Π° ΠΈ Π½Π°ΠΏΡΠ°Π²ΠΈ Π½Π΅ΡΠΎ ΡΠ°ΠΌ. Π Π°ΠΊΠΎ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°ΡΠ΅ ΠΎΡ ΡΠ°Π·ΠΈ ΡΠ΅ΠΌΠ°, Π΄Π°ΠΉΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½Π° Π²ΡΡΠ·ΠΊΠ° ΠΊΠ°ΠΊΠ²ΠΎ Π»ΠΈΠΏΡΠ²Π°.
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΈΠ·Π³ΡΠ°Π΄ΠΈΠΌ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠΈΡΡΠ°, ΠΌΠΎΠΆΠ΅ Π±ΠΈ ΡΠ΅ ΠΈΠΌΠ° ΠΎΠ±ΡΠ°ΡΠ½Π° Π²ΡΡΠ·ΠΊΠ°. ΠΠ° Π²ΠΈΠ΄ΠΈΠΌ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΈ!
ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅! ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! ΠΠΈΠ΄ΡΡ , ΡΠ΅ ΠΈΠΌΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Amazon. ΠΠΌΠ° Π»ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π·Π° ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ° Π½Π° GSP?
ΠΠΎΠ±ΡΡ Π²ΡΠΏΡΠΎΡ. ΠΠ°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΏΡΠ°Π²ΠΈΠΌ. Π Π½ΠΈΠ΅ Π³ΠΎ Π·Π°ΠΌΡΠ°Π·ΠΈΡ ΠΌΠ΅ Π·Π°ΡΠ΅Π³Π°, Π·Π°ΡΠΎΡΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΡΠΏΠ΅ΡΡΠΈΠΌ ΠΏΠ°ΡΠΈ. Π’ΠΎΠ΅ΡΡ ΠΈΠΌΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° run on localhost. ΠΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΌΠΈ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΈ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Π»ΠΎΠΊΠ°Π»Π½ΠΎ. ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, ΡΠΎΠ²Π° Π΅, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ°Π²ΠΈΠΌ. ΠΡΠ°Π²Ρ ΡΠΎΠ²Π° Π² Getlab, ΡΠ°ΠΌ Π² GSP. ΠΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΡΠΌΠΈΡΡΠ» Π΄Π° ΠΏΡΠ°Π²ΠΈΠΌ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠ°Π²Π° ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΡ, Π·Π°ΡΠΎΡΠΎ Google Π½ΡΠΌΠ° Π΅Π²ΡΠΈΠ½ΠΈ ΠΌΠ΅ΡΡΠ°. ΠΠΌΠ° ??? ΡΠ»ΡΡΠ°ΠΈ, Π½ΠΎ ΡΠ΅ ΠΈΠΌΠ°Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ. ΠΡΡΠ²ΠΎ, ΡΠ΅ Π²ΠΈΠ½Π°Π³ΠΈ ΠΈΠΌΠ°Ρ ΡΠ°ΠΌΠΎ 70% ΠΎΡΡΡΡΠΏΠΊΠ° ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠΈ ΠΈΠ³ΡΠ°Π΅ΡΠ΅ Ρ ΡΠ΅Π½Π°ΡΠ° ΡΠ°ΠΌ. ΠΠ° ΡΠΏΠΎΡΠΎΠ²Π΅ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°ΠΌΠ΅ ΡΠ΅Π½Π°ΡΠ° Ρ 5-10%, Π·Π° Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΠ° Π΄Π° Π±ΡΠ΄Π΅ΡΠ΅ ΡΠΈΡΠ½Π°ΡΠΈ. Π’ΠΎΠ΅ΡΡ ΡΠΏΠ΅ΡΡΡΠ²Π°ΡΠ΅ ΠΏΠ΅ΡΠ½Π°, Π½ΠΎ ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π²ΠΈ Π±ΡΠ΄Π°Ρ ΠΎΡΠ½Π΅ΡΠΈ ΠΏΠΎ Π²ΡΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅. ΠΠΊΠΎ Π½Π°Π΄Π΄Π°Π²Π°ΡΠ΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠΎ ΠΎΡ Π΄ΡΡΠ³ΠΈΡΠ΅, ΡΠ΅ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ±ΠΈΡ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ. Google ΠΈΠΌΠ° ΡΡΠ²ΡΠ΅ΠΌ Π΄ΡΡΠ³Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°. Π ΠΈΠΌΠ° ΠΎΡΠ΅ Π΅Π΄Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΎΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ - ΠΆΠΈΠ²Π΅ΡΡ ΡΠ°ΠΌΠΎ 24 ΡΠ°ΡΠ°. Π ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΏΡΠΎΠ²Π΅Π΄Π΅ΠΌ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½Ρ Π·Π° 5 Π΄Π½ΠΈ. ΠΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π° Π½Π° ΠΏΠ΅ΡΠ½Π°; ΠΏΠ΅ΡΠ½Π°ΡΠ° ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°Ρ Ρ ΠΌΠ΅ΡΠ΅ΡΠΈ.
ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅! ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! Π‘ΠΏΠΎΠΌΠ΅Π½Π°Ρ ΡΠ΅ ΠΏΡΠ΅Π³Π»Π΅Π΄. ΠΠ°ΠΊ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°ΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈΡΠ΅ Π½Π° stat_statements?
ΠΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΡ Π²ΡΠΏΡΠΎΡ. ΠΠΎΠ³Π° Π΄Π° Π²ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ. ΠΠ°ΠΊΡΠ°ΡΠΊΠΎ, ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ Π΅ Π΄Π²ΠΈΠΆΠΈΠ» Π½Π°Π±ΠΎΡΡΡ ΠΎΡ Π³ΡΡΠΏΠΈ Π·Π°ΡΠ²ΠΊΠΈ: ΠΊΠΎΠ»ΠΊΠΎ ΡΠ° ΠΏΠ°Π΄Π½Π°Π»ΠΈ ΠΈ ΠΊΠΎΠ»ΠΊΠΎ Π½ΠΎΠ²ΠΈ ΡΠ° ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈ. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ Π΄Π²Π° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ: total_time ΠΈ calls, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΈΠΌΠ° Π΄Π²Π΅ Π³ΡΠ΅ΡΠΊΠΈ. Π Π½ΠΈΠ΅ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΠΏΡΠΈΠ½ΠΎΡΠ° Π½Π° ΠΏΠ»Π°Π²Π°ΡΠΈΡΠ΅ Π³ΡΡΠΏΠΈ. ΠΠΌΠ° Π΄Π²Π΅ ΠΏΠΎΠ΄Π³ΡΡΠΏΠΈ: Π·Π°ΠΌΠΈΠ½Π°Π»ΠΈ ΠΈ ΠΏΡΠΈΡΡΠΈΠ³Π½Π°Π»ΠΈ. ΠΠ° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΡΠ² Π΅ ΠΏΡΠΈΠ½ΠΎΡΡΡ ΠΈΠΌ ΠΊΡΠΌ ΠΎΠ±ΡΠ°ΡΠ° ΠΊΠ°ΡΡΠΈΠ½Π°.
ΠΠ΅ ΡΠ΅ Π»ΠΈ ΡΡΡΠ°Ρ ΡΠ²Π°ΡΠ΅, ΡΠ΅ ΡΠ΅ ΡΠ΅ ΠΎΠ±ΡΡΠ½Π΅ ΡΠ°ΠΌ Π΄Π²Π° ΠΈΠ»ΠΈ ΡΡΠΈ ΠΏΡΡΠΈ ΠΏΡΠ΅Π· Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ½ΠΈΡΠ΅ ΡΠ½ΠΈΠΌΠΊΠΈ?
Π’ΠΎΠ΅ΡΡ ΠΏΠ°ΠΊ Π»ΠΈ ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Ρ Π° ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ?
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π·ΠΈ Π·Π°ΡΠ²ΠΊΠ° Π²Π΅ΡΠ΅ Π΅ Π±ΠΈΠ»Π° ΠΈΠ·ΠΏΡΠ΅Π²Π°ΡΠ²Π°Π½Π° Π²Π΅Π΄Π½ΡΠΆ, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΅ ΠΏΡΠΈΡΡΠΈΠ³Π½Π°Π»Π° ΠΈ Π΅ Π±ΠΈΠ»Π° ΠΈΠ·ΠΏΡΠ΅Π²Π°ΡΠ΅Π½Π° ΠΎΡΠ½ΠΎΠ²ΠΎ, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΅ Π΄ΠΎΡΠ»Π° ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΈ Π΅ Π±ΠΈΠ»Π° ΠΈΠ·ΠΏΡΠ΅Π²Π°ΡΠ΅Π½Π° ΠΎΡΠ½ΠΎΠ²ΠΎ. Π ΡΠΈ ΡΠΈ ΠΈΠ·ΡΠΈΡΠ»ΠΈΠ» Π½Π΅ΡΠΎ ΡΡΠΊ ΠΈ ΠΊΡΠ΄Π΅ Π΅ Π²ΡΠΈΡΠΊΠΎ?
ΠΠΎΠ±ΡΡ Π²ΡΠΏΡΠΎΡ, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΡΡΡΡΠΈΠΌ.
ΠΠ· Π½Π°ΠΏΡΠ°Π²ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π΅ΡΠΎ. ΠΠ΅ΡΠ΅ ΠΏΠΎ-ΠΏΡΠΎΡΡΠΎ, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, Π½Π°ΠΏΡΠ°Π²ΠΈΡ Π³ΠΎ ΡΠ°ΠΌ. ΠΠΎ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π½ΡΠ»ΠΈΡΠ°ΠΌ, Π΄Π° Π½ΡΠ»ΠΈΡΠ°ΠΌ stat_statements ΠΈ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΌΠΎΠΌΠ΅Π½ΡΠ½Π°ΡΠ° ΡΠ½ΠΈΠΌΠΊΠ°, ΡΠ΅ ΠΈΠΌΠ° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΠ°ΡΡ, ΠΊΠΎΡΡΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΄ΠΎΡΡΠΈΠ³Π° ΡΠ°Π²Π°Π½Π° Π½Π° ΡΠΎΠ²Π° ΠΊΠΎΠ»ΠΊΠΎ stat_statements ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π½Π°ΡΡΡΠΏΠ°Ρ ΡΠ°ΠΌ. Π ΠΌΠΎΠ΅ΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π΅, ΡΠ΅ Π½Π°ΠΉ-Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π½ΠΈΡΠΎ Π½Π΅ Π΅ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅Π½ΠΎ.
ΠΠ° Π΄Π°.
ΠΠΎ Π½Π΅ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌ ΠΊΠ°ΠΊ ΠΈΠ½Π°ΡΠ΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²Ρ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ.
ΠΠ° ΡΡΠΆΠ°Π»Π΅Π½ΠΈΠ΅, Π½Π΅ ΠΏΠΎΠΌΠ½Ρ ΡΠΎΡΠ½ΠΎ Π΄Π°Π»ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠ΅ΠΊΡΡΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ° ΡΠ°ΠΌ ΠΈΠ»ΠΈ queryid Ρ pg_stat_statements ΠΈ ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ°ΠΌΠ΅ Π²ΡΡΡ Ρ Π½Π΅Π³ΠΎ. ΠΠΊΠΎ ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ°ΠΌΠ΅ Π²ΡΡΡ Ρ queryid, ΡΠΎΠ³Π°Π²Π° Π½Π° ΡΠ΅ΠΎΡΠΈΡ ΡΡΠ°Π²Π½ΡΠ²Π°ΠΌΠ΅ ΡΡΠ°Π²Π½ΠΈΠΌΠΈ Π½Π΅ΡΠ°.
ΠΠ΅, ΡΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·Π³ΠΎΠ½Π΅Π½ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ½ΠΈΡΠ΅ ΡΠ½ΠΈΠΌΠΊΠΈ ΠΈ Π΄Π° Π΄ΠΎΠΉΠ΄Π΅ ΠΎΡΠ½ΠΎΠ²ΠΎ.
Π‘ΡΡ ΡΡΡΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ?
ΠΠ°.
Π©Π΅ ΠΏΡΠΎΡΡΠΈΠΌ ΡΠΎΠ²Π°. ΠΠΎΠ±ΡΡ Π²ΡΠΏΡΠΎΡ. Π’ΡΡΠ±Π²Π° Π΄Π° Π³ΠΎ ΠΏΡΠΎΡΡΠΈΠΌ. ΠΠΎ Π·Π°ΡΠ΅Π³Π° ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Π΅ ΠΈΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ 0...
Π’ΠΎΠ²Π°, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, Π΅ ΡΡΠ΄ΡΠΊ ΡΠ»ΡΡΠ°ΠΉ, Π½ΠΎ Π±ΡΡ ΡΠΎΠΊΠΈΡΠ°Π½, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°Π·Π±ΡΠ°Ρ , ΡΠ΅ stat_statemetns ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΌΠ΅ΡΡΠΈ ΡΠ°ΠΌ.
ΠΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠ° Π² Pg_stat_statements. ΠΠ°ΡΡΠΊΠ½Π°Ρ ΠΌΠ΅ ΡΠ΅ Π½Π° ΡΠ°ΠΊΡΠ°, ΡΠ΅ Π°ΠΊΠΎ ΡΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΠ»ΠΈ track_utility =, Π²Π°ΡΠΈΡΠ΅ Π½Π°Π±ΠΎΡΠΈ ΡΡΡΠΎ ΡΠ΅ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Ρ.
ΠΠ°, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅.
Π Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ java hibernate, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ, ΡΠΎΠ³Π°Π²Π° Ρ Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Π·Π°ΠΏΠΎΡΠ²Π° Π΄Π° ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° ΡΠ°ΠΌ. Π ΡΠΎΠΌ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π°ΠΊΡΠ°Ρ ΠΈΠΌΠ°ΡΠ΅ 50-100 Π³ΡΡΠΏΠΈ. Π ΡΠ°ΠΌ Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎ. ΠΠ΄ΠΈΠ½ ΠΎΡ Π½Π°ΡΠΈΠ½ΠΈΡΠ΅ Π·Π° Π±ΠΎΡΠ±Π° Ρ ΡΠΎΠ²Π° Π΅ Π΄Π° ΡΠ²Π΅Π»ΠΈΡΠΈΡΠ΅ pg_stat_statements.max.
ΠΠ°, Π½ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π½Π°Π΅ΡΠ΅ ΠΊΠΎΠ»ΠΊΠΎ. Π ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½ ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΎ Π΄ΡΡΠΆΠΈΠΌ ΠΏΠΎΠ΄ ΠΎΠΊΠΎ. ΠΠ· ΡΠΎΠ²Π° ΠΏΡΠ°Π²Ρ. Π’ΠΎΠ΅ΡΡ ΠΈΠΌΠ°ΠΌ pg_stat_statements.max. Π Π²ΠΈΠΆΠ΄Π°ΠΌ, ΡΠ΅ ΠΊΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° ΠΌΠΎΠΌΠ΅Π½ΡΠ½Π°ΡΠ° ΡΠ½ΠΈΠΌΠΊΠ° Π½Π΅ Π±ΡΡ Π΄ΠΎΡΡΠΈΠ³Π½Π°Π» 70%. ΠΠΎΠ±ΡΠ΅, Π·Π½Π°ΡΠΈ Π½Π΅ ΡΠΌΠ΅ Π·Π°Π³ΡΠ±ΠΈΠ»ΠΈ Π½ΠΈΡΠΎ. ΠΠ° Π½ΡΠ»ΠΈΡΠ°ΠΌΠ΅. Π ΠΏΠ°ΠΊ ΡΠΏΠ΅ΡΡΡΠ²Π°ΠΌΠ΅. ΠΠΊΠΎ ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΠ½ΠΈΠΌΠΊΠ° Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠ° ΠΎΡ 70, Π½Π°ΠΉ-Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π½Π΅ ΡΡΠ΅ Π·Π°Π³ΡΠ±ΠΈΠ»ΠΈ Π½ΠΈΡΠΎ ΠΎΡΠ½ΠΎΠ²ΠΎ.
Π΄Π° ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π²Π΅ΡΠ΅ Π΅ 5. Π ΡΠΎΠ²Π° Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠ°.
ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π΄Π°.
Video:
PS ΠΡ ΡΠ²ΠΎΠ΅ ΠΈΠΌΠ΅ ΡΠ΅ Π΄ΠΎΠ±Π°Π²Ρ, ΡΠ΅ Π°ΠΊΠΎ Postgres ΡΡΠ΄ΡΡΠΆΠ° ΠΏΠΎΠ²Π΅ΡΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ Π² ΡΠ΅ΡΡΠΎΠ²Π°ΡΠ° ΡΡΠ΅Π΄Π°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com