ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ืชืžืœื•ืœ ื“ื•"ื— 2015 ืžืืช ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™ "ื›ื•ื•ื ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL"

ื›ืชื‘ ื•ื™ืชื•ืจ: ืื ื™ ืžืฆื™ื™ืŸ ืฉื“ื•ื— ื–ื” ื”ื•ื ืžื ื•ื‘ืžื‘ืจ 2015 - ื—ืœืคื• ื™ื•ืชืจ ืž-4 ืฉื ื™ื ื•ืขื‘ืจ ื”ืจื‘ื” ื–ืžืŸ. ื”ื’ืจืกื” 9.4 ื”ื ื“ื•ื ื” ื‘ื“ื•ื— ืื™ื ื” ื ืชืžื›ืช ืขื•ื“. ื‘ืžื”ืœืš 4 ื”ืฉื ื™ื ื”ืื—ืจื•ื ื•ืช, 5 ืžื”ื“ื•ืจื•ืช ื—ื“ืฉื•ืช ืฉืœ PostgreSQL ืฉื•ื—ืจืจื•, ื•-15 ื’ืจืกืื•ืช ืฉืœ ืœื™ื‘ืช ืœื™ื ื•ืงืก ืฉื•ื—ืจืจื•. ืื ืชื›ืชื•ื‘ ืžื—ื“ืฉ ืืช ื”ืงื˜ืขื™ื ื”ืืœื”, ืชืงื‘ืœ ื“ื•ื— ืื—ืจ. ืื‘ืœ ื›ืืŸ ืื ื• ืจื•ืื™ื ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ื‘ืกื™ืกื™ ืขื‘ื•ืจ PostgreSQL, ืฉืขื“ื™ื™ืŸ ืจืœื•ื•ื ื˜ื™ ื”ื™ื•ื.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™


ืฉืžื™ ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™. ืื ื™ ืขื•ื‘ื“ ื‘- PostgreSQL-Consulting. ื•ืขื›ืฉื™ื• ืื“ื‘ืจ ืงืฆืช ืขืœ ืžื” ืœืขืฉื•ืช ืขื ืœื™ื ื•ืงืก ื‘ื™ื—ืก ืœื‘ืกื™ืกื™ ื ืชื•ื ื™ื ื‘ื›ืœืœ ื•-PostgreSQL ื‘ืคืจื˜, ื›ื™ ื”ืขืงืจื•ื ื•ืช ื“ื™ ื“ื•ืžื™ื.

ืขืœ ืžื” ื ื“ื‘ืจ? ืื ืืชื” ืžืชืงืฉืจ ืขื PostgreSQL, ืื– ื‘ืžื™ื“ื” ืžืกื•ื™ืžืช ืืชื” ืฆืจื™ืš ืœื”ื™ื•ืช ืžื ื”ืœ UNIX. ืžื” ื–ื” ืื•ืžืจ? ืื ื ืฉื•ื•ื” ืืช Oracle ื•-PostgreSQL, ืื– ื‘-Oracle ืืชื” ืฆืจื™ืš ืœื”ื™ื•ืช 80% ืžื ื”ืœ ืžืกื“ ื ืชื•ื ื™ื ืฉืœ DBA ื•-20% ืžื ื”ืœ ืœื™ื ื•ืงืก.

ืขื PostgreSQL ื–ื” ืงืฆืช ื™ื•ืชืจ ืžืกื•ื‘ืš. ืขื PostgreSQL ืืชื” ืฆืจื™ืš ืœื”ื‘ื™ืŸ ื”ืจื‘ื” ื™ื•ืชืจ ืื™ืš ืœื™ื ื•ืงืก ืขื•ื‘ื“ืช. ื•ื‘ืžืงื‘ื™ืœ ืœืจื•ืฅ ืงืฆืช ืื—ืจื™ ื”ืงื˜ืจ, ื›ื™ ืœืื—ืจื•ื ื” ื”ื›ืœ ื”ืชืขื“ื›ืŸ ื“ื™ ื™ืคื”. ื•ืžืฉื•ื—ืจืจื™ื ื’ืจืขื™ื ื™ื ื—ื“ืฉื™ื, ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื—ื“ืฉื” ืžื•ืคื™ืขื”, ื‘ื™ืฆื•ืขื™ื ืžืฉืชืคืจื™ื ื•ื›ื•'.

ืœืžื” ืื ื—ื ื• ืžื“ื‘ืจื™ื ืขืœ ืœื™ื ื•ืงืก? ื‘ื›ืœืœ ืœื ื‘ื’ืœืœ ืฉืื ื—ื ื• ื‘ื›ื ืก Linux Peter, ืืœื ื‘ื’ืœืœ ืฉื‘ืชื ืื™ื ืžื•ื“ืจื ื™ื™ื ืื—ืช ืžืžืขืจื›ื•ืช ื”ื”ืคืขืœื” ื”ืžื•ืฆื“ืงื•ืช ื‘ื™ื•ืชืจ ืœืฉื™ืžื•ืฉ ื‘ื‘ืกื™ืกื™ ื ืชื•ื ื™ื ื‘ื›ืœืœ ื•ื‘-PostgreSQL ื‘ืคืจื˜ ื”ื™ื ืœื™ื ื•ืงืก. ื›ื™ FreeBSD, ืœืžืจื‘ื” ื”ืฆืขืจ, ืžืชืคืชื—ืช ื‘ืื™ื–ื” ื›ื™ื•ื•ืŸ ืžืื•ื“ ืžื•ื–ืจ. ื•ื™ื”ื™ื• ื‘ืขื™ื•ืช ื’ื ื‘ื‘ื™ืฆื•ืขื™ื ื•ื’ื ื‘ื”ืจื‘ื” ื“ื‘ืจื™ื ืื—ืจื™ื. ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ PostgreSQL ื‘-Windows ื”ื ื‘ื“ืจืš ื›ืœืœ ื‘ืขื™ื” ืจืฆื™ื ื™ืช ื ืคืจื“ืช, ื”ืžื‘ื•ืกืกืช ืขืœ ื”ืขื•ื‘ื“ื” ืฉืœ-Windows ืื™ืŸ ืืช ืื•ืชื• ื–ื™ื›ืจื•ืŸ ืžืฉื•ืชืฃ ื›ืžื• UNIX, ื‘ืขื•ื“ ืฉ-PostgreSQL ืงืฉื•ืจื” ื›ื•ืœื” ืœื–ื”, ืžื›ื™ื•ื•ืŸ ืฉื–ื• ืžืขืจื›ืช ืžืจื•ื‘ืช ืชื”ืœื™ื›ื™ื.

ื•ืื ื™ ื—ื•ืฉื‘ ืฉื›ื•ืœื ืคื—ื•ืช ืžืชืขื ื™ื™ื ื™ื ื‘ืืงื–ื•ื˜ื™ืงื” ื›ืžื• ืกื•ืœืืจื™ืก, ืื– ื‘ื•ื ื ืœืš.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ืœื”ืคืฆื” ืžื•ื“ืจื ื™ืช ืฉืœ ืœื™ื ื•ืงืก ื™ืฉ ื™ื•ืชืจ ืž-1 ืืคืฉืจื•ื™ื•ืช syctl, ืชืœื•ื™ ืื™ืš ืืชื” ื‘ื•ื ื” ืืช ื”ืœื™ื‘ื”. ื™ื—ื“ ืขื ื–ืืช, ืื ื ืกืชื›ืœ ืขืœ ื”ืื’ื•ื–ื™ื ื”ืฉื•ื ื™ื, ื ื•ื›ืœ ืœื”ืชืื™ื ืžืฉื”ื• ื‘ื“ืจื›ื™ื ืจื‘ื•ืช. ื™ืฉื ื ืคืจืžื˜ืจื™ื ืฉืœ ืžืขืจื›ืช ื”ืงื‘ืฆื™ื ื›ื™ืฆื“ ืœื”ืขืœื•ืช ืื•ืชื. ืื ื™ืฉ ืœืš ืฉืืœื•ืช ืœื’ื‘ื™ ืื™ืš ืœื”ืคืขื™ืœ ืืช ื–ื”: ืžื” ืœื”ืคืขื™ืœ ื‘-BIOS, ืื™ืš ืœื”ื’ื“ื™ืจ ืืช ื”ื—ื•ืžืจื” ื•ื›ื•'.

ื–ื”ื• ื ืคื— ื’ื“ื•ืœ ืžืื•ื“ ืฉื ื™ืชืŸ ืœื“ื•ืŸ ื‘ื• ืขืœ ืคื ื™ ืžืกืคืจ ื™ืžื™ื, ื•ืœื ื‘ื“ื•ื— ืงืฆืจ ืื—ื“, ืื‘ืœ ื›ืขืช ืืชืžืงื“ ื‘ื“ื‘ืจื™ื ื—ืฉื•ื‘ื™ื, ื›ื™ืฆื“ ืœื”ื™ืžื ืข ืžืื•ืชืŸ ื’ืจื™ืคื•ืช ืฉืžื•ื‘ื˜ื—ื•ืช ื™ืžื ืขื• ืžืžืš ืœื”ืฉืชืžืฉ ื”ื™ื˜ื‘ ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ืฉืœืš ื‘ืœื™ื ื•ืงืก ืื ืืชื” ืืœ ืชืชืงืŸ ืื•ืชื. ื•ื™ื—ื“ ืขื ื–ืืช, ื ืงื•ื“ื” ื—ืฉื•ื‘ื” ื”ื™ื ืฉืคืจืžื˜ืจื™ื ืจื‘ื™ื ืฉืœ ื‘ืจื™ืจืช ืžื—ื“ืœ ืื™ื ื ื›ืœื•ืœื™ื ื‘ื”ื’ื“ืจื•ืช ื”ื ื›ื•ื ื•ืช ืœืžืกื“ ื”ื ืชื•ื ื™ื. ื›ืœื•ืžืจ, ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ื–ื” ื™ืขื‘ื•ื“ ื’ืจื•ืข ืื• ืœื ื‘ื›ืœืœ.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ืื™ืœื• ื™ืขื“ื™ ื›ื•ื•ื ื•ืŸ ืžืกื•ืจืชื™ื™ื ื™ืฉ ื‘ืœื™ื ื•ืงืก? ืื ื™ ื—ื•ืฉื‘ ืฉืžื›ื™ื•ื•ืŸ ืฉื›ื•ืœื›ื ืขื•ืกืงื™ื ื‘ื ื™ื”ื•ืœ ืœื™ื ื•ืงืก, ืื™ืŸ ืฆื•ืจืš ืœื”ืกื‘ื™ืจ ืžื” ื”ื ื™ืขื“ื™ื.

ืืชื” ื™ื›ื•ืœ ืœื›ื•ื•ืŸ:

  • ืžืขื‘ื“.
  • ื–ื™ื›ืจื•ืŸ.
  • ืื—ืกื•ืŸ.
  • ืึทื—ึตืจ. ื ื“ื‘ืจ ืขืœ ื–ื” ื‘ืกื•ืฃ ืœื ืฉื ื•ืฉ. ืืคื™ืœื•, ืœืžืฉืœ, ืคืจืžื˜ืจื™ื ื›ืžื• ืžื“ื™ื ื™ื•ืช ื—ื™ืกื›ื•ืŸ ื‘ืื ืจื’ื™ื” ื™ื›ื•ืœื™ื ืœื”ืฉืคื™ืข ืขืœ ื”ื‘ื™ืฆื•ืขื™ื ื‘ืฆื•ืจื” ืžืื•ื“ ืœื ืฆืคื•ื™ื” ื•ืœื ื”ื›ื™ ื ืขื™ืžื”.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ืžื” ื”ื ื”ืคืจื˜ื™ื ืฉืœ PostgreSQL ื•ืฉืœ ืžืกื“ ื”ื ืชื•ื ื™ื ื‘ื›ืœืœ? ื”ื‘ืขื™ื” ื”ื™ื ืฉืืชื” ืœื ื™ื›ื•ืœ ืœืฆื‘ื•ื˜ ืืฃ ืื’ื•ื– ื‘ื•ื“ื“ ื•ืœืจืื•ืช ืฉื”ื‘ื™ืฆื•ืขื™ื ืฉืœื ื• ื”ืฉืชืคืจื• ืžืฉืžืขื•ืชื™ืช.

ื›ืŸ, ื™ืฉ ื’ืื“ื’'ื˜ื™ื ื›ืืœื”, ืื‘ืœ ืžืกื“ ื ืชื•ื ื™ื ื–ื” ื“ื‘ืจ ืžื•ืจื›ื‘. ื”ื•ื ืžืงื™ื™ื ืื™ื ื˜ืจืืงืฆื™ื” ืขื ื›ืœ ื”ืžืฉืื‘ื™ื ืฉื™ืฉ ืœืฉืจืช ื•ืžืขื“ื™ืฃ ืœืงื™ื™ื ืื™ื ื˜ืจืืงืฆื™ื” ืžืœืื”. ืื ืชืกืชื›ืœ ืขืœ ื”ื”ืžืœืฆื•ืช ื”ืขื“ื›ื ื™ื•ืช ืฉืœ ืื•ืจืงืœ ื›ื™ืฆื“ ืœื”ืฉืชืžืฉ ื‘ืžืขืจื›ืช ื”ืคืขืœื” ืžืืจื—, ื–ื” ื™ื”ื™ื” ื›ืžื• ื”ื‘ื“ื™ื—ื” ืขืœ ืื•ืชื• ืงื•ืกืžื•ื ืื•ื˜ ืžื•ื ื’ื•ืœื™ - ื”ืื›ื™ืœื• ืืช ื”ื›ืœื‘ ื•ืืœ ืชื™ื’ืข ื‘ื›ืœื•ื. ื‘ื•ืื• ื ื™ืชืŸ ืœืžืกื“ ื”ื ืชื•ื ื™ื ืืช ื›ืœ ื”ืžืฉืื‘ื™ื, ื”ืžืื’ืจ ืขืฆืžื• ื™ืกื“ืจ ื”ื›ืœ.

ื‘ืื•ืคืŸ ืขืงืจื•ื ื™, ื‘ืžื™ื“ื” ืžืกื•ื™ืžืช ื”ืžืฆื‘ ื–ื”ื” ืœื—ืœื•ื˜ื™ืŸ ืขื PostgreSQL. ื”ื”ื‘ื“ืœ ื”ื•ื ืฉื‘ืกื™ืก ื”ื ืชื•ื ื™ื ืขื“ื™ื™ืŸ ืœื ืžืกื•ื’ืœ ืœืงื—ืช ืืช ื›ืœ ื”ืžืฉืื‘ื™ื ืœืขืฆืžื•, ื›ืœื•ืžืจ ืื™ืคืฉื”ื• ื‘ืจืžืช ืœื™ื ื•ืงืก ืืชื” ืฆืจื™ืš ืœืกื“ืจ ืืช ื”ื›ืœ ื‘ืขืฆืžืš.

