á¨ááŽáá áłáááŤáá ááᣠâPostgreSQL á áááľá°áŤá¨á á¨á˘ááąáľáľáŞ á ááŤá¨áĽáĄ á áá¨á ááśá˝ áá áŤá áá¨áŤáá˝â á¨áááá ááᣠáĽáá˛áŤáᥠáĽáááááłááá˘
Shared_buffers = 25% - áĽá áá áááľ áľáá˝? áááľ áá áá? áá - ááááá ááá áŤááá áľ - ááá á áĽááľá ááłá áá á°áᢠáááá áĽáá´áľ áŤááá?
ᨠpostgresql.conf áááŞáŤáá˝á "áĽáá° áľáá á°á" á¨ááá¨áĽ ááłá ááá á¨áĽ ááá á áá áá. á ááá áľááŤá "á ááśáá˛ááľ" áĽááłáł ááá á¨á˝ááá˝ áĽá áĽááá˝ áá áŤááá áľ ááá á áá°áá ááá áá á :
- á áá¨á ááśá˝ áá á áĽáĽá á¨á°á¨ááᥠáá¨áŤáὠᣠá áŤáľ á°á ᣠá áĽááľ áĽá á á°áťá áá á âááááľâ á ááťáá áľ áááł áá¨áááá áŁ
- á¨á˛á˘á¤áá¤áľ áĽá á¨áľááá° ááá áŁá áŞáŤáľá á áĽáááľ áá¨áłáľá˘
ááᲠCLI á áá áá
áľá áłáłá¤á áá¨áŤáá˝ áĽáááááŤáá. áá á¨áľáľáľáľ ááŤáľ á áá á¨ááá áłáŞá ááá˘
áľá áĽá áľáá˝á˘ ᨠPostgres áá á¨14 áááłáľ á áá áááľá˘ á ááŤáł á¨áá á áŤá áľáľáľá áŠáŁááŤáá˝ á°ááľáá°ááᢠPostgres áá á áĽá á ááá áŚáł áĽá á áá ááááá˘
áĽáá˛áá ᨠRuPostgres áĄáľá á Meetup ááᣠá á áá 2á á°á¨áᢠááľ á ááľ áá° 2 á°áá˝ áĽááááŁáá. RuPostgres.org.
áĽá ááááľá á¨áᎠá á°ááŤáŠ áŽááá¨ááśá˝ áá˛áá˝ áĽá á¨á áአááᎠááłáłá¤á á á°ááá áááľáľááŹáľ áááááľ á ááá˘
áĽá áŁáááľ áĽááľ á ááłáľ ᨠPostgres á¨ááá¨á áááá´á 11 á¨á°ááľ á°áá˝ á¨áá áłáá áááŹáŤááá˘
áĽá áá á á¨áĽááľ á ááłáľ á ááľ áłá°ááᣠá¨2010 ááᎠááááŁáľá á¨ááľáľááŹáľ áá áá á áá á¨áĽá áľáŤ áá á¨á°áá°á áĽá¨ááľ á áááťááᢠá¨á˛á˘á¤ á¨áľáŤ áá°áľ áá áŤá á áĽáá°á°ááá áĽá áá áŤá á á¨áĽá áĽáŤ á ááá áĽá á áá ááá áĽááłáá áľ á áľáááááᢠáĽá áĽáá á¨áá á˝áá áĽááłá áá˛áŤáá á á°áĽáŠ, áááá ááá á áŤáľ á°á ááľá¨á á ááĽá.
áĽá ááá ááá áŠá áľááá á, á áĽááááš á°áá áá˝ á á°áá ááľáĽ áá áŠ. áĽá áĽá á áľááľá á áŤáľ á°á á°á°ááˇáᣠááá˝ ááᢠá áá áá á°á¨ááŞá˘ áááľáᣠáá áá á ááŤáł ááłáŞáŤáá˝ ááአáááŁá á¨áááá ááłáĽ á áľá¨áľááᣠáááľáᣠáĽá ááĽá áŤáá¸á á¨ááἠááłáá˝á ááľá°áłá°á ááťá áááľ áááá ᨠDBA áľáááśá˝á á áŤáľ á°á á¨áá°áŤ á ááľ á áááľ ááľá¨áá˘
áá áŞáááľ á¨áá¨á°ááľá á áŤáŤáľáľá
- âá¨áĽá áĽááśá˝â áĽá á¨ááłá°ááľ ááááŤáá˝ - 8 áᢠááá 25% á¨á°ááŠ_buffers áŤááá áĽá á°á á ááááᢠáľá á¨á°ááŠ_buffers áĽá ááá á ááááá˘
- áááľáŽá "ááľáŁá"
áá áááá?
- áĽá á¨ááá°ááĽáŤá¸á áĽá á¨áááłáĽá¨á á¨áááťá¸áľ ááááá˝ áááŤáᢠá ááááą áá á¨áááą ááá á áááľ ááłáŚá˝ áĽá á Open Source ááľáĽ á á áĽááá á¨ááááĽáŤá¸á á¨á°ááŤáŠ ááłáŞáŤáá˝ áááŤá, áááľá á áááľ ááá ááľáĽ áá°á¨áľ áĽáá°áááá. á á°á¨ááŞá ᣠá˛áŹáśá˝ á áá ᣠááá áááááśá˝ á á°ááŁá áááľ ááá áá¸áᢠá áá á¨ááá°áŤááᣠá áááĽáá áááľ áá áĽáá°áááᣠááá° áá¨áľ áľá˝ááá á˘
- á á°á¨ááŞá áĽááá á ááááá˝ á áá áá á ááłááľ áááľ áááŤá¸áá, áĽááá ááłáŞáŤáá˝ á á ááŤáł áŠáŁááŤáá˝ ááľáĽ: á¨áľáá˝ á ááŽá˝ áĽáľá¨ áľááá áŠáŁááŤáá˝.
áá áá áĽáá´áľ áĽáŤá°á áá?
á ááááŞáŤ á¨á˛á˘á¤ áá á°ááŁá á¨á áĽááśá˝á ááá áᣠá¨áá áŁá á፠á ááá˝á áá°ááŤáľ áĽá á¨ááłá°ááľá á¨áá¨ááἠá á°á¨á᪠ááááá˝á áááá áĽá á ááááá ááłá°á ááá˘
á áá áĽáá˛á á°ááá áˇáᢠááľáľáá áĽáááá¨áłáá, á ááľ ááá áĽááŤáá, ááá áá á ááłááľ ááááŽá˝ áááľááá. á¨á áá á áĽááá áááá áĽááááŤáá, áĽááá áá á áĽáá˝á, áĽá á á ááľ ááá á áá ááááľ áá ááľá¨á áĽááłááĽá áĽáá¨áłáá.
áĽá áááľ á ááŤá¨áŚá˝ á á. Pg_stat_statements áááá áá ááá˝á áááá¨áľ ááŁáŞ áááľá ááᢠáĽá pgBadgerá á áá áá ᨠPostgres áááἠááľáłááťáá˝ áľáá°áá˘
áĽáŤááłááą á ááŤá¨áĽ á¨áŁáľ áľáááśá˝ á ááľ. á ááááŞáŤá á ááŤá¨áĽ áááá áááááá˝ á ááĽá°áá. áĽá áĄáľáášá áŤá¨á * á¨á á¨á´áá ááľáĽ á áᾠᨠ"?" ááá "$" ᨠPostgres 10. áá á¨áá¨á á áá ááá á¨á´á áľáŤá áááá á ááá á. á áááŞáŤá áá á áŁá á¨á°á፠áá. áĽááĽáá áŤáá°áááá áĽá´áľ áĽá፠á¨á°á°áŠáŁ á¨áá¨á á áá á ááľ ááááᢠá¨á áá á¨áĄá 90% á¨áááá áĽá´áľ á¨áá¨áŠáŁ á¨ááľáľááŹáľ áľáłá˛áľá˛ááľá áľáááŤáá á¨á´áŞá áá°áť ááá˝ ááááᢠáĽá áá áľáá á¨pg_stat_statements ááľááľ ááᣠááá áĽááłá á ááłááľ áľáŤáá˝ á ááŤááľ áá áá¸áá˘
á¨áá áľáá°á áľáá ááłáą áĽáá° á ááľ á°áἠ"log_min_duration_statement = 0" ááááľ á áááťá ááᢠáĽá áľááá ááłá áĽáááááŤáá. á áá áá á¨áľ, áááá ááľá á áŤáŠáľá. áĽá á áŁá ááŁá á¨áá á ááłááľ áá áá á¨áá°á áá á áŤáá ááĽáľ ááá áá˝áááŁááá áá á¨ááá˘áŤá á áłá˝ áľááá á áŤáŠáľáá˘
á˛á˘á¤áá˝ á¨ááŤááá¸áá á˝ááŽá˝ áĽáá´áľ áááłá?
áááłá, á ááłááľ á˝áá á ááá°áá. áĽááá áá áá áá°á¨áá? ááᢠá¨ááá á ááłááľ áá á°ááłáłá áá á á¨ááá ááá áłá°áááá ᢠDBA á¨áááᣠáĽááá˛á ááá áľ á áá ᢠáĽá á ááľ áĽáť ááá áá˝áá. áĽá á¨áľáľáľáľ áá á áá áá á. áĽá áĽááľá áá° áááľ áĽáá°áááą áŤáľáŁá. áĽá áááľ áŤáŤá áą á˛á˘á¤áá˝ áĽááłá áá° áááľáŁ áĽááľ áááľášá˘ áĽá áááŤá á˘áá´ááľ á˛ááĽáŠáŁ á¨áá¨áłá áááá áŤá¨áááĄáŁ ááĽááľ áĽá áááá˘áá˝ á áľá°áľ áááá˝ ááľáĽ áĽáá˛áŤáľááᥠáŤá°áááłáᢠá áá áĽá¨áá áŤáá áá ááááą á¨ááą ááá ááᢠáĽá áá á˝áá ááá˘
- áá áŽá˝á áŤáľá°áŤááá˘
- á¨áá¨á á áááá˝á áľáĽáľáĽ áŤááťášá˘
- ᨠSQL áá ááá áĽáŤáą áááአ(áá á áŁá á áľá¸ááŞá ááááľ áá).
- á á á áá¨áአ(á á áĽááááš ááłáŽá˝ ááá ááááľ)á˘
á áĽááá áááŽá˝ áá áĽá ááá á áᢠá ááľáľááŹáľ ááľáĽ áĽá áĽááłáá˝ á áᢠáááá áĽá ááá á áᢠá ááľáľááŹáľ ááľáĽ áĽá á˘áá´ááśá˝ á áᣠááá ââááŁá¤ á áááá˝á ááľáá ááľá¨áłá¸áᢠáĽá áá áá ááłáá á áá áľ, áĽá áá DBA áŤááá á°áá˝ áĽáá á áľááľá áĽáá°áááááą áĽáá˛á°áá¸á á¨ááŤá°áá áá. áá áá á á°áááś ááá¨áłáľ ááááá á 10 áááłáľ ááĽááľ áŤáľáááááłá.
áĽáá áĽá á¨áá áĽáá á áľááľ áá á°áá ááᢠá´áááá áĽáá˛áá áááá ááá ááľá¨á áĽááááá, áĽá á áá áá ááľáĽ ááá ááľáŁá áľááľ á¨áá.
á¨áĽááá°á á áááľ ááłááá˝
áá áá á¨áŤá´á á¨áᎠá˘áŤááľ á áááľ ááŽáááśá˝ ááľáĽ á°ááááťááᢠáá á¨áĽáá ááĽá áááŁáŞ_áľáłá˛áľá˛ááľ_ááá 1 áá áĽáŠ áĽáá°áá áááá¨ááᢠáĽáşáŁ á áááľ ááľáĽ áĽáááá¨áá˘
áĽá áĽáá áá, á¨áĽáá ááłáŞáŤ á áá áá á¨áááľ á ááľ á áá, áᏠáĽá¨á°ááááá áŁáá á¨ááἠááł áá á á°á°á¨á áá¨áŤáá˝ áĽáá, áá áĽáá°áá ᨠáĽá áá áĽáá° áá áááłá°á áĽáá˝ááá.
áĽá ááá áá¨áŤ ááá á á ááĽá. á áŤáľ áááá˝á áŤáá áá.
- á¨ááááŞáŤá á áŤáŁá˘ áá. á¨áááľáá ááŤá áĽááááááᢠáĽá áá° á ááłááľ áŠáŁá፠ááĽáź áá áľááá áĽáá° áááľ á áááľ áááľáá áĽáá˛á°áĄá áĽáááŤá¸áááᢠááĽáŤááłááłá˝á ááśá˝áŁ áĽáá°áá á áááľ áááľáá á˘áŤááľ á ááľ ááŤá áĽáááááᢠáá á á ááá ááá á Google ááľáĽ áŤá áááŁá áá˝á áá ᣠááá á áľááá á°ááłáłá áááľáá áĽáááááᢠáááľá á áŤáŁá˘áá áĽáá°áá ááá á áĽááááá. áĽá á á áŤáŁá˘ á˝áá°-ááłáĽ ááľáĽ áááá ᨠPostgres áľáŞáľ áĽááŤáľáłááá˘
- ááá°áá ááá á¨áĽááłá˝á ááá ááᢠáá á¨áá¨á ááľ ááᢠá á ááŤáł ááááśá˝ ááá á áá˝áá. áĽáá´áľ áĽáá°áá á áłááááá˘
- áŚáľá°áá ááá áááą áá. áá á áŁá á áľá¸ááŞá áá ááá˘
- á áŤá°áá ááá á°áá á¨áááá¨áá¨á áááľá á¨áá áá á¨ááááłáľá¨á ááᢠá á áá áą ááľáĽ á ááľ ááá á¨á፠á áá áááŞáŤáá˝ áááἠáĽáá˝ááá ááá á˘áá´ááľ ááá á áĽáá˝ááá áĽáá á ááá°.
áá¨áŤ áĽá¨áááá ááᢠá¨pg_stat_ ááááŤáá˝ áĽááᢠá á፠á áŠá á¨ááá ááá áá. á áá á áŠá - áá áĽáá°á°á¨á°á°.
á á፠ááŁáŞ_áľáłá˛áľá˛ááľ_áłáááľ = 100 ᣠá áá =1 áá áĽáá°á¨áłá áĽááŤááᢠá á á ááá ááá ááá á 000% á°áťá˝áá.
áá° áłá˝ á¨á°á¸áĽáá áá á¨pgBadger ááá á¨pg_stat_statements á¨áĽáŤá áĄáľáá˝ áááŤáᢠáááľ á ááŤáŽá˝ á áᢠá ááłááľ áĽáŤá á 88% áááˇá áĽááŤáá. áĽá áĽáá á¨áá ááľáľá á ááŤá¨áĽ áááŁá. ááá á°áá áĽáá áľáááá áŤá á ááľáŁá˝á á¨á áá áááá áĽáá˝áááᢠá áľáłá˛áľá˛ááľ áá áĽáá°á°áá ᨠáá¨áłáľ áŤáľáááááłá. á áľáłá˛áľá˛ááľ ááľáĽ áĽá áŁáá˛áá˝ ááá áá° ááĽá áá¤áśá˝ áááŤá á˘
ááá áááá á áá˝áá ááá áá "ALTER TABLE ... ALTER COLUMN" áŤáľáá áĽá 100 áŁáá˛áá˝á áá°áá á ááľ áľáłá˛áľá˛ááľ ááááąá˘ áĽá á¨á፠á áá áá¨áŤ áá áááľá°á áĽáá°á¨áłá áá¨ááἠáĽáá˝áááᢠáááᢠáá áľááá ááľá áĽááľáá áĽá á ááľáĽ áá áłááá á áá¨á áá á¨á°áá°á¨á° ááłá áĽááľáá°áá á¨áá¨áłá á¨áá ááľáľá á áŤááľ ááá˘
á¨ááá˝ á áŤáŁá˘áá˝ áĽááľ ááłááá˝á˘ ááĽá á ááłáľ á áá°á ááľáĽ ᨠCI áá¨áŤáá˝ áá áŠ. áĽá á áľááááá á áĽáᎠááľáĽ áŤá ááááá ááŽáááľ áŤá á ááśááľáľ áá¨áŤáá˝ á ááááá˘
á ááá˝ á˘ááąáľáľáŞáá˝áĄ á á áŞáŹá˝áᣠá á ááśáá˛á á˘ááąáľáľáŞ ááľáĽáŁ á¤áŽáłáááááľá áľáááľá˝áŁ áá¨áŤáá˝áá áááľá¨á áĽáľáá á ááᢠá ááľá ááá á¨áĽáá á ááĽáł áá° á áá á ááľááłá ááá áá˛áŤáá ááŞá áá° áľáŤáŠ á áááľáᢠáááłá, á¨áááľ ááľááľ á á.
á¨ááá˝ á˘ááąáľáľáŞáá˝ ááá¨áł áá°áá°á፠áá ááľá¨áľ áĽáá˝ááá.
á ááááŞáŤ, áአá áŤáŁá˘ á áá. áá° áááľ á áἠáá, áá á áἠá áá°áá. ááá áŁá áŞá ááŤá˝, áá°áá á¨áá˝á áĽá á á°áťá áá á á ááśáá˛á ááá á áá áľ. áĽáá˛áá áááá áľáá°á áááŤááľ áአááłáŞáŤáá˝ ááአáááŁá.
ááááŁáľáᣠá ááŽááá á áľááłá áĽá áľáá áᣠáĽáŤááłááą ááááľá á¨áááá ááá áááĽááľ á áááľ ááżááŞáŤ ááľáĽ áŤáá áŤáá° áĽáľá ááá¨ááᢠá°á¨á᪠á¨áááááŞáŤ ááłáŞáŤáá˝ á áá. á á á¨á áá á ááŽááá ááááłáľ á á á á¨ááá¸áá á¨á áá á¨áŁáľ áááá˝á áá¸á¨á áĽáá˝áááᢠᨠPostgres áá á°ááłáłáᢠá á ááłááľ á ááŁááá˝ á áá¨áŤ áá áá á¨áá áá áááἠááľáłááťá ááááľ áĽáá˝áááᢠáĽá áá áá á áááľ ááľáĽ ááľá¨á á ááááá. auto_explainá á áá áá áá áá áááááľ áĽá áľ áááᣠáĽáá˝áááá˘
áĽá áĽááłááŠáľáŁ á¨áá°á á°á¨á á ááśáá˝á áááľ áááá á°ááá áĽáá°ááááá áááľ ááᢠáá ááá áŤáá áľ áĽáá°áá áá, áľááá áĽá áá¨áŤáá˝ áĽáá˛ááŠ, á áĽá¨áľ áá áá.
ááᲠCLI - âá¨ááἠááł á¤á° áá¨áŤâ áá á¨áľ
áĽáá áá á ááá á á°á¨áá. áááľáᣠáľááĽááá ááłáŚá˝ á¨á°ááááŠáľ á á°á ááᣠá¨á ááľ á ááľ áá°á á ááľ ááᢠáĽá áá°á á˛á á áááľ ááá ááľáĽ ááᲠCLI á¨ááŁááľ á ááᢠáá á¨áá¨á ááľ ááĽáŤáśáŞ áááááŁáľ áá°á¨áľ áá.
á áĽááἠá áááľ áá áá áĽá á áᢠáĽá፠áĽá ááłáŚá˝ á áᢠáá áá á á¨áá áááľ ááťáá á¨ááá ááá ááá ááᢠáĽá á ááľ ááłáĽ á˛áá¨á - ááááľáá 40 ááľááŽá˝á áľáá°áá ááá áá° IO ááááłá, á¨ááŤá á ááľ áá¨áŤ ááľá¨áá˝á áĽá áá áĽáá°á°áá ᨠááá¨áłáľ á á áá áááá áááł ááá¨áľ áĽá á áá áá áááľá°áŤá¨á áĽááááŤáá. áááľá á ááľ áá¨áŤ áĽáŤá°á¨áá ááᢠáááłá, á¨áá ááá áĽááľá°áŤáááá áĽá á áá¨á¨áť áá áĽáá°áá¨á°áľ áĽáááá¨áłáá. áĽá áá áá á áááľ ááľáĽ á áá°ááá. á¨ááłáĄ áᏠááá áá ááá˘
áá á¨áľ áá ፠áá˝áá? áá á á áŤáŁá˘á áá ፠áá˝áá, áááľá á ááááá áŚáł ááŤá°áááľ áá˝áá, áĽáá˛áŤáá á MacBook áá ááľáŹáľ áá˝áá. áśá¨á áĽááááááᣠáĽáááľá˘ ááźá áá. á á ááłááľ áááłáá˝ á áááľáá áá ááá á áááŁá áá˝á ááľáĽ á ááááá áŚáł áááľ áá˝ááá˘
áĽá á á ááá ááľáĽ á EC2 áááłá ᣠá áŚáłáá˝ ááľáĽ á áááľ á¨ááŽáĽ áĽáľáá á áᢠáĽá áá á áŁá áĽáŠ áĽáľá áá. áááłáᣠáľáááľá á¨500 á áá áá¨áŤáá˝á á i3 á áĽááľ á áľááááᣠá¨áľááš ááᎠáĽá á i3-16-xlarge áŤá ááᢠáĽá 500 áá¨áŤáá˝ 64 áśáá á ááĽá°ááááᢠáĽáŤááłááłá¸á 15 á°áááá˝ ááŠ. áŤá áááľ, áá áĽáŁáŚá˝ áĽá፠áĽá á áá á áááá¸á, á áŁá ááŤá˝ áá - ᨠ70% á áá˝, á¨á ááá á á°á¨ááľ áááŤ. áĽá ááľá¨á áľá˝ááá ᢠáĽááá°á áááá ááľá¨á áá˝áá.
áĽá áśáľáľ áá áá ᨠPostgres áľáŞáśá˝ áá°áááᢠá ááłááľ á áŽááá˝á áĽá á á˛áąá 12 á áĽáľá ááá¨á¨áľ á áŁá á áľá¸á᪠á áá°áá.
á ááľá ááá á áŚáľáľ ááááśá˝ áááá áĽáá˝áááᢠáá áĄ-
- ááŁá/áľáŠáá áááá˘
- ááá ááááľ á¨PGDATA áááŤá ááááľ ááᢠáĽáá° á ááľ á°ááĽ, á¨áá áŁá á፠á áááá ááá°áłá. á¨á°áááą áááľáŽá˝ áá áŁá ááŤáá˝ áŤáááľ, á¨á፠áááá˝á ááľá¨á áá˝áá. á°áá áŤáá áĽáá° Amazon áĽá Google áŤá á¨á°áá á˘áŽ áá á áŤá°áááááᢠáá áĽááá°á áááľá ááááá á áŁá á áľáááá ááááľ áá. á¨áááááĽá áľ ááááľ áĽáá°áá ááá˘
- áĽá á¨áá¨á¨áťá áá´ á Postgres ááľáĽ á ááľ ááá áĽáá´áľ áĽáá°áá°áŤ ááá¨áłáľ á˛ááá ááááá á°áľáá áá. áá pgbench áá. pgbench á áá áá áááá¨áľ áá˝ááᢠá ááľ "db-pgbench" á ááŤá áĽáť ááᢠáá ááá ááááŠáłá. áĽá ááá ááá áĽáá°á°ááá¸á á á°áá ááľáĽ ááá áŤá.
áĽá áááľ:
- áááąá á á ááľ SQL áá ááľáĽ áá¨ááá áĽáá˝ááá. áá á áŁá áĽááłáá ááááľ áá.
- áĽá áááąá ááŽá¨á áĽáá˝ááá. áĽá á¨ááá á ááľ á áá¨á°áá ááááľ ááááľáá áĽáá˝ááá. áááá áááἠááľáłááťáá˝ áá°áĽá°áĽ á ááĽá. áĽá áŤááᢠááá áĽáá°áá á áłááááᢠáĽá pgreplay á á áá áá áĽááŤááłááᣠáĽáąá á ááᲠááľáĽ á¨á°áááŁá˘
- ááá áá á ááŤáᢠá á°áá°á áĽá¨áľ á¨ááá°ááá á¨áĽá áĽáŤ áááľ á°áĽá á¨áá áŤá. á áŚáááą áľáááľ áá áŤáá áááľ á áá°áá°á, á¨áá°á á¨áĽáŤá áĄáľáá˝á áĽáááŁáá. áĽá pgbench á á áá áá áá áá áááľ á á¤á° áá¨áŤ ááľáĽ ááŽá¨á áĽáá˝áááá˘
- ááá á ááľ ááááľ SQL á áá¨ááá á ááĽá ᣠáááľá á ááľ ááááľ ááá°áľá áĽáááľáťáá ᣠáĽá፠á˘áá´ááľ áĽáááĽáŤáá ᣠáĽá፠á áááá áŤáľáá˝ááᢠáĽá á¨áŤááŠá á ááľ áĽá á¨áŤáŠá á áá á¨áááá áĽáááá¨áłáá. á á á ááá, ááááá SQL.
- á áááá ááľáĽ á ááľ ááá á¨á፠á áá áááŞáŤáá˝á áĽááááŁáá. áááłá 100 áĽá´áśá˝á á á ááá ááľáĽ áá´áŤáŁááľ á¨ááἠááłá˝á áĽááľáááľá˝ ááááá¨á áĽáá˝áááᢠáĽá á áĽááľ á°ááłáľ ááľáĽ áá¤áąá áŤááá. áĽáá° á°áᥠá¨á´áŤáŁááľ áłáłá¤á ááá°ááŤáľ áĽá á°á áłáľ áááľáłáᢠááá áá á áĽáľááľ áá á ááľ á áá á á ᣠá°á¨áłáłá ááá á¨áá˝á á áá ᣠáááľá á á°ááłáłá á áááá áá áŤáááá¨áĽ á°ááłáłá pgdata áá áá áĽá áá¨ááἠáá˝ááᢠPostgres áĽáá°áá ááááŤá áĽá áá¸ááŤáá˝ áĽáá°áá ááááŤáᢠáĽá áááąá áááłáľ áá˝áá.
- á¨pg á á˝á á° ááśáá˝ ááᎠá¨á°ááŤáŠ áááá˝á á¨áŤá áá፠áááŁááááł***. áĽá á áŁá á¨ááŤáľá°áľáľ ááá pg_stat_statementsᣠpg_stat_kcacke á áᢠáĽááá áĽáŤááá˝á á¨áá°ááľá áááľ á áĽáŤáá˝ áá¸áᢠáĽá pg_stat_bgwriter á¨pgwriter áľáłá˛áľá˛ááľá áĽáť áłááá á áá°áť ááĽáĽ áá áĽá á°ááááš áŤáłá¸á á¨áá¸áš ááśá˝á áĽáá´áľ áĽáá°ááŤááá áá áááᢠáĽá áá¨áľ áá á áľá°áłá˝ ááᢠáááłá á¨á°ááŠ_áááááŤáá˝á áľáááá ᣠááá á°á áá áŤá á áĽáá°á°á°áŤ áá¨áľ á áŁá á áľá°áłá˝ ááá˘
- á¨ááľáľááŹáľ áááἠááľáłááťáá˝á áĽá¨á°á¨áą ááᢠáááľ áááἠááľáłááťáá˝ - á¨ááá áľ áááἠááľáłááť áĽá á¨áááś ááŤááľ ááááĽ.
- á á ááťáŤá áááł á á˛áľ áŁá ᪠FlameGraphs ááá˘
- áĽáá˛áá áááąá áááŤááľ pgreplay ááá pgbench á ááŤáŽá˝á á¨á°á áá áá¤áłá¸á á¤á°á ááááᢠáĽá áááá¨áľ áĽá TPS áŤáŤáᢠáĽáá´áľ áĽááłáŠáľ áá¨áłáľ á¨ááťá ááááá˘
- á¨áľáááľ áá¨á.
- áá°á¨áłá á˛áአáĽá IO áźáŽá˝á˘ áá á á ááá ááľáĽ á EC2 ááłá á¨á áá áá ᣠ100 á°ááłáłá ááłááá˝á á áá ááľáĽ áááľááá áĽá 100 á¨á°ááŤáŠ áŠáŤáá˝á áĽá፠áááľáŹáľ á˛ááá 10 áá¨áŤáá˝ áááááłáᢠáĽá ááľááá á á ááľ á°á áĽá¨á°á¨áá áŤáá ááľááľ áŤáá áľá áááł áĽááłáŤááĽáááľ áá¨ááἠá ááĽááľ. ááá˝ á áá á¨áááľáá ááŤá áá áá áá¸á áĽá áľáá˝ á¨áá¨á ááĽáľ áááááᢠáĽáá°ááá áŤááľá áá¤áśá˝ ááŁá á¨á°áťá áá. áĽá á sysbench ᨠAlexey Kopytov áĽááłáł á¨ááᥠáĽá á áŤáá áźáŽá˝á áĽáá°áááá áĽá á¨ááá˝ áá áááłá°á áá˝áá, áááľá á˛áአáĽáá´áľ áĽáá°áá°áŤ áĽá IO áĽáá´áľ áĽáá°áá°áŤ áááááŁá.
á á°ááŤáŠ áŠáŁááŤáá˝ ááłá áá á¨á°áá°á¨áą á´áááŤá á˝ááŽá˝ áááľ áá¸á?
áááἠááľáłááťáá˝á á áá áá áĽááá°ááá áááľ ááľáá áĽáááááá áĽáá á. á Open Source pgreplay áá á¨á°áťá á áŁá áĽáŠ ááłáĽ ááᢠáĽáá áááá. ááá áá á áĽáŠ áááł áĽáá˛á°áŤ áá á¨áĽáŤá áááἠááľáłááťá á¨áá¤áśá˝ áĽá áá áá ááááľ á ááĽááľá˘
á¨áááł áĽá á¨áá áá á°á áá á ááłááľ ááľáĽáľáŚá˝ á áᢠáá áá áἠá¤áľ á áá áŁáś áĽáá°ááááᢠááá áĽáŤá áĽááľá ááááľ áá˝áá áááľ á áá˝áá?
á˝áአááááŁáľ áááá áá˝ááᢠá ááááŞáŤ á°á¨á, áá áĽá¨áľ áá° áááἠááľáłááťá áá áĽáá°ááťá áá¨áłáľ á ááĽááľ. pg_stat_statements áŤáááľáŁ á á°á¨ááľ áá áŤá á áŁááľ áĽáá°ááá ááá¨áłáľ áá áá áá áá áá áá áá˝áá (á ááá á áľáááľ ááľáĽ áááá)á˘
á¨áĽáŤááá ááááľ áĽáááá¨áłáá. ááá áááááá˝ á ááááŤá¸áá á˝á áĽáŤáá áá, ááá áá á¨áĽáŤááá ááááľ áĽááááá áĽá á á°á¨ááľ áľááľ áá áĽáá°á°áá¸á áĽááááá. á áá ááááľ á á°á¨ááľ áá áŤá á áŁááľ á áááľ ááááľ áĽáá˝áááᢠáľá á°áľá á áĽáĽá ááá°áŤ áĽáá˝áááᣠáá á áĽááá áááľ á áá ááááľ áľáááá áĽáá¨áłááá˘
áá áĽáŤá á á°á¨ááľ 802 áá á˛áá¸á áá¨áľ áĽáá˝áááᢠáĽá áŁááľ_á á´áŽááľ â 300 áŞáŁ/á° á˛á°áá ááá á˛áááľ á áá°ááᢠáĽá áĽáá° á ááľ á°ááĽ, áĽáá˛á á áááľ áá°áľá ááááľ áĽáá˝ááá.
áá! áĽáááłá áá á¨á°ááŤáŠ á¨áááἠááľáłááťáá˝ áľáááśá˝ á á. áĽá á¨á°áá˝ ááŁáŞ á áĽáááá áá "syslog" áá.
áĽá syslog áŤáááľ, áĽáá°áá á áááľ ááľá áááááľ áá˝áá. pgbench á áĽáááľáłááᣠá¨áĽáŤá áááἠááľáłááťá áĽááááá áĽá áá áĽáá°á°áá ᨠáĽáááá¨áłááá˘
áłááᥠ- áá á á፠á áŠá áŤáá á ááľ áá. 161 TPS á ááá°ááᢠá syslog - áá á áĄáĄááą 000 Amazon áá áá, 16.04 TPS áĽááááá. áĽá áá° ááá˝ áááľ á¨ááááá˘áŤ áá´áá˝ á¨áá¨áá, áááłá ââââá áŁá á¨á°áťá áá. ááááłá áĽáá á áĽáá áá á áá á á°ááłáłá áá áá˘
áĽá á CentOS 7 ááᣠáááááľ á ááłá°áá áľáŁ áááἠááľáłááťáá˝á áá° áááľáŽá˝ á áá¸áľ áááá ááá ááá°.ᣠá¨á፠áĽá፠á á áľ ááᣠá TPS ááľáĽ 44 áá áĽááĽáááá˘
áĽá á°áá˝ á¨áááŠáľ áá ááᢠáĽá áĽá áá á áŠáŁááŤáá˝, á á°ááá áľááá , áá ááááἠá áŁá á áľá¸á᪠áá. ᨠsyslog áááἠá¨áťáá˝á áĽáŁáŽáľá á¨áą áŤáá˘
- IOPSá ááááá áĽá áá°áľ áááá˘
- á¨áááἠááľáłááť áľáááľáá áŤá¨áááĄá˘
- á¨áłáá°á áááľ á¨áá á á áá áľáá á¨áá, ááááá˝á áŤáľáĄ.
pg_stat_statements á ááᢠáĽááłááŠáľ áĽá፠ááá á áá áľá˘ áĽáá áĽáŤááłááąá á¨áĽáŤá áĄáľá á áአááááľ á ááá ááľá°á áááá áĽáá˝áááᢠáĽá á¨á፠á pgbench ááľáĽ á áŁá ááš á¨áá áŁá áŞá áá áá áĽáá˝ááá - áá ᨠâ-fâ á ááŤáá á áá áá áĽá áááá˝á á¨ááľááŁáľ á˝ááł ááá˘
áĽá "-f" áá¨áłá. áĽá áĽáŤááłááą ááá áá áľááť ááá¨á áĽáá°ááᣠá áá¨á¨áť á "@" áĽáá áááá áá˝ááᢠáá áááľ á 10% á¨ááááľ ááłáŽá˝ áĽá áá áá á 20% ááľáĽ áŤáľáááľ áááľ áĽáá˝ááá. áá á°áá á áááľ áá áá°ááá¨á ááá áŤááá ááá˘
á áááľ ááľáĽ áŤááá áĽáá´áľ áĽáá¨áłáá? áá áľááť áĽá áĽáá´áľ? áá
áľáá˝ áá° áá áá. á ááľ á°á¨á᪠áááľ á áá
á¨á°ááá°á á á°ááŤá¨ ááááŤáľ áá. ááľáľá á á áľááááᢠáá¸áá ááĽá°á áá°á¨áąá á°ááá¨áľáŁ áŤááľá á˝ááŽá˝ á°ááá¨áľá˘ áĽáᣠáĽáá° á ááľ á°ááĽáŁ á¨á¤á_áźá áłá°áááá ᢠáááľ áŤáá DBA á¨ááá á¨á¤á_áźá áłá°áááá ᢠáĽá á˘áá´ááśá˝ á á ááá á°áááá°áá, ááá°. OKmeter áŤáááľ, á¨ááŤá á áŁá áĽáŠ. áá á Postgres áĽáŠ ááľáľá ááᢠOKmeter.io - áĽáŁááá ááŤááľ, ááá ááá áĽá፠á á°áἠá°á¨áááá. á°á¨áááá˘
á¨ááá áĽááá áá áĽá á¨áá á áááľ ááᢠá ááľáľá ááľáĽáŁ á áĽáááá áá á˛ááŠáŁ IOᣠáĽá á¨á፠á¨á°áŤá áŚáłáá˝ áá á áᣠáĽá ፠áĽáť ááᢠáĽá á°á¨á᪠áĽáááááá. á ááśáŤááŠá áĽáá´áľ áĽáá°áá°áŤ, á¨áá°áť ááĽáĄ áĽáá´áľ áĽáá°áá°áŤ, io ááľáĽ á¨áá°áť ááĽáĄá ᨠbgwriter áĽá á¨áááŁá ááá° ááá¨áľ á ááĽá.
á˝áአá ááľ áľáá áŠáŁá፠á˛á¨áą á ááľ ááá á ááĽááľ áá°áá á á áá˝áá. OKmeter á ááĽááľ ááááľ á áá˝áá. ááááŁáľ á áľáľáľáľ ááŤáľ ááľáĽ ááá áááá. á ááłááľ áĽá áá˝á á ááĽááľ ááľá¨áľ á áá˝ááá˘
áĽá ááá ááá ááŤá á¨ááááá áአááłáŞáŤ áŤáľááááá á¨áá ááłáĽ á ááŁá, áááľá á áááľ áá ááá ááá ááŤá á¨ááĽááľá. á áááśáá áá áŤáᣠááá á¨ááľá°áŤá áľ áŚáł áá áłáᢠá áááá áá áŤáᢠáĽá áĽá áááŽá˝á áá°ááľáá-áľááá° áááá ᣠá¨ááá áľáááą áĽá ááľáľááŹáľ áŤáą ᣠá ááĽáł áá° áááľ áááą á¨áá˝á á ááłááľ ááá áĽáŤááá˝á áŤáááá áĽá ááá ááá á ááłáŤáá˘
Postgres-checkup áĽááááᢠá áááá á¨ááľ áá áá°á á á¨á¤á ááá፠ááᢠá ááśáá˛á-áá˝áł á¨ááᣠáá áĽáá° áĽáá ááᢠáĽáá° á¨áááľ áľá á á¨áľáľáľáľ áአááá á áááľ á ááŞáá áá áĽáá áŤá°áááᢠááá á¨áľá áĽáá áŤá°ááá? áŤá áááľ á á¨ááá áĽáá áááá áłá°áááá ? áá°á¨á á áá áľá˘ ááľáŹáá˝á áŤá°á¨á, á¨ááŤá áá°áť áŤáľáá, áá áŤáá° á áľááá á áá°áá.
áĽá áĽáá°áá á áááľ ááłáŞáŤ á áá. á¨áŚáľáľ ááŤáľ á ááľ á áááľ áĽá áááľ ááá¨. áĽáą áá ááŁáľ áá ᣠáá áĽá፠áĽá á áá˘
á áŁá âá°á˝áá ááŁáŞâ á¨áĽáŤá áĄáľáá˝á áá°áĽá°áĽ - á Postgres-checkup ááľáĽ K003 áŞáááľ áŤáľáá
áĽá á¨áŞáááśá˝ áĄáľá K. áśáľáľ áŞáááśá˝ áĽáľáŤáá á á. áĽá áĽáá°áá áŤá áŞáááľ K003 á á. á á á áá_á°ááľ á¨á°á°á¨á°áŠ á¨pg_stat_statements á¨áá°á á áá˘
á¨áĽáŤá áĄáľáá˝á á á á áá_á°ááľ áľááá áŁáááá áá áľáááłá˝áá á áĽááľ á¨ááá áĄáľá áĽááŤáá áŁáááľá á°á¨á᪠ááĽáśá˝á á¨áááľáľá˘ ááááľáá á¨áĽáŤá áĄáľáá˝á áľá á¨áá°á á? áááŞáŤáá˝á áľááŁáá. áĽááá á¨á áá á áá áĽáŤááá˝ á áá°ááᣠááá áá á¨áĽáŤááá˝ áĄáľáá˝áŁ áááľá áĽááą á¨áá áá¸áá˘
áĽá á¨áá áá° áłá˝ á¨á°ááťá¸á ááĽáłá˝áá áĽáááá áĽá ááťáťá áŤááĽáá áá áĽááááŤááᢠáá ááááĽá áááá ἠá áŁá áĽáŠ ááááľ áá.
ááááŁáľ áá á°á áááá˝á áááá¨áŁá¨áĽ á áŁá áĽáŠ ááááľ áááá áá˝áá ᣠááááŤáąá áĽá áĽáá Ꮰááá áĽáá˝ááá ᣠáá á ááľ á°á 15 á°á¨ááľ á¨á á á á áŁá á¨ááŤá áłáŠ ááłáŽá˝á˘ á á á ááá, áĽá á ááŤá¸áá, áĽááą á áŁá áĽááľ áá¸á, ááá áá á¨ááĽáśá˝ áá áĽá¨á°áááá áá.
á áá á áá á¨áĽ ááľáĽ áá áá? áááľ á á˝á á°-ááśáá˝á ááľá°áá. Postgres_checkup ááĽáŤááłááą ááŹáľ á´ááł áá°áĽááłáᥠá á áá ááᣠáĽáŞáá˝áŁ á¨áľáá˝áŁ á¨á°ááŠ_blks_readᣠááá°á˘ ፠ááᣠá´ááłá á¨á°á°á ááᢠá pg_stat_statements áá áŤáá áľáá á˝áá áłáá áĽáá°á°ááᨠá áááľáłááľ ááᢠpg_stat_database á¨ááŤáľáłááľ á¨áá pg_stat_statements á áŤáľáłááľáᢠ1 ááĽá áĽááłá áłáŤáá ááááá á¨á¨áľ áĽáá°áá áá á ááá áá˘
áĽá áĽáá áĽááááá, áĽáá áááľ á á˝á á°-ááśáá˝ á áá. á áá ááłá áá áŤáá á´ááł 56 á´áŽááľ áĽáá°áá ᨠáĽááááá. á áŁá á áá ááá°áľ. á á á áá_áá á°á°ááľáŻáᢠáĽá á¨á፠ááá¨áľ áĽáá˝ááá, áááľá áááá áááŞáŤáá˝ á áááł áĽáá¨ááááá. áĽáŤááłááąá áááŞáŤ á áááł áŤáŤááá á á´áŽááľ á¨áĽáŞáá˝ áĽááľ ááá¨ááá˘
á ááá áᣠá á áá_áá á á°á¨ááľ á¨áĽá á°ááłá áááŞáŤ ááᢠá¨áááŤá á á´áŽááśá˝áŁ á á´áŽááľ ááᣠáááľá áá á á¨áĽáŤááá˝ áĄáľá á á°á¨ááľ áááľáá¸á áľááľ á´áŽááľ áĽáá°ááá áľ ááᢠáĽá፠á á°á¨ááľ á¨á ááľ á°á¨ááľ á áá áŤá¨á á¨á ááľ á áá áŽá ááľá áľ áá á¨áĽá áááľ ááᢠáá á áŁá áĽáŠ áááŞáŤ áá. áá áá°á, áááłá, á˘áŤááľ áśáľáľ áŽááá˝ áĽáá°ááŤáľáááá áá¨áłáľ áá˝áá.
áá á¨áĽá áĽáááľ áá, á¨áľá áŚáł á ááź á ááá á. áĽáŁááá áŤáľá°áá - áá á áŁá ááá ááá áá - á á°á¨ááľ á°á¨ááľ. á ááłááľ ááᣠá¨áĽááľá á˛áአ100%ᣠá¨ááŤá ááá˝ á°á áľ á á°á¨ááľáŁ áááľáᣠáĽááá á áĽáŤááá˝ áĽáť áááľá¨á ááá˝ á°á áľ á áłááááá˘
á ááá á á á°á¨ááľ á¨áľáá˝á áĽááŤáá. á á°á¨ááľ áľááľ á¨áľáá˝ áĽáá°á°ááá° áĽáááááá˘
áĽá á¨á፠á°áá á ááľ á áľá°áłá˝ ááá á á. áľááľ á¨á°ááŠ_buffers á¨áŤáą á¨á°ááŤá_buffers á á´áŽááľ áĽáááŁááᢠáľáŹáśá˝ ááľááá áá áŠ, áĽá á¨áľáášá á¨áľááá° áááá áá¸á፠ááá á¨á˛áľá ááľá°áá. á¨ááááŞáŤá á ááŤá ááŁá áá, ááá°áá á°áá áĽáá° áááłá ââááŁá ááá áá˝áá ááá áááá áá˝áá.
áĽá ááá°áá á¨ááŠááľ ááááľ á áá áĄáľá ááľáĽ áŤááľá á¨áĽáŤááá˝ áĽááľ áá¨ááá ááᢠá ááá°áá á ááľ ááľáĽ áá áá á ááľ áá áá á á ááľ áá áá áá¨ááá ᢠáĽá á¨á፠á áľá°áłá˝ áá - á áá áĽáŤá ááľáĽ áľááľ ááá°á¨ááśá˝ áá áŠá˘ áá áá áá á á ááŤá áĽáá´áľ áĽáá°áá ፠áĽáááááᢠááĽáŤááłááą áĽáŤá 101 ááá°á¨ááľ áŤáľááááᢠáá áááááá á á¨áááŁá áŁá áá áááŞáŤ ááá˘
áĽáŤááłááą áá áá á á ááŤá áľááľ á¨áľáá˝ á°áááˇá? áá áĄáľá 8 á˛áááľ áĽááŤááᢠá á ááŤá áá áŤá á á¨áá¸ááŤá á°ááľáś á°áá§áᢠááá ááá á áĽáŠ áááł áĽáá°á°á¸áá áĽááŤááᢠáááááŞáŤá áĄáľá á ááŤáŤ ááśá˝á˘
áĽá á áĽáŤááłááą ááľáá ááľáĽ áŤáá á áŤá°áá áááľ ááĽá¨ááá á¨á á ááá áá áŤá á ááśá ááᢠáĽáŞáá˝ á ááᢠ1 áĽáá áá˘áĽáá áá áĄáľá á¨ááŤá á¨áá°áá á áľá°áá˝áŚ áá¨áłáľ áĽáá˝áááᢠá áá áááł ááľáĽ á¨ááááŞáŤá áĄáľá ᨠ000% áŤáá° á áľá°áá ጠáĽááłáá áĽááŤáá. áááľáᥠá áŁá áááá á¨ááá á¨á°ááł á á á ááá ááľá áá áĽááłáá¨á ááᢠáĽá ááá°áá áĄáľá á áĽáŞáá˝ áá 000% áá. áŤá áááľ á¨ááá áĽáŞáá˝ 0,01% ááá°áá áĄáľá áá¸á.
á á áá_áá áĽáá˛á á áľá°áłá˝ ááᢠá ááááŞáŤá á¨áĽáŤááá˝ áĄáľá áá á¨á á áá á¨áľáŤ á°ááłá˝á 14% á áłááááᢠáĽá áááá°áá - 11%, ááá°.
áá° áááá ááłáŽá˝ á áááŁá ᣠáá áĽá፠ááľáĽ á¨áá áááŽá˝ á áᢠáľá á°áľá á¨áá áĽááłáŤááᣠááááŤáąá áľáááłáľáᣠá á˝á á°-ááśáá˝ áááłáá áá˝ááᣠáááľáᣠá ááłááľ áĽáŤááá˝ áááľá áĽá á ááá°áá ááľáĽ ááá á áá˝ááᣠá ááłááľ á áłá˛áśá˝ áá ááłáŠ áá˝ááᢠáĽá áĽá፠áľá á°áąá áĽáá°ááá. 0 áŤá¨á ፠áĽáŠ ááᢠááá áľá á°áśá˝ á¨áá. á¨áľá á°áľ áá á áĽáľá¨ 20% á¨ááᣠááá á˝áá á¨áááá˘
á¨ááŤá áá° áááłá˝á áĽááááłáá. á¨áĽáŤ áŤá ááá á á ááĽá. á¨áá áá° áłá˝ ááľá°á 80% ááá 90% áĽáľááá°ááľ áľá¨áľ áĽáááłáá. áĽááá áá áá á¨10-20 áĄáľáá˝ áá. áĽá á pgbench áááá˝á áĽáá°áŤáá. áĽá áĽá፠á áááá° áĽáá áááá. á ááłááľ áá áá , á ááŤáłáá áááł, á áá°áŤá. áĽá á Postgres 12 áá á á áŤááľ ááá áá áĽá áĽáľáá˝ áááŤáá˘
áĽá á¨á፠á áá ááááľ á á á áá_áá á¨80-90% áĽáá°ááááᢠᨠ"@" á áá áá ááľááἠá ááĽá? áĽáŞáá˝á áĽáááá¨áłáá, áá áŤá á áááľ áĽááłá áĽáááá¨áłáá áĽá áĽáá áĽá áááľ áĽááłáá áĽáá¨áłáá. á¨áĽááá ááśááá˝ áĽáŤááłááąá áááá˝ áĽáá´áľ áááŁá á áĽáá°ááťá áĽáá¨áłááᢠá¨á፠á áá pgbench áĽáá áááá áĽá áá° áĽáŤ áĽáááłáá.
áĽá á°áá K001 áĽá K002 á ááá˘
K001 á áŤáľ ááĄáľ ááĽá¨ááááá˝ áŤááľ á ááľ áľáá ááĽá¨ááá ááᢠáá á¨áá á¸ááá˝á áŁá ᪠ááᢠááá°ááá áááľ áĽá ááá°ááá á¨ááá ááá áááá¨áąá˘ á á´áŽááľ á ááľ á°áŠá á°á¨ááľ áŤá á, áááľá áááľ áŽááśá˝ áŤá, á¨ááŤá áĽáŠ áááá. á áááľ 75% á á á ááá¨ááᢠáĽá áĽáá°áá áá°áŤá. 10 áŽáŽá˝ áŤáá, á á á ááá áĽáá¨áááá. á áá ááááľ ááĽáśá˝á ááááá áĽáá˝ááá.
K002 á¨áá áá ááá á¨ááá ááᣠáááľá áá¨áĽáŁ á áľááŁáŁ á áááᣠá°ááᢠáĽá ááááá á á°áá á áá¨áĽáŁ ááááŤáąá áááá፠ááá˘
áĽá áĽáá SELECT á°áŤ á ááŁá˘ áá áĽáá áá°áá°á áĽáá˝ááá - á¨ááá áĽáŞáá˝ 82% ᣠáá á á°ááłáłá áá - 74% á á á áá_á°ááľá˘ áŤá áááľ áĽá á°áĽáá áá áŤá, áá á ááľá°á ááĽáśá˝á áá áá.
áĽá áá°ááá áĽáŤá áĽááááłáááĄ-âáĽáá´áľ áľáááááášá á¨á°ááŠ_áááááŤáá˝ ááá¨áĽ áĽáá˝ááá?â á áĽááá áááłá¨áŞáŤáá˝ á ááłáĄ áá á¨á°áá°á¨áą áááá¸áá á áľá°ááŤáá - áá¤áą áá áĽáá°ááá áááľá áá¤áą áá áĽáá°ááá áĽááᢠáĽááá áá á¨áááŤá á TPS ááá QPS ááá˘
áĽá á á°áťá áá á áĽá ááĽááśá˝á á á°á¨ááľ á¨ááŞáá ááľáĽ á¨ááľá°áŤá¨áŤ áááŞáŤáá˝á á áá áá ááááŁáľ áĽááááŤááᢠáĽáá á áľááá 311 á á°á¨ááľ áááá¨áĽ ááá˘
ááá áá áá° áľáŤ áĽá á áá ááĽááľ á¨áááł ááá á¨ááᢠáá ááááľ ááᢠá¨áá¨á ááśá˝ áá á°ááłáłá ááᢠá áá ááĽááľ áá˝á¨áá¨á á¨ááĽáá ᣠáĽá ááá á áŤá°ááááᢠ100% á˛áአáŁáá áááľ ááľáĽ á¨ááá ááá á¨ááᢠááá áĽááłá, ááááŁáľ á ááľ á°á áááŤá, áá áá áĽáŠ á áá°áá.
ááłáĄ áĽááá áá á¨ááááłá á 20 á ááś á á á áá ᣠá á°ááá ᨠ50% áŤáá áá ááᢠáĽá á¨ááá á áá áá°á ááááťá˝á á¨ááá˝ ááá ááááťá¸áľ áĽááááŤááᢠáááľáᣠá 20% ááĽááľ áá á°á áááá¨áľ áĽáá˛ááᣠáááłá á áá áááł á¨áĽáá áááá˝ ááá á ááĽáᢠáá á áá¨áŤááťá˝á ááá ááá áľ á¨ááááá¨á ááłáĽ ááá˘
áĽá á áá¨á¨áťá, áááŽá˝:
- á¨ááἠááł á¤á° áá¨áŤá ááľá¨ááá áĽááá á ááá.
- á¨á°áťá áá°áá°á áá áĽáá˛ááἠá ááááľ áŤáľáááľ - ááŤááą áĽá ááŁááľá˘ á°áááá˝ áŤáááľ, áá áłáááá áááłá, áááľá áĽá á áá áááááľ.
- áá ááᢠáĽá á¨áá ááá á¨á°áłáłá°, á¨ááŤá áĽáá´áľ áĽáá°áá ፠á áá¨áŤáá˝ áááľáš. ááᲠáá°á¨áą áĽáá´áľ áĽáá°áá°áŤ áááá°á˝ áĽáŤáľáá ááá°áá á áá áá áá˝ááá˘
- áĽá áá á°ááá á¨ááá˝ áá ááá áŤáľááá˘
- áĽá á¨ááľáľááŹáľ áááŽá˝á á áľááŠá˘ á¨áááŽá˝ áá áľáľá°áŤ áĽááááá ááá á ááĽá ᢠáĽá፠áĽá á áľá°áŤá¨áśá˝ á á, ááá ááá áĽá፠á°áĽáŤááˇá.
- áĽá á¨áá¨á ááąá á¤á á á¨áááᣠá˘áŤááľ á á¨áśáľáľ áአá ááľ ááᣠá áĽá ááá Postgres-checkup áááá¨áąá˘
áĽáŤááá˝
á áŁá á ááááá! á áŁá á°áľ á¨áá áááá˘
áááľ ááŤá.
á á, áááľ áááĽáŤáŽá˝. áĽá áĽáť á á°áἠá áááŁááᢠáĽáá ááᲠáľáá ፠á ááľ áááŞáŤ áĽáť ááá áá áĄáľá ááľá°áŤá¨á áĽáá˝ááá?
á¨á´ááł áá á¨áľ áááŞáŤ á ááᢠá¨ááááľá áŤá á á á ááľ áá áá°á፠ááá áá˝ááᢠááá áá áĽá áááŽá˝á á ááľáááá áľ áá á¨á°áłáłá° áá°áá°á፠áá ááľá¨áľ áĽáá°ááľá˝á áá¨áłáľ á ááĽá .
á á. ááá á á¨á áŠáľ? ááááŤáąá á ááľ áááŞáŤ áĽáť á˛ááááľ áá¨áŤáá˝á ááŤááľ á¨áŁáľ ááᢠá áĽáĽáááłáᣠáĽáá´áľ áĽáá°áá°áŤ áááá¨áąá˘ á ááŁááľá˘ á¨á፠á¨áááĽááá ááááŤá.
á á°ááłáłá áá áá áá á áá˝áá, áá áĽáá° áááłá ââááá°áá, á áĽáááĽ. áá á ááľ ááłáĽ ááá¨á á¨á°áťá áá. áľáááľ á ááľ ááłáĽ áá á¨áᢠá áŁá á áἠá¨áá áááł áá á¨á. áááľ á ááááŽá˝ áá áŠá˘ áĽá ááá áľáá ááŠááľ áĽááłá áááŁá á ááťááᢠáĽá áŤáááá¨áĽ ááá¨áłáľ áĽá ááŠááą áá áĽáá°áá áááá á˛áŽáśá áá áá áŤáľáááááłá á¨áá ááłáĽ á°ááłá˘ áá˛áŤáá ááášá ááášá á ááľ á áááľ, á¨ááŤá áŠáĽ, ááá° ááľá¨á áá˝áá ááá ááá á°áááá áá.
áĽá á ááľ á°á¨á᪠áĽáŤá á á. ááŽáááą ááŁáľ áĽá áĽáŤá°á áá. á°ááą ááľááá ááá áá ᣠáááá ááá፠á á?
áĽá á á°áá áá° áá¤áśá˝ ááá፠áĽá፠á ááá á áŤáᢠáĽá፠áá. áá áĽá áááŽá˝ áĽáľáŤáá á¨ááᢠá°ááłáłá á áľá°áłá°áĽ áŤáá¸áá á°áá˝ áĽá¨áááአááᢠáĽá áľáŤááľ á ááá¸áááᢠáá á áŁá á áŞá ááᢠá ááľ á°á á áľááľá á¨áĽá áá áĽá¨á°áŤ ááᣠá ááľ á°á á¨áľáś áĽá፠á¨áá ááá á áľáááᢠáĽá á áá áááľ áá ááááľ áŤááľ, á¨áá°ááá ááá á áľá°áŤá¨áľ ááľáĄ.
ááŚáŤáśáŞáá á¨áááŁá á áá ááááŁáľ á áľá°áŤá¨áľ ááá áá˝áá. áĽáľáŞ áĽááŤáá. á áá°áááá!
áá! ááŞáááą áĽááá°áááá! á¨á ááá áľáá áĽááłá á á¨áᢠáá¤áľáá ááá°áá áĽá áľ á á?
áĽáŠ áĽáŤá. ááľá¨á ááááᢠáĽá áááἠááá ἠáľáááááá áá áá á á°áááᢠáááľá á localhost áá á ááľá á áá áá áľáá á áᢠááłáá áĽáŤáľá ááá á áĽá á á áá ááľáĽ ááĽáŤáľ áá˝ááᢠá áááŤá˝á áá áá á áá á¨ááá°áááᢠáá áá á¨áá°ááá á ááľááĽáŁ áĽá፠á áá¤áľá ááᢠááá áá áĽáá°áá á áááľ áŚááŹáľáľáŤ ááľá¨á áááłáá áĽáľáŤáá á ááá, ááááŤáąá Google ááŤá˝ áŚáłáá˝ áľáááá. á á ??? áááłáá˝, áá áá°áŚá˝ á áá¸á. á ááááŞáŤ ᣠáááá ᨠ70% á áá˝ áĽáť á áá¸á áĽá áĽá፠áŁáá áá ááŤááľ á áá˝ááᢠá áŚáłáá˝ ááᣠá¨ááá¨á áĽáľáá áááááľ á 5-10% ááá áĽáá¨áá¨áááᢠáŤá áááľ áá áĽáŁáŚá˝á áłáľááá , ááá áá á ááááá áá á¨áĽááľá ááá°áą áá˝áá. ááá˝ á¨ááŤáááĄáľ áľáá˝ á¨á áŤá áá áŤáá¨áĄ á áá ááá°ááᢠááá áá ááá á¨á°ááŤáŠ ááááŽá˝ á ááľá˘ áĽá áá á áŁá ááĽá áá°áĽ á á - á 24 á°ááłáľ áĽáť áááŤá. áĽá á ááłááľ áá á 5 áááľ áá¨áŤá ááŤááľ áĽáááááá. áá áá áá á áŚáłáá˝ ááľáĽ ááľá¨á áá˝áá ᣠáá áĽáŁáŚá˝ á ááłááľ áá áááŤáľ áááŤáá˘
áá! ááŞáááą áĽááá°áááá! áá°áťá á á á°ááᢠá¨áľáłá˛áľá˛ááľ_ááá፠áľá á°áśá˝á áĽáá´áľ ááľááľ ááťáá?
á áŁá áĽáŠ áĽáŤáᢠá áŁá á áááá ááłáá áĽá˝áááᢠá á áአᣠá¨áĽáŤá áĄáľáá˝ áĽáá´áľ áĽáá°á°ááłáá ᣠáá áŤá á áĽáá°áá°á áĽá áá áŤá á á á˛áľ áĽáá°áłáŠ áĽáááá¨áłááᢠáĽá á¨á፠áááľ áááŞáŤáá˝á áĽáááá¨áłááᥠá á áá_á°ááľ áĽá áĽáŞáá˝áŁ áľááá áááľ áľá á°áśá˝ á áᢠáĽá á¨á°ááłáá áĄáľáá˝á á áľá°áá ጠáĽáááá¨áłáá. áááľ ááĄáľ áĄáľáá˝ á áᥠá¨ááąáľ áĽá á¨á°á¨áąáľá˘ áá á ááአáá˝áł á¨áĽáááą á áľá°áá ጠáá áĽáá°áá áĽááá˘
á á á˝á á°-ááśáá˝ ááŤá¨á áŁáá áá ááľáĽ áááľ ááá áśáľáľ áá áá°á፠áĽáá°ááá á áľááŤá?
áĽáá°áá á°áááá áá áááľ áá?
áááłá, áá áĽáŤá á ááľ áá á áľááľá á°ááá áˇá, á¨ááŤá ááĽáˇá áĽá áĽáá°áá á°ááá áˇá, á¨ááŤá áĽáá°áá ááĽáˇá áĽá áĽáá°áá á°ááá áˇá. áĽá áĽáá á¨áá ááá á áľáá°áá, áĽá ááá ááá á¨áľ áá?
áĽáŠ áĽáŤáᣠáááá¨áľ á ááĽáá˘
á°ááłáłá ááá á á°á¨ááᢠáá áἠááá áá á, á áĽáááĽ, áĽáťáŹá áá áŤá°á¨áŠáľ. ááá áá á¨áľáłá˛áľá˛ááľ ááááŤáá˝á áłáá áááá áᣠáłáá ááľááá áĽá á ááśá áá á¨á°áá°á ááááá áŤáá° áááá ááá áá á¨áĽáᣠáá á á ááá áĽá፠áá áŤá á á¨áľáłá˛áľá˛ááľ ááááŤáá˝ áá¨áá˝ áĽáá°áá˝á áŁáŞáŤ áá á áá°á¨á°áᢠáĽá á¨áĽá áááá¤áŁ ááááŁáľáᣠááá ááá á áá°ááááá áá áá˘
á á á á.
áá á á áľá°ááá áááł áĽáá´áľ áá ááľá¨á áĽááłááĽá á áááŁááá˘
áĽáá° á áááłá°á áá á¨áá ááá á˝áá áĽá፠áĽáá°ááá áá ááá á pg_stat_statements áá á¨ááŤáá á áľááá áĽáá°ááá áá áĽá á áĽáą áá áĽááłá°áŽáá á ááľáłááľáᢠá queryid áá áŤá°áŽáá á á˛á᪠á°á¨á á°ááŁáŁá áááŽá˝á áĽáŤááťá¸áá ááá˘
á áá°ááᣠá á á˝á á°-ááśáá˝ ááŤá¨á áĽá áá á áľááľáś áĽáá°áá áááŁáľ áá˝ááá˘
á á°ááłáłá ááłáááŤ?
á áá.
áá áá áĽáá áááᢠáĽáŠ áĽáŤá. ááá áá áááŁáᢠá áá áá á¨ááá¨á áá á°á˝á 0...
áá á áĽááἠáŤáá°ááá° ááłá áááŁááá áá stat_statemetns áĽá፠ááááá áĽáá°áá˝á áłáá á áŁá á°áááĽáŠá˘
á Pg_stat_statements ááľáĽ áĽá áááŽá˝ ááአáá˝ááᢠáľáŤá_áŠá˛áᲠ= áá áŤáá á¨á áá° áľáĽáľáŚá˝á ááľáľá áá°á¨ááŁá¸áá á¨áááá áĽáááł á ááĽáááá˘
á áá á áĽáááĽ.
áĽá á፠ááá áááľ áŤáá ᣠáá á á áááá° ááᣠá¨á፠á¨áá˝ á á¨á´áá áĽá፠ááááľ ááááŤáᢠáĽá á áŁá á¨á°áŤá áá°áá áŞáŤá áĽááłá á á¨50-100 áĄáľáá˝á áŤáááᢠáĽá ááá ááá áĽá፠áĽá ááá áŤáá° á¨á°á¨áá áá. áá áá áááááľ á ááą ááááľ pg_stat_statements.max áá¨áá ááá˘
á á, áá áá áŤá á áĽáá°áá ááá áŤáľáááááłá. áĽá á áá ááááľ áĽáąá áá¨áłá°á áŤáľááááá. áĽá á¨áá°ááá áá áá ááᢠáááľá pg_stat_statements.max á ááᢠáĽá á ááśá áá 70% áĽááłáá°á¨áľáŠ á áŤáá. áĽáşáŁ ááá ááá á áá áááᢠáĽáá°áá áĽááľáááᢠáĽá áĽáá°áá áĽáááĽáŁáá. á¨áááĽáá á á˝á áłá áá˝ áĽá᳠ᨠ70 á áłá˝ á¨áá ᣠááááŁáľ áĽááľá áĽáá°áá ááá ááá á áá ááá˘
á á. ááŁáŞá á áá 5 ááᢠáĽá áá ááĽá á°áá˝ á á ááá˘
á áĽáááá áá á á.
áŞá˛áŽ
PS á áŤá´ áľááŁááľáľááŹáľ ááľáĽáŤá áá¨ááá˝á á¨áŤá áĽá á áá¨áŤ á áŤáŁá˘ ááľáĽ ááŤá°áľ áŤááťááŁáá áá áĽáá°áá˝á áĽá¨ááŤáá
ááá: hab.com