ื”ืจืขื™ื•ืŸ ื”ืžืจื›ื–ื™ ื”ื•ื ืœื ืœื‘ื—ื•ืจ ืžื˜ืจื” ื‘ื•ื“ื“ืช ื•ืœื”ืชื—ื™ืœ ืœื›ื•ื•ืŸ ืื•ืชื•, ืœืžืฉืœ ื–ื™ื›ืจื•ืŸ, ืžืขื‘ื“ ืื• ืžืฉื”ื• ื›ื–ื”, ืืœื ืœื ืชื— ืืช ืขื•ืžืก ื”ืขื‘ื•ื“ื” ื•ืœื ืกื•ืช ืœืฉืคืจ ืืช ื”ืชืคื•ืงื” ืขื“ ื›ืžื” ืฉื ื™ืชืŸ ื›ื“ื™ ืฉื”ืขื•ืžืก ืฉืžืชื›ื ืชื™ื ื˜ื•ื‘ื™ื ื™ืฆืจื• ืื•ืชื• ืขื‘ื•ืจื ื•, ื›ื•ืœืœ ื”ืžืฉืชืžืฉื™ื ืฉืœื ื•.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ื”ื ื” ืชืžื•ื ื” ืฉืชืกื‘ื™ืจ ืžื” ื–ื”. ื™ืฉ ืžืื’ืจ ืžืขืจื›ืช ื”ืคืขืœื” ืœื™ื ื•ืงืก ื•ื™ืฉ ื–ื™ื›ืจื•ืŸ ืžืฉื•ืชืฃ ื•ื™ืฉ ืžืื’ืจื™ื ืžืฉื•ืชืคื™ื ืฉืœ PostgreSQL. PostgreSQL, ื‘ื ื™ื’ื•ื“ ืœ-Oracle, ืขื•ื‘ื“ ื™ืฉื™ืจื•ืช ืจืง ื“ืจืš ืžืื’ืจ ื”ืงืจื ืœ, ื›ืœื•ืžืจ, ื›ื“ื™ ืฉื“ืฃ ืžื”ื“ื™ืกืง ื™ื™ื›ื ืก ืœื–ื™ื›ืจื•ืŸ ื”ืžืฉื•ืชืฃ ืฉืœื•, ืขืœื™ื• ืœืขื‘ื•ืจ ื“ืจืš ืžืื’ืจ ื”ืงืจื ืœ ื•ื‘ื—ื–ืจื”, ื‘ืื•ืชื• ืžืฆื‘ ื‘ื“ื™ื•ืง.

ื“ื™ืกืงื™ื ื—ื™ื™ื ืชื—ืช ืžืขืจื›ืช ื–ื•. ืฆื™ื™ืจืชื™ ืืช ื–ื” ื›ื“ื™ืกืงื™ื. ืœืžืขืฉื”, ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉื™ืฉ ื‘ืงืจ RAID ื•ื›ื•'.

ื•ื”ืงืœื˜-ืคืœื˜ ื”ื–ื” ื‘ื“ืจืš ื–ื• ืื• ืื—ืจืช ืžืชืจื—ืฉ ื“ืจืš ื”ืขื ื™ื™ืŸ ื”ื–ื”.

PostgreSQL ื”ื•ื ืžืกื“ ื ืชื•ื ื™ื ืงืœืืกื™. ื™ืฉ ื“ืฃ ื‘ืคื ื™ื. ื•ื›ืœ ื”ืงืœื˜ ื•ื”ืคืœื˜ ืžืชืจื—ืฉื™ื ื‘ืืžืฆืขื•ืช ื“ืคื™ื. ืื ื—ื ื• ืžืขืœื™ื ื‘ืœื•ืงื™ื ืœื–ื™ื›ืจื•ืŸ ืขื ื“ืคื™ื. ื•ืื ืฉื•ื ื“ื‘ืจ ืœื ืงืจื”, ืื ื—ื ื• ืคืฉื•ื˜ ืงื•ืจืื™ื ืื•ืชื, ืื– ื‘ื”ื“ืจื’ื” ื”ื ื ืขืœืžื™ื ืžื”ืžื˜ืžื•ืŸ ื”ื–ื”, ืžื”ืžืื’ืจื™ื ื”ืžืฉื•ืชืคื™ื ื•ืžื’ื™ืขื™ื ื‘ื—ื–ืจื” ืœื“ื™ืกืง.

ืื ื ื—ืœื™ืฃ ืžืฉื”ื• ืื™ืคืฉื”ื•, ืื– ื›ืœ ื”ืขืžื•ื“ ืžืกื•ืžืŸ ื›ืžืœื•ื›ืœืš. ืกื™ืžื ืชื™ ืื•ืชื ื›ืืŸ ื‘ื›ื—ื•ืœ. ื•ื–ื” ืื•ืžืจ ืฉื”ื“ืฃ ื”ื–ื” ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืžืกื•ื ื›ืจืŸ ืขื ืื—ืกื•ืŸ ื‘ืœื•ืง. ื›ืœื•ืžืจ, ื›ืฉืขืฉื™ื ื• ืืช ื–ื” ืžืœื•ื›ืœืš, ืขืฉื™ื ื• ืขืจืš ื‘-WAL. ื•ื‘ืื™ื–ื” ืจื’ืข ื ืคืœื ื‘ื–ืžืŸ ื”ื’ื™ืขื” ืชื•ืคืขื” ืฉื ืงืจืืช ืžื—ืกื•ื. ื•ื‘ื™ื•ืžืŸ ื–ื” ื ืจืฉื ืžื™ื“ืข ืฉื”ื•ื ื”ื’ื™ืข. ื•ื–ื” ืื•ืžืจ ืฉื›ืœ ื”ื“ืคื™ื ื”ืžืœื•ื›ืœื›ื™ื ืฉื”ื™ื• ื›ืืŸ ื‘ืื•ืชื• ืจื’ืข ื‘ืžืื’ืจื™ื ื”ืžืฉื•ืชืคื™ื ื”ืืœื” ืกื•ื ื›ืจื ื• ืขื ื“ื™ืกืง ื”ืื—ืกื•ืŸ ื‘ืืžืฆืขื•ืช fsync ื“ืจืš ืžืื’ืจ ื”ืงืจื ืœ.

ืœืžื” ื–ื” ื ืขืฉื”? ืื ืื™ื‘ื“ื ื• ืžืชื—, ืื– ืœื ืงื™ื‘ืœื ื• ืืช ื”ืžืฆื‘ ืฉื›ืœ ื”ื ืชื•ื ื™ื ืื‘ื“ื•. ื–ื™ื›ืจื•ืŸ ืžืชืžืฉืš, ืฉื›ื•ืœื ืกื™ืคืจื• ืœื ื• ืขืœื™ื•, ื ืžืฆื ืขื“ ื›ื” ื‘ืชื•ืจืช ืžืกื“ื™ ื”ื ืชื•ื ื™ื - ื–ื”ื• ืขืชื™ื“ ืžื–ื”ื™ืจ, ืฉืื ื•, ื›ืžื•ื‘ืŸ, ืฉื•ืืคื™ื ืืœื™ื• ื•ืื ื—ื ื• ืื•ื”ื‘ื™ื ืื•ืชื•, ืื‘ืœ ืœืขืช ืขืชื” ื”ื ื—ื™ื™ื ื‘ืขื•ื“ ืžื™ื ื•ืก 20 ืฉื ื”. ื•ื›ืžื•ื‘ืŸ, ื›ืœ ื–ื” ืฆืจื™ืš ืœื”ื™ื•ืช ื‘ืžืขืงื‘.

ื•ื”ืžืฉื™ืžื” ืฉืœ ืžืงืกื•ื ื”ืชืคื•ืงื” ื”ื™ื ืœื›ื•ื•ื ืŸ ืืช ื›ืœ ื”ืฉืœื‘ื™ื ื”ืืœื” ื›ืš ืฉื”ื›ืœ ื™ื–ื•ื– ืงื“ื™ืžื” ื•ืื—ื•ืจื” ื‘ืžื”ื™ืจื•ืช. ื–ื™ื›ืจื•ืŸ ืžืฉื•ืชืฃ ื”ื•ื ื‘ืขืฆื ืžื˜ืžื•ืŸ ืขืžื•ื“ื™ื. ื‘-PostgreSQL ืฉืœื—ื ื• ืฉืื™ืœืชืช ื‘ื—ื™ืจื” ืื• ืžืฉื”ื•, ื–ื” ืฉืœืฃ ืืช ื”ื ืชื•ื ื™ื ื”ืืœื” ืžื”ื“ื™ืกืง. ื”ื ื”ื’ื™ืขื• ืœืžืื’ืจื™ื ืžืฉื•ืชืคื™ื. ื‘ื”ืชืื ืœื›ืš, ื›ื“ื™ ืฉื–ื” ื™ืขื‘ื•ื“ ื˜ื•ื‘ ื™ื•ืชืจ, ื—ื™ื™ื‘ ืœื”ื™ื•ืช ื”ืจื‘ื” ื–ื™ื›ืจื•ืŸ.

ื›ื“ื™ ืฉื›ืœ ื–ื” ื™ืขื‘ื•ื“ ื˜ื•ื‘ ื•ืžื”ื™ืจ, ืฆืจื™ืš ืœื”ื’ื“ื™ืจ ื ื›ื•ืŸ ืืช ืžืขืจื›ืช ื”ื”ืคืขืœื” ื‘ื›ืœ ื”ืฉืœื‘ื™ื. ื•ื‘ื—ืจ ื—ื•ืžืจื” ืžืื•ื–ื ืช, ื›ื™ ืื ื™ืฉ ืœืš ื—ื•ืกืจ ืื™ื–ื•ืŸ ื‘ืžืงื•ื ื›ืœืฉื”ื•, โ€‹โ€‹ืื– ืืชื” ื™ื›ื•ืœ ืœื™ืฆื•ืจ ื”ืจื‘ื” ื–ื™ื›ืจื•ืŸ, ืื‘ืœ ื–ื” ืœื ื™ื˜ื•ืคืœ ื‘ืžื”ื™ืจื•ืช ืžืกืคืงืช.

ื•ื‘ื•ืื• ื ืขื‘ื•ืจ ืขืœ ื›ืœ ืื—ืช ืžื”ื ืงื•ื“ื•ืช ื”ืœืœื•.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ื›ื“ื™ ืœื’ืจื•ื ืœื“ืคื™ื ื”ืœืœื• ืœื ื•ืข ืžื”ืจ ื™ื•ืชืจ ื”ืœื•ืš ื•ืฉื•ื‘, ืขืœื™ืš ืœื”ืฉื™ื’ ืืช ื”ืคืขื•ืœื•ืช ื”ื‘ืื•ืช:

  • ืจืืฉื™ืช, ืืชื” ืฆืจื™ืš ืœืขื‘ื•ื“ ื‘ืฆื•ืจื” ื™ืขื™ืœื” ื™ื•ืชืจ ืขื ื–ื™ื›ืจื•ืŸ.
  • ืฉื ื™ืช, ื”ืžืขื‘ืจ ื”ื–ื” ื›ืืฉืจ ื“ืคื™ื ืžื”ื–ื™ื›ืจื•ืŸ ืขื•ื‘ืจื™ื ืœื“ื™ืกืง ืืžื•ืจ ืœื”ื™ื•ืช ื™ืขื™ืœ ื™ื•ืชืจ.
  • ื•ืฉืœื™ืฉื™ืช, ื—ื™ื™ื‘ื™ื ืœื”ื™ื•ืช ื“ื™ืกืงื™ื ื˜ื•ื‘ื™ื.

ืื ื™ืฉ ืœืš 512 ื’'ื™ื’ื”-ื‘ื™ื™ื˜ ืฉืœ ื–ื™ื›ืจื•ืŸ RAM ื‘ืฉืจืช ื•ื›ืœ ื–ื” ืžื’ื™ืข ืœื›ื•ื ืŸ ืงืฉื™ื— ืฉืœ SATA ืœืœื ื›ืœ ืžื˜ืžื•ืŸ, ืื– ื›ืœ ืฉืจืช ืžืกื“ ื”ื ืชื•ื ื™ื ื”ื•ืคืš ืœื ืจืง ืœื“ืœืขืช, ืืœื ืœื“ืœืขืช ืขื ืžืžืฉืง SATA. ืืชื” ืชืชืงืœ ื‘ื–ื” ื™ืฉื™ืจื•ืช. ื•ืฉื•ื ื“ื‘ืจ ืœื ื™ืฆื™ืœ ืื•ืชืš.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ืœื’ื‘ื™ ื”ื ืงื•ื“ื” ื”ืจืืฉื•ื ื” ืขื ื”ื–ื™ื›ืจื•ืŸ, ื™ืฉื ื ืฉืœื•ืฉื” ื“ื‘ืจื™ื ืฉื™ื›ื•ืœื™ื ืœื”ืงืฉื•ืช ืžืื•ื“ ืขืœ ื”ื—ื™ื™ื.

ื”ืจืืฉื•ืŸ ืฉื‘ื”ื ื”ื•ื NUMA. NUMA ื”ื•ื ื“ื‘ืจ ืฉื ื•ืฆืจ ื›ื“ื™ ืœืฉืคืจ ื‘ื™ืฆื•ืขื™ื. ื‘ื”ืชืื ืœืขื•ืžืก ื”ืขื‘ื•ื“ื”, ื ื™ืชืŸ ืœื™ื™ืขืœ ื“ื‘ืจื™ื ืฉื•ื ื™ื. ื•ื‘ืฆื•ืจืชื• ื”ื—ื“ืฉื” ื”ื ื•ื›ื—ื™ืช, ื”ื•ื ืื™ื ื• ื˜ื•ื‘ ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ื ื›ื’ื•ืŸ ืžืกื“ื™ ื ืชื•ื ื™ื ื”ืžืฉืชืžืฉื™ื ื‘ืื™ื ื˜ื ืกื™ื‘ื™ื•ืช ื‘ืžืื’ืจื™ื ืžืฉื•ืชืคื™ื ืฉืœ ืžื˜ืžื•ืŸ ืขืžื•ื“ื™ื.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ื‘ึผึฐืงึดืฆื•ึผืจ ื ึดืžืจึธืฅ. ืื™ืš ืืชื” ื™ื›ื•ืœ ืœื“ืขืช ืื ืžืฉื”ื• ืœื ื‘ืกื“ืจ ืขื NUMA? ื™ืฉ ืœืš ืื™ื–ื•ืฉื”ื™ ื“ืคื™ืงื” ืœื ื ืขื™ืžื”, ืคืชืื•ื ืื™ื–ื” CPU ืขืžื•ืก. ื‘ืžืงื‘ื™ืœ, ืืชื” ืžื ืชื— ืฉืื™ืœืชื•ืช ื‘-PostgreSQL ื•ืจื•ืื” ืฉืื™ืŸ ืฉื ืฉื•ื ื“ื‘ืจ ื“ื•ืžื”. ืฉืื™ืœืชื•ืช ืืœื• ืœื ืืžื•ืจื•ืช ืœื”ื™ื•ืช ืื™ื ื˜ื ืกื™ื‘ื™ื•ืช ื›ืœ ื›ืš ื‘ืžืขื‘ื“. ืืชื” ื™ื›ื•ืœ ืœืชืคื•ืก ืืช ื–ื” ื‘ืžืฉืš ื–ืžืŸ ืจื‘. ืงืœ ื™ื•ืชืจ ืœื”ืฉืชืžืฉ ื‘ื”ืžืœืฆื” ื”ื ื›ื•ื ื” ื›ื‘ืจ ืžื”ื”ืชื—ืœื” ื›ื™ืฆื“ ืœื”ื’ื“ื™ืจ ืืช NUMA ืขื‘ื•ืจ PostgreSQL.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ืžื” ื‘ืืžืช ืงื•ืจื”? NUMA ืจืืฉื™ ืชื™ื‘ื•ืช ืฉืœ Non-Uniform Memory Access. ืžื” ื”ื˜ืขื? ื™ืฉ ืœืš ืžืขื‘ื“, ืœื™ื“ื• ื™ืฉ ืืช ื”ื–ื™ื›ืจื•ืŸ ื”ืžืงื•ืžื™ ืฉืœื•. ื•ื—ื™ื‘ื•ืจื™ ื”ื–ื™ื›ืจื•ืŸ ื”ืืœื” ื™ื›ื•ืœื™ื ืœืžืฉื•ืš ื–ื™ื›ืจื•ืŸ ืžืžืขื‘ื“ื™ื ืื—ืจื™ื.

ืื ืืชื” ืจืฅ numactl --hardware, ืื– ืชืงื‘ืœ ืกื“ื™ืŸ ื›ืœ ื›ืš ื’ื“ื•ืœ. ื‘ื™ืŸ ื”ื™ืชืจ ื™ืชืงื™ื™ื ืžื’ืจืฉ ืžืจื—ืงื™ื. ื™ื”ื™ื• ืžืกืคืจื™ื - 10-20, ืžืฉื”ื• ื›ื–ื”. ื”ืžืกืคืจื™ื ื”ืืœื” ื”ื ืœื ื™ื•ืชืจ ืžืžืกืคืจ ื”ืงืคื™ืฆื•ืช ื›ื“ื™ ืœืืกื•ืฃ ืืช ื”ื–ื™ื›ืจื•ืŸ ื”ืžืจื•ื—ืง ื”ื–ื” ื•ืœื”ืฉืชืžืฉ ื‘ื• ื‘ืื•ืคืŸ ืžืงื•ืžื™. ืขืงืจื•ื ื™ืช, ืจืขื™ื•ืŸ ื˜ื•ื‘. ื–ื” ืžืื™ืฅ ืืช ื”ื‘ื™ืฆื•ืขื™ื ื”ื™ื˜ื‘ ืชื—ืช ืžื’ื•ื•ืŸ ืขื•ืžืกื™ ืขื‘ื•ื“ื”.

ื›ืขืช ืชืืจื• ืœืขืฆืžื›ื ืฉื™ืฉ ืœื›ื ืžืขื‘ื“ ืื—ื“ ืฉืžื ืกื” ืœื”ืฉืชืžืฉ ื‘ื–ื™ื›ืจื•ืŸ ื”ืžืงื•ืžื™ ืฉืœื•, ื•ืœืื—ืจ ืžื›ืŸ ืžื ืกื” ืœืžืฉื•ืš ื–ื™ื›ืจื•ืŸ ืื—ืจ ื‘ืืžืฆืขื•ืช ื—ื™ื‘ื•ืจ ืœืžืฉื”ื•. ื•ื”ืžืขื‘ื“ ื”ื–ื” ืžืงื‘ืœ ืืช ื›ืœ ืžื˜ืžื•ืŸ ื”ืขืžื•ื“ื™ื ืฉืœืš ื‘-PostgreSQL - ื–ื”ื•, ื›ืžื” ื’'ื™ื’ื”-ื‘ื™ื™ื˜. ืืชื” ืชืžื™ื“ ืžืงื‘ืœ ืืช ื”ืžืงืจื” ื”ื’ืจื•ืข ื‘ื™ื•ืชืจ, ื›ื™ ื‘ืžืขื‘ื“ ื™ืฉ ื‘ื“ืจืš ื›ืœืœ ืžืขื˜ ื–ื™ื›ืจื•ืŸ ื‘ืžื•ื“ื•ืœ ืขืฆืžื•. ื•ื›ืœ ื”ื–ื™ื›ืจื•ืŸ ืฉืžื˜ื•ืคืœ ืขื•ื‘ืจ ื“ืจืš ื”ื—ื™ื‘ื•ืจื™ื ื”ืœืœื•. ื–ื” ื™ื•ืฆื ืื™ื˜ื™ ื•ืขืฆื•ื‘. ื•ื”ืžืขื‘ื“ ืฉืœืš ืฉืžืฉืจืช ืืช ื”ืฆื•ืžืช ื”ื–ื” ืขืžื•ืก ื›ืœ ื”ื–ืžืŸ. ื•ื–ืžืŸ ื”ื’ื™ืฉื” ืฉืœ ื”ื–ื™ื›ืจื•ืŸ ื”ื–ื” ื’ืจื•ืข, ืื™ื˜ื™. ื–ื” ื”ืžืฆื‘ ืฉืืชื” ืœื ืจื•ืฆื” ืื ืืชื” ืžืฉืชืžืฉ ื‘ื–ื” ืขื‘ื•ืจ ืžืกื“ ื ืชื•ื ื™ื.

ืœื›ืŸ, ืืคืฉืจื•ืช ื ื›ื•ื ื” ื™ื•ืชืจ ืœืžืกื“ ื”ื ืชื•ื ื™ื ื”ื™ื ืฉืžืขืจื›ืช ื”ื”ืคืขืœื” ืœื™ื ื•ืงืก ืœื ืชื“ืข ืžื” ืงื•ืจื” ืฉื ื‘ื›ืœืœ. ื›ืš ืฉื”ื•ื ื ื™ื’ืฉ ืœื–ื™ื›ืจื•ืŸ ื›ืคื™ ืฉื”ื•ื ืขื•ืฉื”.

ืœืžื”? ื ืจืื” ืฉื–ื” ืฆืจื™ืš ืœื”ื™ื•ืช ื”ืคื•ืš. ื–ื” ืงื•ืจื” ืžืกื™ื‘ื” ืื—ืช ืคืฉื•ื˜ื”: ืื ื—ื ื• ืฆืจื™ื›ื™ื ื”ืจื‘ื” ื–ื™ื›ืจื•ืŸ ืขื‘ื•ืจ ืžื˜ืžื•ืŸ ื”ืขืžื•ื“ื™ื - ืขืฉืจื•ืช, ืžืื•ืช ื’ื™ื’ื”-ื‘ื™ื™ื˜.

ื•ืื ื”ืงืฆืื ื• ืืช ื›ืœ ื–ื” ื•ืฉื•ืžืจื™ื ืืช ื”ื ืชื•ื ื™ื ืฉืœื ื• ืฉื, ืื– ื”ืจื•ื•ื— ืžืฉื™ืžื•ืฉ ื‘ืžื˜ืžื•ืŸ ื™ื”ื™ื” ื’ื“ื•ืœ ืžืฉืžืขื•ืชื™ืช ืžื”ืจื•ื•ื— ืžื’ื™ืฉื” ื›ืœ ื›ืš ืžืกื•ื‘ื›ืช ืœื–ื™ื›ืจื•ืŸ. ื•ื›ืš ื ืจื•ื•ื™ื— ืœืื™ืŸ ืขืจื•ืš ื‘ื”ืฉื•ื•ืื” ืœืขื•ื‘ื“ื” ืฉื ื™ื’ืฉ ืœื–ื™ื›ืจื•ืŸ ื‘ืฆื•ืจื” ื™ืขื™ืœื” ื™ื•ืชืจ ื‘ืืžืฆืขื•ืช NUMA.

ืœื›ืŸ, ื™ืฉ ื›ืืŸ ืฉืชื™ ื’ื™ืฉื•ืช ื›ืจื’ืข, ืขื“ ืฉื”ืขืชื™ื“ ื”ื–ื•ื”ืจ ื”ื’ื™ืข, ื•ืžืกื“ ื”ื ืชื•ื ื™ื ืขืฆืžื• ืœื ืžืกื•ื’ืœ ืœื”ื‘ื™ืŸ ืขืœ ืื™ืœื• ืžืขื‘ื“ื™ื ื”ื•ื ืคื•ืขืœ ื•ืžืื™ืคื” ื”ื•ื ืฆืจื™ืš ืœืžืฉื•ืš ืžืฉื”ื•.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ืœื›ืŸ, ื”ื’ื™ืฉื” ื”ื ื›ื•ื ื” ื”ื™ื ืœื”ืฉื‘ื™ืช ืืช NUMA ืœื—ืœื•ื˜ื™ืŸ, ืœืžืฉืœ, ื‘ืขืช ืืชื—ื•ืœ ืžื—ื“ืฉ. ื‘ืจื•ื‘ ื”ืžืงืจื™ื, ื”ื–ื›ื™ื•ืช ื”ืŸ ื‘ืกื“ืจื™ ื’ื•ื“ืœ ื›ืืœื” ืฉื”ืฉืืœื” ืžื” ืขื“ื™ืฃ ื›ืœืœ ืœื ืขื•ืœื”.

ื™ืฉ ืืคืฉืจื•ืช ื ื•ืกืคืช. ืื ื• ืžืฉืชืžืฉื™ื ื‘ื• ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื™ื•ืชืจ ืžื”ืจืืฉื•ืŸ, ืžื›ื™ื•ื•ืŸ ืฉื›ืืฉืจ ืœืงื•ื— ืžื’ื™ืข ืืœื™ื ื• ืœืชืžื™ื›ื”, ืืชื—ื•ืœ ื”ืฉืจืช ื”ื•ื ืขื ื™ื™ืŸ ื’ื“ื•ืœ ืขื‘ื•ืจื•. ื™ืฉ ืœื• ืฉื ืขืกืง. ื•ื”ื ื—ื•ื•ื™ื ื‘ืขื™ื•ืช ื‘ื’ืœืœ NUMA. ืœื›ืŸ, ืื ื• ืžื ืกื™ื ืœื”ืฉื‘ื™ืช ืื•ืชื• ื‘ื“ืจื›ื™ื ืคื—ื•ืช ืคื•ืœืฉื ื™ื•ืช ืžืืฉืจ ื‘ืืชื—ื•ืœ ืžื—ื“ืฉ, ืืš ื”ืงืคื™ื“ื• ืœื‘ื“ื•ืง ืฉื”ื•ื ืžื•ืฉื‘ืช. ื›ื™ ื›ืคื™ ืฉืžืจืื” ื”ื ื™ืกื™ื•ืŸ, ื–ื” ื˜ื•ื‘ ืฉื ืฉื‘ื™ืช ืืช NUMA ื‘ืชื”ืœื™ืš ื”ืื‘ PostgreSQL, ืื‘ืœ ื–ื” ื‘ื›ืœืœ ืœื ื”ื›ืจื—ื™ ืฉื–ื” ื™ืขื‘ื•ื“. ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื‘ื“ื•ืง ื•ืœืจืื•ืช ืฉื”ื™ื ื‘ืืžืช ื›ื‘ืชื”.

ื™ืฉ ืคื•ืกื˜ ื˜ื•ื‘ ืฉืœ ืจื•ื‘ืจื˜ ื”ืืก. ื–ื”ื• ืื—ื“ ืžืžื—ื‘ื™ PostgreSQL. ืื—ื“ ื”ืžืคืชื—ื™ื ื”ืขื™ืงืจื™ื™ื ืฉืœ ื›ืœ ื”ื’ื™ื‘ืœื™ื ื‘ืจืžื” ื ืžื•ื›ื”. ื•ืื ืืชื” ืขื•ืงื‘ ืื—ืจ ื”ืงื™ืฉื•ืจื™ื ืžื”ืคื•ืกื˜ ื”ื–ื”, ื”ื ืžืชืืจื™ื ื›ืžื” ืกื™ืคื•ืจื™ื ืฆื‘ืขื•ื ื™ื™ื ืขืœ ืื™ืš NUMA ืขืฉืชื” ื—ื™ื™ื ืงืฉื™ื ืœืื ืฉื™ื. ืชืจืื”, ืœืžื“ ืืช ืจืฉื™ืžืช ื”ื‘ื“ื™ืงื” ืฉืœ ืžื ื”ืœ ื”ืžืขืจื›ืช ืฉืœ ืžื” ืฉืฆืจื™ืš ืœื”ื’ื“ื™ืจ ื‘ืฉืจืช ื›ื“ื™ ืฉื‘ืกื™ืก ื”ื ืชื•ื ื™ื ืฉืœื ื• ื™ืขื‘ื•ื“ ื˜ื•ื‘. ืฆืจื™ืš ืœืจืฉื•ื ื•ืœื‘ื“ื•ืง ืืช ื”ื”ื’ื“ืจื•ืช ื”ืืœื”, ื›ื™ ืื—ืจืช ื–ื” ืœื ื™ื”ื™ื” ื˜ื•ื‘ ื‘ืžื™ื•ื—ื“.

ืฉื™ืžื• ืœื‘ ืฉื–ื” ื—ืœ ืขืœ ื›ืœ ื”ื”ื’ื“ืจื•ืช ืฉืขืœื™ื”ืŸ ืื“ื‘ืจ. ืื‘ืœ ื‘ื“ืจืš ื›ืœืœ ืžืกื“ื™ ื ืชื•ื ื™ื ื ืืกืคื™ื ื‘ืžืฆื‘ ืžืืกื˜ืจ-ืขื‘ื“ ืœืกื•ื‘ืœื ื•ืช ืชืงืœื•ืช. ืืœ ืชืฉื›ื— ืœืขืฉื•ืช ืืช ื”ื”ื’ื“ืจื•ืช ื”ืืœื” ืขืœ ื”ืขื‘ื“ ื›ื™ ื™ื•ื ืื—ื“ ืชื”ื™ื” ืœืš ืชืื•ื ื” ื•ืชืขื‘ื•ืจ ืœืขื‘ื“ ื•ื”ื•ื ื™ื”ืคื•ืš ืœืื“ื•ืŸ.

ื‘ืžืฆื‘ ื—ื™ืจื•ื, ื›ืฉื”ื›ืœ ืจืข ืžืื•ื“, ื”ื˜ืœืคื•ืŸ ืฉืœืš ืžืฆืœืฆืœ ื›ืœ ื”ื–ืžืŸ ื•ื”ื‘ื•ืก ืฉืœืš ื‘ื ื‘ืจื™ืฆื” ืขื ืžืงืœ ื’ื“ื•ืœ, ืœื ื™ื”ื™ื” ืœืš ื–ืžืŸ ืœื—ืฉื•ื‘ ืขืœ ื‘ื“ื™ืงื”. ื•ื”ืชื•ืฆืื•ืช ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ื“ื™ ื”ืจื•ืช ืืกื•ืŸ.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ื”ื ืงื•ื“ื” ื”ื‘ืื” ื”ื™ื ื“ืคื™ื ืขื ืงื™ื™ื. ื“ืคื™ื ืขื ืงื™ื™ื ืงืฉื” ืœื‘ื“ื™ืงื” ื‘ื ืคืจื“, ื•ืื™ืŸ ื˜ืขื ืœืขืฉื•ืช ื–ืืช, ืœืžืจื•ืช ืฉื™ืฉ ืžื“ื“ื™ื ืฉื™ื›ื•ืœื™ื ืœืขืฉื•ืช ื–ืืช. ืงืœ ืœื’ื•ื’ืœ ืื•ืชื.

ืžื” ื”ื˜ืขื? ื™ืฉ ืœืš ืฉืจืช ืœื ืžืื•ื“ ื™ืงืจ ืขื ื”ืจื‘ื” ื–ื™ื›ืจื•ืŸ RAM, ืœืžืฉืœ, ื™ื•ืชืจ ืž-30 GB. ืืชื” ืœื ืžืฉืชืžืฉ ื‘ื“ืคื™ื ืขื ืงื™ื™ื. ื–ื” ืื•ืžืจ ืฉื‘ื”ื—ืœื˜ ื™ืฉ ืœืš ืชืงื•ืจื” ื‘ืžื•ื ื—ื™ื ืฉืœ ืฉื™ืžื•ืฉ ื‘ื–ื™ื›ืจื•ืŸ. ื•ื”ืชืงื•ืจื” ื”ื–ื• ืจื—ื•ืงื” ืžืœื”ื™ื•ืช ื”ื›ื™ ื ืขื™ืžื”.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ืœืžื”? ืื– ืžื” ืงื•ืจื”? ืžืขืจื›ืช ื”ื”ืคืขืœื” ืžืงืฆื” ื–ื™ื›ืจื•ืŸ ื‘ื—ืชื™ื›ื•ืช ืงื˜ื ื•ืช. ื–ื” ื›ืœ ื›ืš ื ื•ื—, ื›ื›ื” ื–ื” ืงืจื” ื”ื™ืกื˜ื•ืจื™ืช. ื•ืื ื ื™ื›ื ืก ืœืคืจื˜ื™ื, ืžืขืจื›ืช ื”ื”ืคืขืœื” ื—ื™ื™ื‘ืช ืœืชืจื’ื ื›ืชื•ื‘ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ืœื›ืชื•ื‘ื•ืช ืคื™ื–ื™ื•ืช. ื•ื”ืชื”ืœื™ืš ื”ื–ื” ืื™ื ื• ื”ืคืฉื•ื˜ ื‘ื™ื•ืชืจ, ื•ืœื›ืŸ ืžืขืจื›ืช ื”ื”ืคืขืœื” ืžืื—ืกื ืช ืืช ื”ืชื•ืฆืื” ืฉืœ ื”ืคืขื•ืœื” ื”ื–ื• ื‘ืžืื’ืจ ื”ืชืจื’ื•ื Lookaside Buffer (TLB).

ื•ืžื›ื™ื•ื•ืŸ ืฉื”-TLB ื”ื•ื ืžื˜ืžื•ืŸ, ื›ืœ ื”ื‘ืขื™ื•ืช ื”ื’ืœื•ืžื•ืช ื‘ืžื˜ืžื•ืŸ ืžืชืขื•ืจืจื•ืช ื‘ืžืฆื‘ ื–ื”. ืจืืฉื™ืช, ืื ื™ืฉ ืœืš ื”ืจื‘ื” ื–ื™ื›ืจื•ืŸ RAM ื•ื”ื›ืœ ืžื•ืงืฆื” ื‘ื ืชื—ื™ื ืงื˜ื ื™ื, ืื– ื”ืžืื’ืจ ื”ื–ื” ื”ื•ืคืš ื’ื“ื•ืœ ืžืื•ื“. ื•ืื ื”ืžื˜ืžื•ืŸ ื’ื“ื•ืœ, ื”ื—ื™ืคื•ืฉ ื“ืจื›ื• ืื™ื˜ื™ ื™ื•ืชืจ. ืชืงื•ืจื” ื”ื™ื ื‘ืจื™ืื” ื•ื”ื™ื ืขืฆืžื” ืชื•ืคืกืช ืžืงื•ื, ื›ืœื•ืžืจ ื–ื™ื›ืจื•ืŸ RAM ื ืฆืจืš ืขืœ ื™ื“ื™ ืžืฉื”ื• ืœื ื ื›ื•ืŸ. ื”ืคืขื.

ืฉื ื™ื™ื - ื›ื›ืœ ืฉื”ืžื˜ืžื•ืŸ ื™ื’ื“ืœ ื™ื•ืชืจ ื‘ืžืฆื‘ ื›ื–ื”, ื›ืš ื’ื“ืœ ื”ืกื™ื›ื•ื™ ืฉื™ื”ื™ื• ืœืš ืคืกืคื•ืกื™ ืžื˜ืžื•ืŸ. ื•ื”ื™ืขื™ืœื•ืช ืฉืœ ื”ืžื˜ืžื•ืŸ ื”ื–ื” ื™ื•ืจื“ืช ื‘ืžื”ื™ืจื•ืช ื›ื›ืœ ืฉื’ื•ื“ืœื• ื’ื“ืœ. ืœื›ืŸ, ืžืขืจื›ื•ืช ื”ืคืขืœื” ื”ื’ื™ืขื• ืขื ื’ื™ืฉื” ืคืฉื•ื˜ื”. ื–ื” ื”ื™ื” ื‘ืฉื™ืžื•ืฉ ื‘ืœื™ื ื•ืงืก ื‘ืžืฉืš ื–ืžืŸ ืจื‘. ื–ื” ื”ื•ืคื™ืข ื‘- FreeBSD ืœื ื›ืœ ื›ืš ืžื–ืžืŸ. ืื‘ืœ ืื ื—ื ื• ืžื“ื‘ืจื™ื ืขืœ ืœื™ื ื•ืงืก. ืืœื• ื“ืคื™ื ืขื ืงื™ื™ื.

ื•ื›ืืŸ ื™ืฉ ืœืฆื™ื™ืŸ ืฉืขืžื•ื“ื™ื ืขื ืงื™ื™ื, ื›ืจืขื™ื•ืŸ, ื ื“ื—ืคื• ื‘ืชื—ื™ืœื” ืขืœ ื™ื“ื™ ืงื”ื™ืœื•ืช ืฉื›ืœืœื• ืืช ืื•ืจืงืœ ื•-IBM, ื›ืœื•ืžืจ ื™ืฆืจื ื™ ืžืกื“ื™ ื ืชื•ื ื™ื ื—ืฉื‘ื• ืžืื•ื“ ืฉื–ื” ื™ื”ื™ื” ืฉื™ืžื•ืฉื™ ื’ื ืขื‘ื•ืจ ืžืกื“ื™ ื ืชื•ื ื™ื.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ื•ืื™ืš ืืคืฉืจ ืœื”ืชื™ื™ื“ื“ ืขื PostgreSQL? ืจืืฉื™ืช, ื™ืฉ ืœื”ืคืขื™ืœ ื“ืคื™ื ืขื ืงื™ื™ื ื‘ืœื™ื‘ืช ืœื™ื ื•ืงืก.

ืฉื ื™ืช, ื™ืฉ ืœืฆื™ื™ืŸ ืื•ืชื ื‘ืžืคื•ืจืฉ ืขืœ ื™ื“ื™ ื”ืคืจืžื˜ืจ sysctl - ื›ืžื” ื™ืฉ. ื”ืžืกืคืจื™ื ื›ืืŸ ื”ื ืžืื™ื–ื” ืฉืจืช ื™ืฉืŸ. ืืชื” ื™ื›ื•ืœ ืœื—ืฉื‘ ื›ืžื” ืžืื’ืจื™ื ืžืฉื•ืชืคื™ื ื™ืฉ ืœืš ื›ื“ื™ ืฉืขืžื•ื“ื™ื ืขื ืงื™ื™ื ื™ื•ื›ืœื• ืœื”ื™ื›ื ืก ืœืฉื.

ื•ืื ื›ืœ ื”ืฉืจืช ืฉืœืš ืžื•ืงื“ืฉ ืœ-PostgreSQL, ืื– ื ืงื•ื“ืช ื”ืชื—ืœื” ื˜ื•ื‘ื” ื”ื™ื ืœื”ืงืฆื•ืช ืื• 25% ืžื”-RAM ืœืžืื’ืจื™ื ืžืฉื•ืชืคื™ื, ืื• 75% ืื ืืชื” ื‘ื˜ื•ื— ืฉืžืกื“ ื”ื ืชื•ื ื™ื ืฉืœืš ื‘ื”ื—ืœื˜ ื™ืชืื™ื ืœ-75%. ื ืงื•ื“ืช ื”ืชื—ืœื” ืื—ืช. ื•ืฉืงื•ืœ, ืื ื™ืฉ ืœืš 256 GB ืฉืœ ื–ื™ื›ืจื•ืŸ RAM, ืื–, ื‘ื”ืชืื, ื™ื”ื™ื• ืœืš 64 GB ืฉืœ ื—ื•ืฆืฆื™ื ื’ื“ื•ืœื™ื. ื—ืฉื‘ื• ื‘ืงื™ืจื•ื‘ ืขื ืงืฆืช ืฉื•ืœื™ื™ื - ืœืžื” ืฆืจื™ืš ืœื”ื’ื“ื™ืจ ืืช ื”ื ืชื•ืŸ ื”ื–ื”.

ืœืคื ื™ ื’ืจืกื” 9.2 (ืื ืื ื™ ืœื ื˜ื•ืขื”, ืžืื– ื’ืจืกื” 8.2), ืืคืฉืจ ื”ื™ื” ืœื—ื‘ืจ ืืช PostgreSQL ืขื ื“ืคื™ื ืขื ืงื™ื™ื ื‘ืืžืฆืขื•ืช ืกืคืจื™ื™ืช ืฆื“ ืฉืœื™ืฉื™. ื•ืืช ื–ื” ืฆืจื™ืš ืœืขืฉื•ืช ืชืžื™ื“. ืจืืฉื™ืช, ืืชื” ืฆืจื™ืš ืืช ื”ืงืจื ืœ ื›ื“ื™ ืœื”ื™ื•ืช ืžืกื•ื’ืœ ืœื”ืงืฆื•ืช ื“ืคื™ื ืขื ืงื™ื™ื ื‘ืฆื•ืจื” ื ื›ื•ื ื”. ื•ืฉื ื™ืช, ื›ื“ื™ ืฉื”ืืคืœื™ืงืฆื™ื” ืฉืขื•ื‘ื“ืช ืื™ืชื ืชื•ื›ืœ ืœื”ืฉืชืžืฉ ื‘ื”ื. ื–ื” ืœื ื™ืฉืžืฉ ืจืง ื›ื›ื”. ืžื›ื™ื•ื•ืŸ ืฉ-PostgreSQL ื”ืงืฆืชื” ื–ื™ื›ืจื•ืŸ ื‘ืกื’ื ื•ืŸ ืžืขืจื›ืช 5, ื ื™ืชืŸ ื”ื™ื” ืœืขืฉื•ืช ื–ืืช ื‘ืืžืฆืขื•ืช libhugetlbfs - ื–ื”ื• ื”ืฉื ื”ืžืœื ืฉืœ ื”ืกืคืจื™ื™ื”.

ื‘-9.3, ื‘ื™ืฆื•ืขื™ PostgreSQL ืฉื•ืคืจื• ื‘ืขืช ืขื‘ื•ื“ื” ืขื ื–ื™ื›ืจื•ืŸ ื•ืฉื™ื˜ืช ื”ืงืฆืืช ื–ื™ื›ืจื•ืŸ ืžืขืจื›ืช 5 ื ื–ื ื—ื”. ื›ื•ืœื ืฉืžื—ื• ืžืื•ื“, ื›ื™ ืื—ืจืช ืืชื” ืžื ืกื” ืœื”ืจื™ืฅ ืฉื ื™ ืžื•ืคืขื™ PostgreSQL ืขืœ ืžื—ืฉื‘ ืื—ื“, ื•ื”ื•ื ืื•ืžืจ ืฉืื™ืŸ ืœื™ ืžืกืคื™ืง ื–ื™ื›ืจื•ืŸ ืžืฉื•ืชืฃ. ื•ื”ื•ื ืื•ืžืจ ืฉืฆืจื™ืš ืœืชืงืŸ ืืช sysctl. ื•ื™ืฉ ื›ื–ื” sysctl ืฉืขื“ื™ื™ืŸ ืฆืจื™ืš ืœืืชื—ืœ ื•ื›ื•'. ื‘ืื•ืคืŸ ื›ืœืœื™ ื›ื•ืœื ื”ื™ื• ืžืจื•ืฆื™ื. ืื‘ืœ ื”ืงืฆืืช ื–ื™ื›ืจื•ืŸ mmap ืฉื‘ืจื” ืืช ื”ืฉื™ืžื•ืฉ ื‘ื“ืคื™ื ืขื ืงื™ื™ื. ืจื•ื‘ ื”ืœืงื•ื—ื•ืช ืฉืœื ื• ืžืฉืชืžืฉื™ื ื‘ืžืื’ืจื™ื ืžืฉื•ืชืคื™ื ื’ื“ื•ืœื™ื. ื•ื”ืžืœืฆื ื• ื‘ื—ื•ื ืœื ืœืขื‘ื•ืจ ืœ-9.3, ื›ื™ ื”ืชืงื•ืจื” ืฉื ื”ืชื—ื™ืœื” ืœื—ืฉื‘ ื‘ืื—ื•ื–ื™ื ื˜ื•ื‘ื™ื.

ืื‘ืœ ื”ืงื”ื™ืœื” ืฉืžื” ืœื‘ ืœื‘ืขื™ื” ื”ื–ื• ื•ื‘-9.4 ื”ื ืขื™ื‘ื“ื• ืืช ื”ืื™ืจื•ืข ื”ื–ื” ื‘ืฆื•ืจื” ื˜ื•ื‘ื” ืžืื•ื“. ื•ื‘-9.4 ื”ื•ืคื™ืข ืคืจืžื˜ืจ ื‘-postgresql.conf ืฉื‘ื• ืืชื” ื™ื›ื•ืœ ืœืืคืฉืจ ืœื ืกื•ืช, ืœื”ืคืขื™ืœ ืื• ืœื›ื‘ื•ืช.

ื ืกื” ื”ื™ื ื”ืืคืฉืจื•ืช ื”ื‘ื˜ื•ื—ื” ื‘ื™ื•ืชืจ. ื›ืืฉืจ PostgreSQL ืžืชื—ื™ืœ, ื›ืืฉืจ ื”ื•ื ืžืงืฆื” ื–ื™ื›ืจื•ืŸ ืžืฉื•ืชืฃ, ื”ื•ื ืžื ืกื” ืœืชืคื•ืก ืืช ื”ื–ื™ื›ืจื•ืŸ ื”ื–ื” ืžื”ืขืžื•ื“ื™ื ื”ืขื ืงื™ื™ื. ื•ืื ื–ื” ืœื ืขื•ื‘ื“, ืื– ื–ื” ื—ื•ื–ืจ ืœื‘ื—ื™ืจื” ื”ืจื’ื™ืœื”. ื•ืื ื™ืฉ ืœืš FreeBSD ืื• Solaris, ืื– ืืชื” ื™ื›ื•ืœ ืœื ืกื•ืช, ื–ื” ืชืžื™ื“ ื‘ื˜ื•ื—.

ืื ื”ื•ื ืคื•ืขืœ, ืื– ื”ื•ื ืคืฉื•ื˜ ืœื ืžืชื—ื™ืœ ืื ื”ื•ื ืœื ื™ื›ื•ืœ ื”ื™ื” ืœื‘ื—ื•ืจ ืžืชื•ืš ื”ื“ืคื™ื ื”ืขื ืงื™ื™ื. ื›ืืŸ ื–ื” ื›ื‘ืจ ืขืœ ืžื™ ื•ืžื” ื™ื•ืชืจ ื ื—ืžื“. ืื‘ืœ ืื ื ื™ืกื™ืช, ื‘ื“ื•ืง ืฉื‘ืืžืช ื™ืฉ ืœืš ืืช ืžื” ืฉืืชื” ืฆืจื™ืš ืžื•ื“ื’ืฉ, ื›ื™ ื™ืฉ ื”ืจื‘ื” ืžืงื•ื ืœื˜ืขื•ื™ื•ืช. ื ื›ื•ืŸ ืœืขื›ืฉื™ื• ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื–ื• ืคื•ืขืœืช ืจืง ืขืœ ืœื™ื ื•ืงืก.

ืขื•ื“ ื”ืขืจื” ืงื˜ื ื” ืœืคื ื™ ืฉื ืžืฉื™ืš ื”ืœืื”. ื“ืคื™ ืขื ืง ืฉืงื•ืคื™ื ืื™ื ื ืขื•ืกืงื™ื ืขื“ื™ื™ืŸ ื‘-PostgreSQL. ื”ื•ื ืœื ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ื”ื ื›ืจื’ื™ืœ. ื•ืขื ื“ืคื™ ืขื ืง ืฉืงื•ืคื™ื ืœืขื•ืžืก ืขื‘ื•ื“ื” ืฉื›ื–ื”, ื›ืืฉืจ ื™ืฉ ืฆื•ืจืš ื‘ืคื™ืกืช ื–ื™ื›ืจื•ืŸ ืžืฉื•ืชืฃ ื’ื“ื•ืœื”, ื”ื™ืชืจื•ื ื•ืช ืžื’ื™ืขื™ื ืจืง ืขื ื ืคื—ื™ื ื’ื“ื•ืœื™ื ืžืื•ื“. ืื ื™ืฉ ืœืš ื˜ืจื”-ื‘ื™ื™ื˜ ืฉืœ ื–ื™ื›ืจื•ืŸ ืื– ื–ื” ืขืฉื•ื™ ืœื‘ื•ื ืœื™ื“ื™ ื‘ื™ื˜ื•ื™. ืื ืื ื—ื ื• ืžื“ื‘ืจื™ื ืขืœ ื™ื™ืฉื•ืžื™ื ื™ื•ืžื™ื•ืžื™ื™ื ื™ื•ืชืจ, ื›ืืฉืจ ื™ืฉ ืœืš ื–ื™ื›ืจื•ืŸ ืฉืœ 32, 64, 128, 256 ื’'ื™ื’ื”-ื‘ื™ื™ื˜ ื‘ืžื—ืฉื‘ ืฉืœืš, ืื– ื”ื“ืคื™ื ื”ืขื ืงื™ื™ื ื”ืจื’ื™ืœื™ื ื”ื ื‘ืกื“ืจ, ื•ืื ื—ื ื• ืคืฉื•ื˜ ืžืฉื‘ื™ืชื™ื ืืช ื”ืฉืงื•ืฃ.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ื•ื”ื“ื‘ืจ ื”ืื—ืจื•ืŸ ื‘ื–ื™ื›ืจื•ืŸ ืœื ืงืฉื•ืจ ื™ืฉื™ืจื•ืช ืœืคืจื™, ื–ื” ื‘ืืžืช ื™ื›ื•ืœ ืœื”ืจื•ืก ืืช ื”ื—ื™ื™ื ืฉืœืš. ื›ืœ ื”ืชืคื•ืงื” ืชื•ืฉืคืข ืžืื•ื“ ืžื”ืขื•ื‘ื“ื” ืฉื”ืฉืจืช ืžื—ืœื™ืฃ ื›ืœ ื”ื–ืžืŸ.

ื•ื–ื” ื™ื”ื™ื” ืžืื•ื“ ืœื ื ืขื™ื ื‘ื›ืžื” ื“ืจื›ื™ื. ื•ื”ื‘ืขื™ื” ื”ืขื™ืงืจื™ืช ื”ื™ื ืฉื’ืจืขื™ื ื™ื ืžื•ื“ืจื ื™ื™ื ืžืชื ื”ื’ื™ื ืžืขื˜ ืฉื•ื ื” ืžื’ืจืขื™ื ื™ ืœื™ื ื•ืงืก ื™ืฉื ื™ื ื™ื•ืชืจ. ื•ื”ื“ื‘ืจ ื”ื–ื” ื“ื™ ืœื ื ืขื™ื ืœื“ืจื•ืš ืขืœื™ื•, ื›ื™ ื›ืฉืื ื—ื ื• ืžื“ื‘ืจื™ื ืขืœ ืื™ื–ื•ืฉื”ื™ ืขื‘ื•ื“ื” ืขื ื”ื—ืœืคื”, ื–ื” ื ื’ืžืจ ื‘ื”ื’ืขืชื• ื‘ื˜ืจื ืขืช ืฉืœ ื”ืจื•ืฆื— OOM. ื•ื”-OOM-killer, ืฉืœื ื”ื’ื™ืข ื‘ื–ืžืŸ ื•ื”ืคื™ืœ ืืช PostgreSQL, ื”ื•ื ืœื ื ืขื™ื. ื›ื•ืœื ื™ื™ื“ืขื• ืขืœ ื–ื”, ื›ืœื•ืžืจ ืขื“ ื”ืžืฉืชืžืฉ ื”ืื—ืจื•ืŸ.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ืžื” ืงื•ืจื”? ื™ืฉ ืœืš ื›ืžื•ืช ื’ื“ื•ืœื” ืฉืœ ื–ื™ื›ืจื•ืŸ RAM ืฉื, ื”ื›ืœ ืขื•ื‘ื“ ื˜ื•ื‘. ืื‘ืœ ืžืกื™ื‘ื” ื›ืœืฉื”ื™ ื”ืฉืจืช ื ืชืงืข ื‘ื”ื—ืœืคื” ื•ืžืื˜ ื‘ื’ืœืœ ื–ื”. ื ืจืื” ืฉื™ืฉ ื”ืจื‘ื” ื–ื™ื›ืจื•ืŸ, ืื‘ืœ ื–ื” ืงื•ืจื”.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ื‘ืขื‘ืจ, ื”ืžืœืฆื ื• ืœื”ื’ื“ื™ืจ ืืช vm.swappiness ืœืืคืก, ื›ืœื•ืžืจ ืœื”ืฉื‘ื™ืช ืืช ื”ื”ื—ืœืคื”. ื‘ืขื‘ืจ, ื ืจืื” ื”ื™ื” ืฉ-32 ื’'ื™ื’ื”-ื‘ื™ื™ื˜ ืฉืœ ื–ื™ื›ืจื•ืŸ RAM ื•ืžืื’ืจื™ื ืžืฉื•ืชืคื™ื ืชื•ืืžื™ื ื”ื™ื• ื›ืžื•ืช ืขืฆื•ืžื”. ื”ืžื˜ืจื” ื”ืขื™ืงืจื™ืช ืฉืœ ื”ื”ื—ืœืคื” ื”ื™ื ืฉื™ื”ื™ื” ืžืงื•ื ืœื–ืจื•ืง ืืช ื”ืงืจื•ื ืื ื ื™ืคื•ืœ. ื•ื–ื” ื›ื‘ืจ ืœื ื”ืชื’ืฉื ื‘ืžื™ื•ื—ื“. ื•ืื– ืžื” ืืชื” ื”ื•ืœืš ืœืขืฉื•ืช ืขื ื”ืงืจื•ื ื”ื–ื”? ื–ื• ืžืฉื™ืžื” ืฉื‘ื” ืœื ืžืื•ื“ ื‘ืจื•ืจ ืžื“ื•ืข ื™ืฉ ืฆื•ืจืš ื‘ื”ื—ืœืคื”, ื‘ืžื™ื•ื—ื“ ื‘ื’ื•ื“ืœ ื›ื–ื”.

ืื‘ืœ ื‘ื’ื™ืจืกืื•ืช ืžื•ื“ืจื ื™ื•ืช ื™ื•ืชืจ, ื›ืœื•ืžืจ, ืฉืœื™ืฉื™ื•ืช ืฉืœ ื”ืงืจื ืœ, ื”ื”ืชื ื”ื’ื•ืช ื”ืฉืชื ืชื”. ื•ืื ืชื’ื“ื™ืจ ืืช ื”ื”ื—ืœืคื” ืœืืคืก, ื›ืœื•ืžืจ ืชื›ื‘ื” ืื•ืชื”, ืื– ื‘ืžื•ืงื“ื ืื• ื‘ืžืื•ื—ืจ, ื’ื ืื ื ืฉืืจ ืงืฆืช ื–ื™ื›ืจื•ืŸ RAM, ืจื•ืฆื— OOM ื™ื’ื™ืข ืืœื™ืš ื›ื“ื™ ืœื”ืจื•ื’ ืืช ื”ืฆืจื›ื ื™ื ื”ืื™ื ื˜ื ืกื™ื‘ื™ื™ื ื‘ื™ื•ืชืจ. ื›ื™ ื”ื•ื ื™ืฉืงื•ืœ ืฉืขื ืขื•ืžืก ื›ื–ื” ืขื•ื“ ื ืฉืืจ ืœื ื• ืงืฆืช ื•ื ืงืคื•ืฅ ื”ื—ื•ืฆื”, ื›ืœื•ืžืจ, ืœื ืœืžืกืžืจ ืืช ืชื”ืœื™ืš ื”ืžืขืจื›ืช, ืืœื ืœืžืกืžืจ ืžืฉื”ื• ืคื—ื•ืช ื—ืฉื•ื‘. ืื—ื“ ืคื—ื•ืช ื—ืฉื•ื‘ ื–ื” ื™ื”ื™ื” ื”ืฆืจื›ืŸ ื”ืื™ื ื˜ื ืกื™ื‘ื™ ืฉืœ ื–ื™ื›ืจื•ืŸ ืžืฉื•ืชืฃ, ื›ืœื•ืžืจ ืžื ื”ืœ ื”ื“ื•ืืจ. ื•ืื—ืจื™ ื–ื” ื™ื”ื™ื” ื˜ื•ื‘ ืื ื”ื‘ืกื™ืก ืœื ืฆืจื™ืš ืœื”ื™ื•ืช ืžืฉื•ื—ื–ืจ.

ืœื›ืŸ, ื›ืขืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ, ืขื“ ื›ืžื” ืฉืื ื™ ื–ื•ื›ืจ, ืจื•ื‘ ื”ื”ืคืฆื•ืช ื”ืŸ ืื™ืคืฉื”ื• ื‘ืกื‘ื™ื‘ื•ืช 6, ื›ืœื•ืžืจ ื‘ืื™ื–ื” ืฉืœื‘ ื›ื“ืื™ ืœื”ืชื—ื™ืœ ืœื”ืฉืชืžืฉ ื‘-swap ื‘ื”ืชืื ืœื›ืžื•ืช ื”ื–ื™ื›ืจื•ืŸ ืฉื ื•ืชืจ. ื›ืขืช ืื ื• ืžืžืœื™ืฆื™ื ืœื”ื’ื“ื™ืจ vm.swappiness = 1, ื›ื™ ื–ื” ื›ืžืขื˜ ืžื›ื‘ื” ืืช ื–ื”, ืื‘ืœ ืœื ื ื•ืชืŸ ืืช ืื•ืชื ืืคืงื˜ื™ื ื›ืžื• ืขื OOM-killer ืฉื”ื’ื™ืข ื‘ืื•ืคืŸ ื‘ืœืชื™ ืฆืคื•ื™ ื•ื”ืจื’ ืืช ื›ืœ ื”ืขื ื™ื™ืŸ.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ืžื” ื”ืœืื”? ื›ืฉืžื“ื‘ืจื™ื ืขืœ ื‘ื™ืฆื•ืขื™ื ืฉืœ ืžืกื“ื™ ื ืชื•ื ื™ื ื•ืžืชืงื“ืžื™ื ื‘ื”ื“ืจื’ื” ืœืขื‘ืจ ื“ื™ืกืงื™ื, ื›ื•ืœื ืžืชื—ื™ืœื™ื ืœืชืคื•ืก ืืช ื”ืจืืฉ. ื›ื™ ื”ืืžืช ืฉื”ื“ื™ืกืง ืื™ื˜ื™ ื•ื”ื–ื™ื›ืจื•ืŸ ืžื”ื™ืจ ืžื•ื›ืจืช ืœื›ื•ืœื ืžื™ืœื“ื•ืช. ื•ื›ื•ืœื ื™ื•ื“ืขื™ื ืฉื‘ื‘ืกื™ืก ื”ื ืชื•ื ื™ื ื™ื”ื™ื• ื‘ืขื™ื•ืช ื‘ื‘ื™ืฆื•ืขื™ ื”ื“ื™ืกืง.

ื‘ืขื™ื™ืช ื”ื‘ื™ืฆื•ืขื™ื ื”ืขื™ืงืจื™ืช ืฉืœ PostgreSQL ื”ืงืฉื•ืจื” ืœืขืœื™ื•ืช ื ืงื•ื“ื•ืช ื‘ื™ืงื•ืจืช ืื™ื ื” ืžืชืจื—ืฉืช ืžื›ื™ื•ื•ืŸ ืฉื”ื“ื™ืกืง ืื™ื˜ื™. ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉื–ื” ื ื•ื‘ืข ืžื”ืขื•ื‘ื“ื” ืฉืจื•ื—ื‘ ื”ืคืก ืฉืœ ื”ื–ื™ื›ืจื•ืŸ ื•ื”ื“ื™ืกืง ืื™ื ื ืžืื•ื–ื ื™ื. ืขื ื–ืืช, ื™ื™ืชื›ืŸ ืฉื”ื ืœื ื™ื”ื™ื• ืžืื•ื–ื ื™ื ื‘ืžืงื•ืžื•ืช ืฉื•ื ื™ื. PostgreSQL ืื™ื ื• ืžื•ื’ื“ืจ, ืžืขืจื›ืช ื”ื”ืคืขืœื” ืื™ื ื” ืžื•ื’ื“ืจืช, ื”ื—ื•ืžืจื” ืื™ื ื” ืžื•ื’ื“ืจืช ื•ื”ื—ื•ืžืจื” ืฉื’ื•ื™ื”. ื•ื”ื‘ืขื™ื” ื”ื–ื• ืœื ืงื•ืจื™ืช ืจืง ืื ื”ื›ืœ ืงื•ืจื” ื›ืžื• ืฉืฆืจื™ืš, ื›ืœื•ืžืจ ืื• ืฉืื™ืŸ ืขื•ืžืก, ืื• ืฉื”ื”ื’ื“ืจื•ืช ื•ื”ื—ื•ืžืจื” ื ื‘ื—ืจื•ืช ื”ื™ื˜ื‘.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ืžื” ื–ื” ื•ืื™ืš ื–ื” ื ืจืื”? ื‘ื“ืจืš ื›ืœืœ ืื ืฉื™ื ืฉืขื•ื‘ื“ื™ื ืขื PostgreSQL ื ื›ื ืกื• ืœืขื ื™ื™ืŸ ื”ื–ื” ื™ื•ืชืจ ืžืคืขื ืื—ืช. ืื ื™ ืืกื‘ื™ืจ. ื›ืคื™ ืฉืืžืจืชื™, PostgreSQL ืžื™ื™ืฆืจ ืžืขืช ืœืขืช ื ืงื•ื“ื•ืช ื‘ื™ืงื•ืจืช ื›ื“ื™ ืœื–ืจื•ืง ื“ืคื™ื ืžืœื•ื›ืœื›ื™ื ื‘ื–ื™ื›ืจื•ืŸ ื”ืžืฉื•ืชืฃ ืœื“ื™ืกืง. ืื ื™ืฉ ืœื ื• ื›ืžื•ืช ื’ื“ื•ืœื” ืฉืœ ื–ื™ื›ืจื•ืŸ ืžืฉื•ืชืฃ, ืื– ื ืงื•ื“ืช ื”ื‘ื“ื™ืงื” ืžืชื—ื™ืœื” ืœื”ืฉืคื™ืข ื‘ืื•ืคืŸ ืื™ื ื˜ื ืกื™ื‘ื™ ืขืœ ื”ื“ื™ืกืง, ืžื›ื™ื•ื•ืŸ ืฉื”ื™ื ืžืฉืœื™ืš ืืช ื”ื“ืคื™ื ื”ืืœื” ืขื fsync. ื”ื•ื ืžื’ื™ืข ืœืžืื’ืจ ื”ืงืจื ืœ ื•ื ื›ืชื‘ ืœื“ื™ืกืงื™ื ื‘ืืžืฆืขื•ืช fsync. ื•ืื ื ืคื— ื”ืขืกืง ื”ื–ื” ื’ื“ื•ืœ, ืื– ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœืจืื•ืช ืืคืงื˜ ืœื ื ืขื™ื, ื›ืœื•ืžืจ ื ื™ืฆื•ืœ ื’ื“ื•ืœ ืžืื•ื“ ืฉืœ ื“ื™ืกืงื™ื.

ื”ื ื” ื™ืฉ ืœื™ ืฉืชื™ ืชืžื•ื ื•ืช. ืขื›ืฉื™ื• ืืกื‘ื™ืจ ืžื” ื–ื”. ืืœื• ืฉื ื™ ื’ืจืคื™ื ื‘ืงื•ืจืœืฆื™ื” ื‘ื–ืžืŸ. ื”ื’ืจืฃ ื”ืจืืฉื•ืŸ ื”ื•ื ื ื™ืฆื•ืœ ื“ื™ืกืง. ื›ืืŸ ื–ื” ืžื’ื™ืข ืœื›ืžืขื˜ 90% ื‘ื ืงื•ื“ืช ื–ืžืŸ ื–ื•. ืื ื™ืฉ ืœืš ื›ืฉืœ ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ืขื ื“ื™ืกืงื™ื ืคื™ื–ื™ื™ื, ืขื ื ื™ืฆื•ืœ ื‘ืงืจ RAID ื‘-90%, ืื– ืืœื• ื—ื“ืฉื•ืช ืจืขื•ืช. ื–ื” ืื•ืžืจ ืฉืงืฆืช ื™ื•ืชืจ ื•ื–ื” ื™ื’ื™ืข ืœ-100 ื•ื”-I/O ื™ื™ืคืกืง.

ืื ื™ืฉ ืœืš ืžืขืจืš ื“ื™ืกืงื™ื, ืื– ื–ื” ืกื™ืคื•ืจ ืงืฆืช ืื—ืจ. ื–ื” ืชืœื•ื™ ืื™ืš ื–ื” ืžื•ื’ื“ืจ, ืื™ื–ื” ืกื•ื’ ืฉืœ ืžืขืจืš ื–ื” ื•ื›ื•'.

ื•ื‘ืžืงื‘ื™ืœ, ืžื•ื’ื“ืจ ื›ืืŸ ื’ืจืฃ ืžื”ืชืฆื•ื’ื” ื”ืคื ื™ืžื™ืช ืฉืœ postgres, ืฉืžืกืคืจ ื›ื™ืฆื“ ืžืชืจื—ืฉ ื”ืžื—ืกื•ื. ื•ื”ืฆื‘ืข ื”ื™ืจื•ืง ื›ืืŸ ืžืจืื” ื›ืžื” ืžืื’ืจื™ื, ื”ื“ืคื™ื ื”ืžืœื•ื›ืœื›ื™ื ื”ืืœื”, ื”ื’ื™ืขื• ื‘ืื•ืชื• ืจื’ืข ืœืžื—ืกื•ื ื”ื–ื” ืœืฆื•ืจืš ืกื ื›ืจื•ืŸ. ื•ื–ื” ื”ื“ื‘ืจ ื”ืขื™ืงืจื™ ืฉืืชื” ืฆืจื™ืš ืœื“ืขืช ื›ืืŸ. ืื ื—ื ื• ืจื•ืื™ื ืฉื™ืฉ ืœื ื• ืคื” ื”ืจื‘ื” ื“ืคื™ื ื•ื‘ืื™ื–ืฉื”ื• ืฉืœื‘ ื ื›ื ืกื ื• ืœืœื•ื—, ื›ืœื•ืžืจ ื›ืชื‘ื ื• ื•ื›ืชื‘ื ื•, ื›ืืŸ ื‘ืจื•ืจ ืฉืžืขืจื›ืช ื”ื“ื™ืกืงื™ื ืžืื•ื“ ืขืžื•ืกื”. ื•ืœืžื—ืกื•ื ืฉืœื ื• ื™ืฉ ื”ืฉืคืขื” ืžืื•ื“ ื—ื–ืงื” ืขืœ ื”ื“ื™ืกืง. ื‘ืื•ืคืŸ ืื™ื“ื™ืืœื™, ื”ืžืฆื‘ ืฆืจื™ืš ืœื”ื™ืจืื•ืช ื™ื•ืชืจ ื›ื›ื”, ื›ืœื•ืžืจ ื”ื™ื• ืœื ื• ืคื—ื•ืช ื”ืงืœื˜ื•ืช ื›ืืŸ. ื•ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœืชืงืŸ ืืช ื–ื” ืขื ื”ื”ื’ื“ืจื•ืช ื›ืš ืฉื–ื” ื™ืžืฉื™ืš ืœื”ื™ื•ืช ื›ื›ื”. ื›ืœื•ืžืจ, ื”ืžื™ื—ื–ื•ืจ ืงื˜ืŸ, ืื‘ืœ ืื™ืคืฉื”ื• ืื ื—ื ื• ื›ื•ืชื‘ื™ื ืคื” ืžืฉื”ื•.

ืžื” ืฆืจื™ืš ืœืขืฉื•ืช ื›ื“ื™ ืœื”ืชื’ื‘ืจ ืขืœ ื‘ืขื™ื” ื–ื•? ืื ืขืฆืจืช ืืช IO ืžืชื—ืช ืœืžืกื“ ื”ื ืชื•ื ื™ื, ื–ื” ืื•ืžืจ ืฉื›ืœ ื”ืžืฉืชืžืฉื™ื ืฉื‘ืื• ืœืžืœื ืืช ื”ื‘ืงืฉื•ืช ืฉืœื”ื ื™ืžืชื™ื ื•.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ืื ืืชื” ืžืกืชื›ืœ ืžื ืงื•ื“ืช ื”ืžื‘ื˜ ืฉืœ ืœื™ื ื•ืงืก, ืื ืœืงื—ืชื ื—ื•ืžืจื” ื˜ื•ื‘ื”, ื”ื’ื“ืจืชื ืื•ืชื” ื‘ืฆื•ืจื” ื ื›ื•ื ื”, ื”ื’ื“ืจืชื ืืช PostgreSQL ื‘ืฆื•ืจื” ืจื’ื™ืœื” ื›ืš ืฉื”ื™ื ื”ื•ืคื›ืช ืืช ื”ืžื—ืกื•ืžื™ื ื”ืืœื” ื‘ืชื“ื™ืจื•ืช ื ืžื•ื›ื” ื™ื•ืชืจ, ืžืคื–ืจืช ืื•ืชื ืœืื•ืจืš ื–ืžืŸ ื–ื” ื‘ื–ื”, ืื– ืืชื ื ื›ื ืกื™ื ืœืคืจืžื˜ืจื™ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืฉืœ ื“ื‘ื™ืืŸ. ืขื‘ื•ืจ ืจื•ื‘ ื”ื”ืคืฆื•ืช ืฉืœ ืœื™ื ื•ืงืก, ื–ื• ื”ืชืžื•ื ื”: vm.dirty_ratio=20, vm.dirty_background_ratio=10.

ืžื” ื–ื” ืื•ืžืจ? ืฉื“ ืฉื˜ื™ืคื” ืื—ื“ ื”ื•ืคื™ืข ืžื’ืจืขื™ืŸ 2.6. Pdglush, ืชืœื•ื™ ืžื™ ืžืฉืชืžืฉ ื‘ืื™ื–ื”, ืฉืขื•ืกืง ื‘ื‘ื™ื˜ื•ืœ ืจืงืข ืฉืœ ืขืžื•ื“ื™ื ืžืœื•ื›ืœื›ื™ื ืžืžืื’ืจ ื”ืงืจื ืœ ื•ื”ืฉืœื›ื” ื›ืืฉืจ ื™ืฉ ืฆื•ืจืš ืœื”ืฉืœื™ืš ื“ืคื™ื ืžืœื•ื›ืœื›ื™ื ืœื ืžืฉื ื” ืžื”, ื›ืืฉืจ ื‘ื™ื˜ื•ืœ ืจืงืข ืœื ืขื•ื–ืจ.

ืžืชื™ ืžื’ื™ืข ื”ืจืงืข? ื›ืืฉืจ 10% ืžืกืš ื”-RAM ื”ื–ืžื™ืŸ ื‘ืฉืจืช ืชืคื•ืกื™ื ืขืœ ื™ื“ื™ ื“ืคื™ื ืžืœื•ื›ืœื›ื™ื ื‘ืžืื’ืจ ื”ืœื™ื‘ื”, ืคื•ื ืงืฆื™ื™ืช ื›ืชื™ื‘ื” ืžื™ื•ื—ื“ืช ื ืงืจืืช ื‘ืจืงืข. ืœืžื” ื–ื” ืจืงืข? ื›ืคืจืžื˜ืจ, ื”ื•ื ืœื•ืงื— ื‘ื—ืฉื‘ื•ืŸ ื›ืžื” ืขืžื•ื“ื™ื ืœืžื—ื•ืง. ื•ื ื ื™ื— ืฉื”ื•ื ืžื•ื—ืง N ืขืžื•ื“ื™ื. ื•ืœื–ืžืŸ ืžื” ื”ื“ื‘ืจ ื”ื–ื” ื ืจื“ื. ื•ืื– ื”ื™ื ื‘ืื” ืฉื•ื‘ ื•ืžืขืชื™ืงื” ืขื•ื“ ื›ืžื” ื“ืคื™ื.

ื–ื”ื• ืกื™ืคื•ืจ ืคืฉื•ื˜ ื‘ื™ื•ืชืจ. ื”ื‘ืขื™ื” ื›ืืŸ ื”ื™ื ื›ืžื• ื‘ื‘ืจื™ื›ืช ืฉื—ื™ื™ื”, ื›ืฉื”ื™ื ื ืฉืคื›ืช ืœืฆื™ื ื•ืจ ืื—ื“, ื”ื™ื ื–ื•ืจืžืช ืœืฆื™ื ื•ืจ ืื—ืจ. ื”ืžื—ืกื•ื ืฉืœื ื• ื”ื’ื™ืข ื•ืื ื”ื•ื ืฉืœื— ื›ืžื” ื“ืคื™ื ืžืœื•ื›ืœื›ื™ื ืœื”ืฉืœื›ื”, ืื– ื‘ื”ื“ืจื’ื” ื›ืœ ื”ืขื ื™ื™ืŸ ื™ื™ืคืชืจ ื‘ืฆื•ืจื” ืžืกื•ื“ืจืช ืžื”-kernel buffer pgflush.

ืื ื”ื“ืคื™ื ื”ืžืœื•ื›ืœื›ื™ื ื”ืืœื” ืžืžืฉื™ื›ื™ื ืœื”ืฆื˜ื‘ืจ, ื”ื ืžืฆื˜ื‘ืจื™ื ืขื“ 20%, ื•ืœืื—ืจ ืžื›ืŸ ื”ืขื“ื™ืคื•ืช ืฉืœ ืžืขืจื›ืช ื”ื”ืคืขืœื” ื”ื™ื ืœืžื—ื•ืง ืืช ื›ืœ ื”ืขื ื™ื™ืŸ ืœื“ื™ืกืง, ื›ื™ ื”ื›ื•ื— ื™ื™ืคืกืง ื•ื”ื›ืœ ื™ื”ื™ื” ืจืข ืœื ื•. ืื ื—ื ื• ื ืื‘ื“ ืืช ื”ื ืชื•ื ื™ื ื”ืืœื”, ืœืžืฉืœ.

ืžื” ื”ื˜ืจื™ืง? ื”ื—ื•ื›ืžื” ื”ื™ื ืฉื”ืคืจืžื˜ืจื™ื ื”ืืœื” ื‘ืขื•ืœื ื”ืžื•ื“ืจื ื™ ื”ื 20 ื•-10% ืžืกืš ื”-RAM ืฉื ืžืฆื ืขืœ ื”ืžื›ื•ื ื”, ื”ื ื‘ื”ื—ืœื˜ ืžืคืœืฆืชื™ื™ื ืžื‘ื—ื™ื ืช ื”ืชืคื•ืงื” ืฉืœ ื›ืœ ืžืขืจื›ืช ื“ื™ืกืงื™ื ืฉื™ืฉ ืœืš.

ืชืืจ ืœืขืฆืžืš ืฉื™ืฉ ืœืš 128 GB ืฉืœ ื–ื™ื›ืจื•ืŸ RAM. 12,8 GB ืžื’ื™ืข ืœืžืขืจื›ืช ื”ื“ื™ืกืงื™ื ืฉืœืš. ื•ืœื ืžืฉื ื” ืื™ื–ื” ืžื˜ืžื•ืŸ ื™ืฉ ืœืš ืฉื, ืœื ืžืฉื ื” ืื™ื–ื” ืžืขืจืš ื™ืฉ ืœืš ืฉื, ื”ื ืœื ื™ื—ื–ื™ืงื• ืžืขืžื“ ื›ืœ ื›ืš ื”ืจื‘ื” ื–ืžืŸ.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ืœื›ืŸ, ืื ื• ืžืžืœื™ืฆื™ื ืœืš ืœื”ืชืื™ื ืžื™ื“ ืืช ื”ืžืกืคืจื™ื ื”ืœืœื• ื‘ื”ืชื‘ืกืก ืขืœ ื”ื™ื›ื•ืœื•ืช ืฉืœ ื‘ืงืจ ื”-RAID ืฉืœืš. ืžื™ื“ ื”ืžืœืฆืชื™ ื›ืืŸ ืขืœ ื‘ืงืจ ืฉื™ืฉ ืœื• 512 ืžื’ื”-ื‘ื™ื™ื˜ ืฉืœ ืžื˜ืžื•ืŸ.

ื”ื›ืœ ื ื—ืฉื‘ ืคืฉื•ื˜ ืžืื•ื“. ืืชื” ื™ื›ื•ืœ ืœืฉื™ื ืืช vm.dirty_background ื‘ื‘ืชื™ื. ื•ื”ื”ื’ื“ืจื•ืช ื”ืืœื” ืžื‘ื˜ืœื•ืช ืืช ื”ืฉืชื™ื™ื ื”ืงื•ื“ืžื•ืช. ืื ื”ื™ื—ืก ื”ื•ื ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืื• ืฉืืœื• ืขื ื‘ืชื™ื ืžื•ืคืขืœื™ื, ื•ืื– ืืœื” ืขื ื‘ืชื™ื ื™ืขื‘ื“ื•. ืื‘ืœ ืžื›ื™ื•ื•ืŸ ืฉืื ื™ ื™ื•ืขืฅ DBA ื•ืขื•ื‘ื“ ืขื ืœืงื•ื—ื•ืช ืฉื•ื ื™ื, ืื ื™ ืžื ืกื” ืœืฆื™ื™ืจ ืงืฉื™ื•ืช ื•ืœื›ืŸ, ืื ื‘-bytes, ืื– ื‘-bytes. ืืฃ ืื—ื“ ืœื ื ืชืŸ ืฉื•ื ืขืจื•ื‘ื” ืฉืžื ื”ืœ ื˜ื•ื‘ ืœื ื™ื•ืกื™ืฃ ืขื•ื“ ื–ื™ื›ืจื•ืŸ ืœืฉืจืช, ื™ืืชื—ืœ ืื•ืชื• ืžื—ื“ืฉ, ื•ื”ื ืชื•ืŸ ื™ื™ืฉืืจ ื–ื”ื”. ืคืฉื•ื˜ ื—ืฉื‘ ืืช ื”ืžืกืคืจื™ื ื”ืืœื” ื›ื“ื™ ืฉื”ื›ืœ ื™ืฉืชืœื‘ ืฉื ืขื ืื—ืจื™ื•ืช.

ืžื” ืงื•ืจื” ืื ืืชื” ืœื ืžืชืื™ื? ื›ืชื‘ืชื™ ืฉื›ืœ ืฉื˜ื™ืคื” ื ืขืฆืจืช ืœืžืขืฉื”, ืื‘ืœ ืœืžืขืฉื” ื–ื• ื“ืžื•ืช ื“ื™ื‘ื•ืจ. ืœืžืขืจื›ืช ื”ื”ืคืขืœื” ื™ืฉ ื‘ืขื™ื” ื’ื“ื•ืœื” - ื™ืฉ ืœื” ื”ืจื‘ื” ื“ืคื™ื ืžืœื•ื›ืœื›ื™ื, ื›ืš ืฉื”-IO ืฉื”ืœืงื•ื—ื•ืช ืฉืœื›ื ืžื™ื™ืฆืจื™ื ืœืžืขืฉื” ื ืขืฆืจ, ื›ืœื•ืžืจ ื”ืืคืœื™ืงืฆื™ื” ื‘ืื” ืœืฉืœื•ื— ืฉืื™ืœืชืช sql ืœืžืกื“ ื”ื ืชื•ื ื™ื, ื”ื™ื ืžืžืชื™ื ื”. ื›ืœ ืงืœื˜/ืคืœื˜ ืืœื™ื• ื”ื•ื ื‘ืขื“ื™ืคื•ืช ื”ื ืžื•ื›ื” ื‘ื™ื•ืชืจ, ืžื›ื™ื•ื•ืŸ ืฉืžืกื“ ื”ื ืชื•ื ื™ื ืชืคื•ืก ืขืœ ื™ื“ื™ ืžื—ืกื•ื. ื•ืžืชื™ ื”ื™ื ืชืกื™ื™ื ื–ื” ืœื’ืžืจื™ ืœื ื‘ืจื•ืจ. ื•ื›ืืฉืจ ื”ืฉื’ืช ืฉื˜ื™ืคื” ืœื ืจืงืข, ื–ื” ืื•ืžืจ ืฉื›ืœ ื”-IO ืฉืœืš ืชืคื•ืก ืขืœ ื™ื“ื™ ื–ื”. ื•ืขื“ ืฉื–ื” ื™ื™ื’ืžืจ, ืœื ืชืขืฉื” ื›ืœื•ื.

ื™ืฉ ื›ืืŸ ืขื•ื“ ืฉืชื™ ื ืงื•ื“ื•ืช ื—ืฉื•ื‘ื•ืช ืฉื”ืŸ ืžืขื‘ืจ ืœืชื—ื•ื ื”ื“ื•ื— ื”ื–ื”. ื”ื’ื“ืจื•ืช ืืœื• ืฆืจื™ื›ื•ืช ืœื”ืชืื™ื ืœื”ื’ื“ืจื•ืช ื‘-postgresql.conf, ื›ืœื•ืžืจ ื”ื’ื“ืจื•ืช ื ืงื•ื“ื•ืช ื‘ื™ืงื•ืจืช. ื•ืžืขืจื›ืช ื”ื“ื™ืกืงื™ื ืฉืœืš ื—ื™ื™ื‘ืช ืœื”ื™ื•ืช ืžื•ื’ื“ืจืช ื›ืจืื•ื™. ืื ื™ืฉ ืœืš ืžื˜ืžื•ืŸ ื‘-RAID, ืื– ื—ื™ื™ื‘ืช ืœื”ื™ื•ืช ืœื• ืกื•ืœืœื”. ืื ืฉื™ื ืงื•ื ื™ื RAID ืขื ืžื˜ืžื•ืŸ ื˜ื•ื‘ ืœืœื ืกื•ืœืœื”. ืื ื™ืฉ ืœืš SSDs ื‘-RAID, ืื– ื”ื ื—ื™ื™ื‘ื™ื ืœื”ื™ื•ืช ืฉืจืชื™ื, ื—ื™ื™ื‘ื™ื ืœื”ื™ื•ืช ืฉื ืงื‘ืœื™ื. ืœื”ืœืŸ ืจืฉื™ืžืช ื‘ื“ื™ืงื” ืžืคื•ืจื˜ืช. ืงื™ืฉื•ืจ ื–ื” ืžื›ื™ืœ ืืช ื”ื“ื•ื— ืฉืœื™ ื›ื™ืฆื“ ืœื”ื’ื“ื™ืจ ื“ื™ืกืง ื‘ื™ืฆื•ืขื™ื ื‘-PostgreSQL. ื™ืฉ ืฉื ืืช ื›ืœ ื”ืจืฉื™ืžื•ืช ื”ืืœื”.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ืžื” ืขื•ื“ ื™ื›ื•ืœ ืœื”ืงืฉื•ืช ืžืื•ื“ ืขืœ ื”ื—ื™ื™ื? ืืœื• ืฉื ื™ ืคืจืžื˜ืจื™ื. ื”ื ื—ื“ืฉื™ื ื™ื—ืกื™ืช. ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื”ื ื™ื›ื•ืœื™ื ืœื”ื™ื›ืœืœ ื‘ื™ื™ืฉื•ืžื™ื ืฉื•ื ื™ื. ื•ื”ื ื™ื›ื•ืœื™ื ืœืขืฉื•ืช ืืช ื”ื—ื™ื™ื ืงืฉื™ื ื‘ืื•ืชื” ืžื™ื“ื” ืื ื”ื ืžื•ืคืขืœื™ื ื‘ืฆื•ืจื” ืœื ื ื›ื•ื ื”.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ื™ืฉ ืฉื ื™ ื“ื‘ืจื™ื ื—ื“ืฉื™ื ื™ื—ืกื™ืช. ื”ื ื›ื‘ืจ ื”ื•ืคื™ืขื• ื‘ืœื™ื‘ื•ืช ื”ืฉืœื™ืฉื™ื•ืช. ื–ื” ื”ื•ื sched_migration_cost ื‘ื ื ื•-ืฉื ื™ื•ืช ื•-sched_autogroup_enabled, ืฉื”ื•ื ืื—ื“ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ.

ื•ืื™ืš ื”ื ื”ื•ืจืกื™ื ืœืš ืืช ื”ื—ื™ื™ื? ืžื” ื–ื” sched_migration_cost? ื‘-Linux, ื”ืžืชื–ืžืŸ ื™ื›ื•ืœ ืœื”ืขื‘ื™ืจ ืชื”ืœื™ืš ืžืžืขื‘ื“ ืื—ื“ ืœืžืฉื ื”ื•. ื•ืขื‘ื•ืจ PostgreSQL, ืฉืžื‘ืฆืข ืฉืื™ืœืชื•ืช, ื”ื”ื’ื™ืจื” ืœืžืขื‘ื“ ืื—ืจ ืื™ื ื” ื‘ืจื•ืจื” ืœื—ืœื•ื˜ื™ืŸ. ืžื ืงื•ื“ืช ืžื‘ื˜ ืฉืœ ืžืขืจื›ืช ื”ื”ืคืขืœื”, ื›ืืฉืจ ืืชื” ืžื—ืœื™ืฃ ื—ืœื•ื ื•ืช ื‘ื™ืŸ openoffice ืœืžืกื•ืฃ, ื–ื” ืขืฉื•ื™ ืœื”ื™ื•ืช ื˜ื•ื‘, ืื‘ืœ ืขื‘ื•ืจ ืžืกื“ ื ืชื•ื ื™ื ื–ื” ืจืข ืžืื•ื“. ืœื›ืŸ, ืžื“ื™ื ื™ื•ืช ืกื‘ื™ืจื” ื”ื™ื ืœื”ื’ื“ื™ืจ ืืช migration_cost ืœืขืจืš ื’ื“ื•ืœ ื›ืœืฉื”ื•, โ€‹โ€‹ืœืคื—ื•ืช ื›ืžื” ืืœืคื™ ื ื ื•-ืฉื ื™ื•ืช.

ืžื” ื–ื” ืื•ืžืจ ืขื‘ื•ืจ ื”ืžืชื–ืžืŸ? ื–ื” ื™ื™ื—ืฉื‘ ืฉื‘ืžื”ืœืš ื–ืžืŸ ื–ื” ื”ืชื”ืœื™ืš ืขื“ื™ื™ืŸ ื—ื. ื›ืœื•ืžืจ, ืื ื™ืฉ ืœื›ื ืขืกืงื” ืืจื•ื›ืช ื˜ื•ื•ื— ืฉืขื•ืฉื” ืžืฉื”ื• ื›ื‘ืจ ื”ืจื‘ื” ื–ืžืŸ, ื”ืžืชื–ืžืŸ ื™ื‘ื™ืŸ ื–ืืช. ื”ื•ื ื™ื ื™ื— ืฉืขื“ ืฉืคืกืง ื”ื–ืžืŸ ื”ื–ื” ื™ื—ืœื•ืฃ, ืื™ืŸ ืฆื•ืจืš ืœื”ืขื‘ื™ืจ ืืช ื”ืชื”ืœื™ืš ื”ื–ื” ืœืฉื•ื ืžืงื•ื. ืื ื‘ืื•ืชื• ื–ืžืŸ ื”ืชื”ืœื™ืš ืขื•ืฉื” ืžืฉื”ื•, ืื– ื”ื•ื ืœื ื™ื•ืขื‘ืจ ืœืฉื•ื ืžืงื•ื, ื”ื•ื ื™ืขื‘ื•ื“ ื‘ืฉืงื˜ ืขืœ ื”ืžืขื‘ื“ ืฉื”ื•ืงืฆื” ืœื•. ื•ื”ืชื•ืฆืื” ืžืขื•ืœื”.

ื”ื ืงื•ื“ื” ื”ืฉื ื™ื™ื” ื”ื™ื ืงื‘ื•ืฆื” ืื•ื˜ื•ืžื˜ื™ืช. ื™ืฉ ืจืขื™ื•ืŸ ื˜ื•ื‘ ืœืขื•ืžืกื™ ืขื‘ื•ื“ื” ืกืคืฆื™ืคื™ื™ื ืฉืื™ื ื ืงืฉื•ืจื™ื ืœื‘ืกื™ืกื™ ื ืชื•ื ื™ื ืžื•ื“ืจื ื™ื™ื - ื–ื” ืœืงื‘ืฅ ืชื”ืœื™ื›ื™ื ืœืคื™ ื”ื˜ืจืžื™ื ืœ ื”ื•ื•ื™ืจื˜ื•ืืœื™ ืฉืžืžื ื• ื”ื ืžื•ืฉืงื™ื. ื–ื” ื ื•ื— ืœืžืฉื™ืžื•ืช ืžืกื•ื™ืžื•ืช. ื‘ืคื•ืขืœ, PostgreSQL ื”ื™ื ืžืขืจื›ืช ืžืจื•ื‘ืช ืชื”ืœื™ื›ื™ื ืขื ืคื•ืจืง ืฉืคื•ืขืœ ืžืžืกื•ืฃ ื‘ื•ื“ื“. ื™ืฉ ืœืš ื›ื•ืชื‘ ืžื ืขื•ืœื™ื, ืžื—ืกื•ื, ื•ื›ืœ ื‘ืงืฉื•ืช ื”ืœืงื•ื— ืฉืœืš ื™ืงื•ื‘ืฆื• ืœืžืชื–ืžืŸ ืื—ื“, ืœื›ืœ ืžืขื‘ื“. ื•ื™ื—ื›ื• ืฉื ื‘ืื—ื“ื•ืช ืขื“ ืฉื™ื”ื™ื” ื—ื•ืคืฉื™, ื›ื“ื™ ืœื”ืคืจื™ืข ื–ื” ืœื–ื” ื•ืœื”ืขืกื™ืงื• ืขื•ื“. ื–ื” ืกื™ืคื•ืจ ืžื™ื•ืชืจ ืœื—ืœื•ื˜ื™ืŸ ื‘ืžืงืจื” ืฉืœ ืขื•ืžืก ื›ื–ื” ื•ืœื›ืŸ ืฆืจื™ืš ืœื›ื‘ื•ืช ืื•ืชื•.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ืขืžื™ืชื™ ืืœื›ืกื™ื™ ืœืกื•ื‘ืกืงื™ ืขืฉื” ื‘ื“ื™ืงื•ืช ืขื pgbench ืคืฉื•ื˜, ืฉื ื”ื•ื ื”ืขืœื” ืืช ืขืœื•ืช ื”ื”ื’ื™ืจื” ื‘ืกื“ืจ ื’ื•ื“ืœ ื•ื‘ื™ื˜ืœ ืืช ื”-autogroup. ื”ื”ื‘ื“ืœ ื‘ื—ื•ืžืจื” ื’ืจื•ืขื” ื”ื™ื” ื›ืžืขื˜ 10%. ื™ืฉ ื“ื™ื•ืŸ ื‘ืจืฉื™ืžืช ื”ืชืคื•ืฆื” ืฉืœ postgres ืฉื‘ื• ืื ืฉื™ื ื ื•ืชื ื™ื ืชื•ืฆืื•ืช ืฉืœ ืฉื™ื ื•ื™ื™ื ื“ื•ืžื™ื ืœืžื”ื™ืจื•ืช ื”ืฉืื™ืœืชื” ื”ืฉืคื™ืข 50%. ื™ืฉ ื“ื™ ื”ืจื‘ื” ืกื™ืคื•ืจื™ื ื›ืืœื”.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ื•ืœื‘ืกื•ืฃ, ืขืœ ืžื“ื™ื ื™ื•ืช ื—ื™ืกื›ื•ืŸ ื‘ื—ืฉืžืœ. ื”ื“ื‘ืจ ื”ื˜ื•ื‘ ื”ื•ื ืฉื›ืขืช ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืœื™ื ื•ืงืก ื‘ืžื—ืฉื‘ ื ื™ื™ื“. ื•ื”ื•ื ื›ื‘ื™ื›ื•ืœ ื™ื ืฆืœ ืืช ื”ืกื•ืœืœื” ื”ื™ื˜ื‘. ืื‘ืœ ืคืชืื•ื ืžืชื‘ืจืจ ืฉื–ื” ื™ื›ื•ืœ ืœืงืจื•ืช ื’ื ื‘ืฉืจืช.

ื™ืชืจื” ืžื›ืš, ืื ืืชื” ืฉื•ื›ืจ ืฉืจืชื™ื ืžืžืืจื— โ€‹โ€‹ื›ืœืฉื”ื•, โ€‹โ€‹ืื– ืœืžืืจื—ื™ื ื”"ื˜ื•ื‘ื™ื" ืœื ืื›ืคืช ืฉื™ืฉ ืœืš ื‘ื™ืฆื•ืขื™ื ื˜ื•ื‘ื™ื ื™ื•ืชืจ. ื”ืžืฉื™ืžื” ืฉืœื”ื ื”ื™ื ืœื”ื‘ื˜ื™ื— ืฉื”ื‘ืจื–ืœ ืฉืœื”ื ืžื ื•ืฆืœ ื‘ืฆื•ืจื” ื™ืขื™ืœื” ื›ื›ืœ ื”ืืคืฉืจ. ืœื›ืŸ, ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ื”ื ื™ื›ื•ืœื™ื ืœื”ืคืขื™ืœ ืžืฆื‘ ื—ื™ืกื›ื•ืŸ ื‘ื—ืฉืžืœ ืฉืœ ืžื—ืฉื‘ ื ื™ื™ื“ ื‘ืžืขืจื›ืช ื”ื”ืคืขืœื”.

ืื ืืชื” ืžืฉืชืžืฉ ื‘ื—ื•ืžืจ ื”ื–ื” ื‘ืฉืจืช ืขื ืžืกื“ ื ืชื•ื ื™ื ื‘ืขื•ืžืก ืจื‘, ื”ื‘ื—ื™ืจื” ืฉืœืš ื”ื™ื acpi_cpufreq + permormance. ื’ื ืขื ื“ืจื™ืฉื” ื™ื”ื™ื• ื‘ืขื™ื•ืช.

Intel_pstate ื”ื•ื ื“ืจื™ื™ื‘ืจ ืžืขื˜ ืฉื•ื ื”. ื•ืขื›ืฉื™ื• ื ื™ืชื ืช ืขื“ื™ืคื•ืช ืœื–ื”, ื›ืคื™ ืฉื”ื•ื ืžืื•ื—ืจ ื™ื•ืชืจ ื•ืขื•ื‘ื“ ื˜ื•ื‘ ื™ื•ืชืจ.

ื•ื‘ื”ืชืื ืœื›ืš, ื”ืžื•ืฉืœ ื”ื•ื ืจืง ื‘ื™ืฆื•ืขื™ื. ืœืคื™ ื“ืจื™ืฉื”, ื—ื™ืกื›ื•ืŸ ื‘ื—ืฉืžืœ ื•ื›ืœ ื”ืฉืืจ ืœื ืงืฉื•ืจื™ื ืืœื™ื›ื.

ื”ืชื•ืฆืื•ืช ืฉืœ ื ื™ืชื•ื— ื”ืกื‘ืจ PostgreSQL ืขืฉื•ื™ื•ืช ืœื”ื™ื•ืช ืฉื•ื ื•ืช ื‘ืžืกืคืจ ืกื“ืจื™ ื’ื•ื“ืœ ืื ืชืืคืฉืจ ื—ื™ืกื›ื•ืŸ ื‘ื—ืฉืžืœ, ืžื›ื™ื•ื•ืŸ ืฉืœืžืขืฉื” ื”-CPU ืชื—ืช ืžืกื“ ื”ื ืชื•ื ื™ื ืฉืœืš ื™ืคืขืœ ื‘ืฆื•ืจื” ื‘ืœืชื™ ืฆืคื•ื™ื” ืœื—ืœื•ื˜ื™ืŸ.

ืคืจื™ื˜ื™ื ืืœื” ืขืฉื•ื™ื™ื ืœื”ื™ื›ืœืœ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ. ื‘ื“ื•ืง ื”ื™ื˜ื‘ ืื ื”ื ื”ืคืขื™ืœื• ืื•ืชื• ื›ื‘ืจื™ืจืช ืžื—ื“ืœ. ื–ื• ื™ื›ื•ืœื” ืœื”ื™ื•ืช ื‘ืขื™ื” ืžืžืฉ ื’ื“ื•ืœื”.

ื›ื•ื•ื ื•ืŸ ืœื™ื ื•ืงืก ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ PostgreSQL. ืื™ืœื™ื” ืงื•ืกืžื•ื“ืžื™ืื ืกืงื™

ื•ืœื‘ืกื•ืฃ, ืจืฆื™ืชื™ ืœื”ื’ื™ื“ ืชื•ื“ื” ืœื—ื‘ืจ'ื” ืžืฆื•ื•ืช ื”-DBA ืฉืœ PosgreSQL-Consulting ืฉืœื ื•, ื›ืœื•ืžืจ ืžืงืก ื‘ื•ื’ื•ืง ื•ืืœื›ืกื™ื™ ืœืกื•ื‘ืกืงื™, ืฉืžืชืงื“ืžื™ื ื‘ืขื ื™ื™ืŸ ื”ื–ื” ืžื“ื™ ื™ื•ื. ื•ืื ื—ื ื• ืžื ืกื™ื ืœืขืฉื•ืช ืืช ื”ื›ื™ ื˜ื•ื‘ ืฉืื ื—ื ื• ื™ื›ื•ืœื™ื ืขื‘ื•ืจ ื”ืœืงื•ื—ื•ืช ืฉืœื ื• ื›ื“ื™ ืฉื”ื›ืœ ื™ืขื‘ื•ื“ ืขื‘ื•ืจื. ื–ื” ื›ืžื• ืขื ื”ื•ืจืื•ืช ื‘ื˜ื™ื—ื•ืช ืชืขื•ืคื”. ื”ื›ืœ ื›ืืŸ ื›ืชื•ื‘ ื‘ื“ื. ื›ืœ ืื—ื“ ืžื”ืื’ื•ื–ื™ื ื”ืœืœื• ื ืžืฆื ื‘ืชื”ืœื™ืš ืฉืœ ื‘ืขื™ื” ื›ืœืฉื”ื™. ืื ื™ ืฉืžื— ืœื—ืœื•ืง ืื•ืชื ืื™ืชืš.

ืฉืืœื•ืช:

ืชื•ื“ื”! ืื, ืœืžืฉืœ, ื—ื‘ืจื” ืจื•ืฆื” ืœื—ืกื•ืš ื›ืกืฃ ื•ืœื”ืฆื™ื‘ ืืช ื”ืœื•ื’ื™ืงื” ืฉืœ ืžืกื“ ื”ื ืชื•ื ื™ื ื•ื”ืืคืœื™ืงืฆื™ื” ืขืœ ืฉืจืช ืื—ื“, ืื• ืื ื”ื—ื‘ืจื” ื”ื•ืœื›ืช ื‘ืขืงื‘ื•ืช ื”ื˜ืจื ื“ ื”ืื•ืคื ืชื™ ืฉืœ ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื, ืฉื‘ื”ืŸ ืคื•ืขืœืช PostgreSQL ื‘ืงื•ื ื˜ื™ื™ื ืจ. ืžื” ื”ื˜ืจื™ืง? Sysctl ื™ืฉืคื™ืข ืขืœ ื›ืœ ื”ืœื™ื‘ื” ื‘ืจื—ื‘ื™ ื”ืขื•ืœื. ืœื ืฉืžืขืชื™ ืขืœ sysctls ืฉื”ื•ื™ืจื˜ื•ืืœื™ ืื™ื›ืฉื”ื• ื›ืš ืฉื”ื ืขื•ื‘ื“ื™ื ื‘ื ืคืจื“ ืขืœ ืงื•ื ื˜ื™ื™ื ืจ. ื™ืฉ ืจืง cgroup ื•ื™ืฉ ืจืง ื—ืœืง ืžื”ืฉืœื™ื˜ื” ืฉื. ืื™ืš ืืคืฉืจ ืœื—ื™ื•ืช ืขื ื–ื”? ืื• ืื ืืชื” ืจื•ืฆื” ื‘ื™ืฆื•ืขื™ื, ืื– ื”ืจืฅ ืืช PostgreSQL ืขืœ ืฉืจืช ื—ื•ืžืจื” ื ืคืจื“ ื•ืชื›ื•ื•ืŸ ืื•ืชื•?

ืขื ื™ื ื• ืขืœ ื”ืฉืืœื” ืฉืœืš ื‘ืขืจืš ื‘ืฉืœื•ืฉ ื“ืจื›ื™ื. ืื ืื ื—ื ื• ืœื ืžื“ื‘ืจื™ื ืขืœ ืฉืจืช ื—ื•ืžืจื” ืฉืืคืฉืจ ืœื›ื•ื•ืŸ ื•ื›ื•' ืื– ืชื™ืจื’ืข, ื”ื›ืœ ื™ืขื‘ื•ื“ ื‘ืกื“ืจ ื‘ืœื™ ื”ื”ื’ื“ืจื•ืช ื”ืืœื•. ืื ื™ืฉ ืœืš ืขื•ืžืก ื›ื–ื” ืฉืืชื” ืฆืจื™ืš ืœืขืฉื•ืช ืืช ื”ื”ื’ื“ืจื•ืช ื”ืืœื”, ืื– ืชื’ื™ืข ืœืฉืจืช ื”ื‘ืจื–ืœ ืžื•ืงื“ื ื™ื•ืชืจ ืžืืฉืจ ืœื”ื’ื“ืจื•ืช ื”ืืœื”.

ืžื” ื”ื‘ืขื™ื”? ืื ืžื“ื•ื‘ืจ ื‘ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช, ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉื™ื”ื™ื• ืœืš ื‘ืขื™ื•ืช ืจื‘ื•ืช, ืœืžืฉืœ, ืขื ื”ืขื•ื‘ื“ื” ืฉื‘ืจื•ื‘ ื”ืžื›ื•ื ื•ืช ื”ื•ื™ืจื˜ื•ืืœื™ื•ืช ื”ืฉื”ื™ื” ืฉืœ ื”ื“ื™ืกืง ื“ื™ ืœื ืขืงื‘ื™. ื’ื ืื ืชืคื•ืงืช ื”ื“ื™ืกืง ื˜ื•ื‘ื”, ืื– ืขืกืงืช I/O ื ื›ืฉืœื” ืื—ืช ืฉืœื ืžืฉืคื™ืขื” ืžืื•ื“ ืขืœ ื”ืชืคื•ืงื” ื”ืžืžื•ืฆืขืช ืฉืงืจื” ื‘ื–ืžืŸ ื”ืžื—ืกื•ื ืื• ื‘ื–ืžืŸ ื”ื›ืชื™ื‘ื” ืœ-WAL, ืื– ื‘ืกื™ืก ื”ื ืชื•ื ื™ื ื™ืกื‘ื•ืœ ืžื›ืš ืžืื•ื“. ื•ืืชื” ืชืฉื™ื ืœื‘ ืœื–ื” ืœืคื ื™ ืฉืชืชืงืœ ื‘ื‘ืขื™ื•ืช ื”ืืœื”.

ืื ื™ืฉ ืœืš NGINX ื‘ืื•ืชื• ืฉืจืช, ืชื”ื™ื” ืœืš ื’ื ืื•ืชื” ื‘ืขื™ื”. ื”ื•ื ื™ื™ืœื—ื ืขืœ ื–ื™ื›ืจื•ืŸ ืžืฉื•ืชืฃ. ื•ืœื ืชื’ื™ืขื• ืœื‘ืขื™ื•ืช ื”ืžืชื•ืืจื•ืช ื›ืืŸ.

ืื‘ืœ ืžืฆื“ ืฉื ื™, ื—ืœืง ืžื”ืคืจืžื˜ืจื™ื ื”ืœืœื• ืขื“ื™ื™ืŸ ื™ื”ื™ื• ืจืœื•ื•ื ื˜ื™ื™ื ืขื‘ื•ืจืš. ืœื“ื•ื’ืžื”, ื”ื’ื“ืจ dirty_ratio ืขื sysctl ื›ืš ืฉื–ื” ืœื ื™ื”ื™ื” ื›ืœ ื›ืš ืžื˜ื•ืจืฃ - ื‘ื›ืœ ืžืงืจื”, ื–ื” ื™ืขื–ื•ืจ. ื›ืš ืื• ืื—ืจืช, ืชื”ื™ื” ืœืš ืื™ื ื˜ืจืืงืฆื™ื” ืขื ื”ื“ื™ืกืง. ื•ื–ื” ื™ื”ื™ื” ืœืคื™ ื”ืชื‘ื ื™ืช ื”ืœื ื ื›ื•ื ื”. ื–ื” ื‘ื“ืจืš ื›ืœืœ ื‘ืจื™ืจืช ืžื—ื“ืœ ืขื‘ื•ืจ ื”ืคืจืžื˜ืจื™ื ืฉื”ืฆื’ืชื™. ื•ื‘ื›ืœ ืžืงืจื” ืขื“ื™ืฃ ืœืฉื ื•ืช ืื•ืชื.

ืื‘ืœ ืขืฉื•ื™ื•ืช ืœื”ื™ื•ืช ื‘ืขื™ื•ืช ืขื NUMA. VmWare, ืœืžืฉืœ, ืขื•ื‘ื“ ื”ื™ื˜ื‘ ืขื NUMA ืขื ื”ื”ื’ื“ืจื•ืช ื”ื”ืคื•ื›ื•ืช ื‘ื“ื™ื•ืง. ื•ื›ืืŸ ื™ืฉ ืœื‘ื—ื•ืจ - ืฉืจืช ื‘ืจื–ืœ ืื• ืœื ื‘ืจื–ืœ.

ื™ืฉ ืœื™ ืฉืืœื” ื”ืงืฉื•ืจื” ืœืืžื–ื•ืŸ AWS. ื™ืฉ ืœื”ื ืชืžื•ื ื•ืช ืžื•ื’ื“ืจื•ืช ืžืจืืฉ. ืื—ื“ ืžื”ื ื ืงืจื Amazon RDS. ื”ืื ื™ืฉ ื”ื’ื“ืจื•ืช ืžื•ืชืืžื•ืช ืื™ืฉื™ืช ืœืžืขืจื›ืช ื”ื”ืคืขืœื” ืฉืœื”ื?

ื™ืฉ ืฉื ื”ื’ื“ืจื•ืช, ืื‘ืœ ื”ืŸ ื”ื’ื“ืจื•ืช ืฉื•ื ื•ืช. ื›ืืŸ ืื ื• ืžื’ื“ื™ืจื™ื ืืช ืžืขืจื›ืช ื”ื”ืคืขืœื” ืžื‘ื—ื™ื ืช ื”ืื•ืคืŸ ืฉื‘ื• ืžืกื“ ื”ื ืชื•ื ื™ื ื™ืฉืชืžืฉ ื‘ื“ื‘ืจ ื”ื–ื”. ื•ื™ืฉ ืคืจืžื˜ืจื™ื ืฉืงื•ื‘ืขื™ื ืœืืŸ ืขืœื™ื ื• ืœืœื›ืช ืขื›ืฉื™ื•, ื›ืžื• ืขื™ืฆื•ื‘. ื›ืœื•ืžืจ, ืื ื—ื ื• ืฆืจื™ื›ื™ื ื›ืœ ื›ืš ื”ืจื‘ื” ืžืฉืื‘ื™ื, ืขื›ืฉื™ื• ื ืื›ืœ ืื•ืชื. ืœืื—ืจ ืžื›ืŸ, Amazon RDS ืžื”ื“ืงืช ืืช ื”ืžืฉืื‘ื™ื ื”ืœืœื•, ื•ื”ื‘ื™ืฆื•ืขื™ื ื™ื•ืจื“ื™ื ืฉื. ื™ืฉ ืกื™ืคื•ืจื™ื ื‘ื•ื“ื“ื™ื ืขืœ ืื™ืš ืื ืฉื™ื ืžืชื—ื™ืœื™ื ืœื”ืชืขืกืง ื‘ืขื ื™ื™ืŸ ื”ื–ื”. ืœืคืขืžื™ื ืืคื™ืœื• ื“ื™ ื‘ื”ืฆืœื—ื”. ืื‘ืœ ื–ื” ืœื ืงืฉื•ืจ ืœื”ื’ื“ืจื•ืช ืžืขืจื›ืช ื”ื”ืคืขืœื”. ื–ื” ื›ืžื• ืœืคืจื•ืฅ ืœืขื ืŸ. ื–ื” ื›ื‘ืจ ืกื™ืคื•ืจ ืื—ืจ.

ืžื“ื•ืข ืœื“ืคื™ ืขื ืง ืฉืงื•ืคื™ื ืื™ืŸ ื”ืฉืคืขื” ื‘ื”ืฉื•ื•ืื” ืœ-Huge TLB?

ืืœ ืชืชืŸ. ื ื™ืชืŸ ืœื”ืกื‘ื™ืจ ื–ืืช ื‘ื“ืจื›ื™ื ืจื‘ื•ืช. ืื‘ืœ ืœืžืขืฉื” ื”ื ืคืฉื•ื˜ ืœื ื ื•ืชื ื™ื ืืช ื–ื”. ืžื”ื™ ื”ื”ื™ืกื˜ื•ืจื™ื” ืฉืœ PostgreSQL? ื‘ืขืช ื”ื”ืคืขืœื”, ื”ื•ื ืžืงืฆื” ื—ืœืง ื’ื“ื•ืœ ืฉืœ ื–ื™ื›ืจื•ืŸ ืžืฉื•ืชืฃ. ืื ื”ื ืฉืงื•ืคื™ื ืื• ืœื ื–ื” ืœื’ืžืจื™ ืœื ืจืœื•ื•ื ื˜ื™. ื”ืขื•ื‘ื“ื” ืฉื”ื ื‘ื•ืœื˜ื™ื ื‘ื”ืชื—ืœื” ืžืกื‘ื™ืจื” ื”ื›ืœ. ื•ืื ื™ืฉ ื”ืจื‘ื” ื–ื™ื›ืจื•ืŸ ื•ืืชื” ืฆืจื™ืš ืœื‘ื ื•ืช ืžื—ื“ืฉ ืืช ืงื˜ืข shared_memory, ืื– ื“ืคื™ ืขื ืง ืฉืงื•ืคื™ื ื™ื”ื™ื• ืจืœื•ื•ื ื˜ื™ื™ื. ื‘-PostgreSQL, ื–ื” ืคืฉื•ื˜ ืžื•ืงืฆื” ื‘ื ืชื— ืขื ืง ื‘ื”ืชื—ืœื” ื•ื–ื”ื•, ื•ืื– ืฉื•ื ื“ื‘ืจ ืžื™ื•ื—ื“ ืœื ืงื•ืจื” ืฉื. ืืชื” ื™ื›ื•ืœ, ื›ืžื•ื‘ืŸ, ืœื”ืฉืชืžืฉ ื‘ื•, ืื‘ืœ ื™ืฉ ืกื™ื›ื•ื™ ืœืงื‘ืœ ื”ืฉื—ืชื” ืฉืœ shared_memory ื›ืืฉืจ ื”ื•ื ืžืงืฆื” ืžื—ื“ืฉ ืžืฉื”ื•. PostgreSQL ืœื ื™ื•ื“ืข ืขืœ ื–ื”.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”