αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αž”αŸ’αžšαžαž·αž…αžΆαžšαž·αž€αž“αŸƒαžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž†αŸ’αž“αžΆαŸ† 2015 αžŠαŸ„αž™ Ilya Kosmodemyansky "αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL"

αž€αžΆαžšαž”αžŠαž·αžŸαŸαž’αŸ– αžαŸ’αž‰αž»αŸ†αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžαžΆαžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž“αŸαŸ‡αž…αž»αŸ‡αž€αžΆαž›αž”αžšαž·αž…αŸ’αž†αŸαž‘αžαŸ‚αžœαž·αž…αŸ’αž†αž·αž€αžΆ αž†αŸ’αž“αžΆαŸ† 2015 - αž‡αžΆαž„ 4 αž†αŸ’αž“αžΆαŸ†αž”αžΆαž“αž€αž“αŸ’αž›αž„αž•αž»αžαž‘αŸ… αž αžΎαž™αž–αŸαž›αžœαŸαž›αžΆαž‡αžΆαž…αŸ’αžšαžΎαž“αž”αžΆαž“αž€αž“αŸ’αž›αž„αž•αž»αžαž‘αŸ…αŸ” αž€αŸ†αžŽαŸ‚ 9.4 αžŠαŸ‚αž›β€‹αž”αžΆαž“β€‹αž–αž·αž—αžΆαž€αŸ’αžŸαžΆβ€‹αž€αŸ’αž“αž»αž„β€‹αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸβ€‹αž‚αžΊβ€‹αž˜αž·αž“β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž‚αžΆαŸ†αž‘αŸ’αžšβ€‹αž‘αŸ€αžβ€‹αž‘αŸβ€‹αŸ” αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž› 4 αž†αŸ’αž“αžΆαŸ†αž€αž“αŸ’αž›αž„αž˜αž€αž“αŸαŸ‡ PostgreSQL αžαŸ’αž˜αžΈαž…αŸ†αž“αž½αž“ 5 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™ αž αžΎαž™ 15 αž€αŸ†αžŽαŸ‚αž“αŸƒαžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž’αžαŸ’αžαž”αž‘αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‘αžΎαž„αžœαž·αž‰ αž’αŸ’αž“αž€αž“αžΉαž„αž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ„αž™αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž•αŸ’αžŸαŸαž„αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž™αžΎαž„αž–αž·αž…αžΆαžšαžŽαžΆαž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ PostgreSQL αžŠαŸ‚αž›αž“αŸ…αžαŸ‚αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αžŸαž–αŸ’αžœαžαŸ’αž„αŸƒαž“αŸαŸ‡αŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky


αžˆαŸ’αž˜αŸ„αŸ‡αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž‚αžΊ Ilya Kosmodemyansky αŸ” αžαŸ’αž‰αž»αŸ†αž’αŸ’αžœαžΎαž€αžΆαžšαž“αŸ… PostgreSQL-Consulting αŸ” αž αžΎαž™αž₯αž‘αžΌαžœαž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž“αž·αž™αžΆαž™αž”αž“αŸ’αžαž·αž…αž’αŸ†αž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž’αŸ’αžœαžΎαž‡αžΆαž˜αž½αž™αž›αžΈαž“αž»αž…αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‡αžΆαž‘αžΌαž‘αŸ…αž“αž·αž„ PostgreSQL αž‡αžΆαž–αž·αžŸαŸαžŸαž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž‚αžΊαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαŸ”

αžαžΎαž™αžΎαž„αž“αžΉαž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž’αŸ’αžœαžΈ? αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αŸ’αžšαžΆαžŸαŸ’αžšαŸαž™αž‘αžΆαž€αŸ‹αž‘αž„αž‡αžΆαž˜αž½αž™ PostgreSQL αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αžšαž·αžαžαŸ’αž›αŸ‡ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αŸ’αž›αžΆαž™αž‡αžΆαž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ UNIX αŸ” αžαžΎβ€‹αžœαžΆβ€‹αž˜αžΆαž“αž“αŸαž™β€‹αž™αŸ‰αžΆαž„β€‹αžŠαžΌαž…αž˜αŸ’αžαŸαž…? αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž”αŸ’αžšαŸ€αž”αž’αŸ€αž” Oracle αž“αž·αž„ PostgreSQL αž“αŸ„αŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„ Oracle αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž˜αžΆαž“ 80% DBA database admin αž“αž·αž„ 20% Linux admin αŸ”

αž‡αžΆαž˜αž½αž™αž“αžΉαž„ PostgreSQL αžœαžΆαž˜αžΆαž“αž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž”αž“αŸ’αžαž·αž…αŸ” αž‡αžΆαž˜αž½αž™αž“αžΉαž„ PostgreSQL αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž˜αžΆαž“αž€αžΆαžšαž™αž›αŸ‹αžŠαžΉαž„αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αž”αžΆαžŸαŸ‹αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž›αžΈαž“αž»αž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž αžΎαž™αž€αŸ’αž“αž»αž„αž–αŸαž›αž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαž“αŸαŸ‡ αžšαžαŸ‹αž”αž“αŸ’αžαž·αž…αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αŸ’αž”αžΆαž›αžšαžαž—αŸ’αž›αžΎαž„ αž–αŸ’αžšαŸ„αŸ‡αžαŸ’αž˜αžΈαŸ—αž“αŸαŸ‡αž’αŸ’αžœαžΈαŸ—αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αžΆαž”αŸ‹αžŠαŸαžαž™αŸ‰αžΆαž„αžŸαŸ’αž’αžΆαžαŸ” αž αžΎαž™αžαžΊαžŽαŸ‚αž›αžαŸ’αž˜αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αŸαž‰ αž αžΎαž™αž˜αž»αžαž„αžΆαžšαžαŸ’αž˜αžΈαž›αŸαž…αž‘αžΎαž„ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αŸ”αž›αŸ”

αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž™αžΎαž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž›αžΈαž“αž»αž…? αž˜αž·αž“αž˜αŸ‚αž“αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž™αžΎαž„αž“αŸ…αž―αžŸαž“αŸ’αž“αž·αžŸαžΈαž‘αž›αžΈαž“αž»αž…αž–αŸαžαŸ’αžšαž»αžŸαž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αž›αž€αŸ’αžαžαžŽαŸ’αžŒαž‘αŸ†αž“αžΎαž”αž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŠαŸαžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž”αŸ†αž•αž»αžαž˜αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‡αžΆαž‘αžΌαž‘αŸ… αž“αž·αž„ PostgreSQL αž‡αžΆαž–αž·αžŸαŸαžŸαž‚αžΊαž›αžΈαž“αž»αž…αŸ” αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚ FreeBSD αž‡αžΆαž’αž€αž»αžŸαž›αž€αŸ†αž–αž»αž„αž’αž—αž·αžœαžŒαŸ’αžαž€αŸ’αž“αž»αž„αž‘αž·αžŸαžŠαŸ…αž…αž˜αŸ’αž›αŸ‚αž€αžŽαžΆαžŸαŸ‹αŸ” αž αžΎαž™αž“αžΉαž„αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž‘αžΆαŸ†αž„αž€αžΆαžšαžŸαž˜αŸ’αžαŸ‚αž„ αž“αž·αž„αž‡αžΆαž˜αž½αž™αžšαžΏαž„αž‡αžΆαž…αŸ’αžšαžΎαž“αž‘αŸ€αžαŸ” αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžšαž”αžŸαŸ‹ PostgreSQL αž“αŸ…αž›αžΎ Windows αž‡αžΆαž‘αžΌαž‘αŸ…αž‚αžΊαž‡αžΆαž”αž‰αŸ’αž αžΆαž’αŸ’αž„αž“αŸ‹αž’αŸ’αž„αžšαžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž˜αž½αž™ αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆ Windows αž˜αž·αž“αž˜αžΆαž“αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αžŠαžΌαž…αž‚αŸ’αž“αžΆαž‘αŸ…αž“αžΉαž„ UNIX αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž› PostgreSQL αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž„αž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡ αž–αŸ’αžšαŸ„αŸ‡αžœαžΆαž‡αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž–αž αž»αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ”

αž αžΎαž™αžαŸ’αž‰αž»αŸ†αž‚αž·αžαžαžΆαž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž˜αž·αž“αžŸαžΌαžœαž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž“αžΉαž„αž€αž˜αŸ’αžšαž“αž·αž„αž’αžŸαž€αž˜αŸ’αž˜αžŠαžΌαž… Solaris αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžαŸ„αŸ‡αž‘αŸ…αŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αž›αžΈαž“αž»αž…αž‘αŸ†αž“αžΎαž”αž˜αžΆαž“αž‡αž˜αŸ’αžšαžΎαžŸ syctl αž‡αžΆαž„ 1 αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαžšαž”αŸ€αž”αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαžαžαžΊαžŽαŸ‚αž›αŸ” αž€αŸ’αž“αž»αž„αž–αŸαž›αž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαž“αŸαŸ‡ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αž‚αŸ’αžšαžΆαž”αŸ‹αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆ αž™αžΎαž„αž’αžΆαž…αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž’αŸ’αžœαžΈαž˜αž½αž™αžαžΆαž˜αžœαž·αž’αžΈαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αž˜αžΆαž“αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž―αž€αžŸαžΆαžšαž’αŸ†αž–αžΈαžšαž”αŸ€αž”αž˜αŸ‰αŸ„αž“αž–αž½αž€αžœαžΆαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αžŸαŸ†αžŽαž½αžšαž’αŸ†αž–αžΈαžšαž”αŸ€αž”αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžœαžΆ: αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΎαž€αž“αŸ…αž€αŸ’αž“αž»αž„ BIOS αžšαž”αŸ€αž”αž€αŸ†αžŽαžαŸ‹αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αŸ”αž›αŸ”

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž”αžšαž·αž˜αžΆαžŽαžŠαŸαž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž‡αžΆαž…αŸ’αžšαžΎαž“αžαŸ’αž„αŸƒ αž αžΎαž™αž˜αž·αž“αž˜αŸ‚αž“αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαžαŸ’αž›αžΈαž˜αž½αž™αž“αŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž₯αž‘αžΌαžœαž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž•αŸ’αžαŸ„αžαž›αžΎαžšαžΏαž„αžŸαŸ†αžαžΆαž“αŸ‹αŸ— αžšαž”αŸ€αž”αž‡αŸ€αžŸαžœαžΆαž„αž€αžΆαžšαžαž»αž„αžšαž½αž…αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αžΆαž“αžΆαžŠαžΎαž˜αŸ’αž”αžΈαž€αžΆαžšαž–αžΆαžšαž’αŸ’αž“αž€αž–αžΈαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αžΆαž“αž™αŸ‰αžΆαž„αž›αŸ’αž’αž“αŸ…αž›αžΎαž›αžΈαž“αž»αž… αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€ αž€αž»αŸ†αž€αŸ‚αž–αž½αž€αž‚αŸαŸ” αž αžΎαž™αž€αŸ’αž“αž»αž„αž–αŸαž›αž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαž“αŸαŸ‡ αž…αŸ†αžŽαž»αž…αžŸαŸ†αžαžΆαž“αŸ‹αž˜αž½αž™αž‚αžΊαžαžΆ αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž‡αžΆαž…αŸ’αžšαžΎαž“αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžŠαŸ‚αž›αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ„αŸ‡αž‘αŸαŸ” αž“αŸ„αŸ‡αž‚αžΊαžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αžœαžΆαž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž·αž“αž›αŸ’αž’ αž¬αž’αžαŸ‹αž‘αžΆαž›αŸ‹αžαŸ‚αžŸαŸ„αŸ‡αŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αžαžΎβ€‹αž‚αŸ„αž›β€‹αžŠαŸ…β€‹αž€αŸ‚β€‹αžŸαž˜αŸ’αžšαž½αž›β€‹αž”αŸ‚αž”β€‹αž”αŸ’αžšαž–αŸƒαžŽαžΈβ€‹αž’αŸ’αžœαžΈβ€‹αžαŸ’αž›αŸ‡β€‹αž“αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αž›αžΈαž“αž»αž…? αžαŸ’αž‰αž»αŸ†αž‚αž·αžαžαžΆαž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž’αŸ’αž“αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž€αŸ†αž–αž»αž„αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‡αžΆαž˜αž½αž™αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž›αžΈαž“αž»αž… αžœαžΆαž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž–αž“αŸ’αž™αž›αŸ‹αž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž‡αžΆαž‚αŸ„αž›αžŠαŸ…αž“αŸ„αŸ‡αž‘αŸαŸ”

αž’αŸ’αž“αž€αž’αžΆαž…αž›αŸƒαžαž˜αŸ’αžšαžΌαžœαŸ–

  • αžŸαŸŠαžΈαž—αžΈαž™αžΌαŸ”
  • αž€αžΆαžšαž…αž„αž…αžΆαŸ†αŸ”
  • αž§αž”αž€αžšαžŽαŸαž•αŸ’αž‘αž»αž€αŸ”
  • αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αž™αžΎαž„αž“αžΉαž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαžšαžΏαž„αž“αŸαŸ‡αž“αŸ…αž…αž»αž„αž”αž‰αŸ’αž…αž”αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžΆαž αžΆαžšαžŸαž˜αŸ’αžšαž“αŸ‹αŸ” αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž§αž‘αžΆαž αžšαžŽαŸ αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαžΌαž…αž‡αžΆαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαžŸαž“αŸ’αžŸαŸ†αžŸαŸ†αž…αŸƒαžαžΆαž˜αž–αž›αž’αžΆαž…αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžŠαž›αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αž‘αžΆαž™αž‘αž»αž€αž‡αžΆαž˜αž»αž“αž”αžΆαž“ αž“αž·αž„αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαžœαž·αž’αžΈαžšαžΈαž€αžšαžΆαž™αž”αŸ†αž•αž»αžαž“αŸ„αŸ‡αž‘αŸαŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αžαžΎαž’αŸ’αžœαžΈαž‡αžΆαž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαžšαž”αžŸαŸ‹ PostgreSQL αž“αž·αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‡αžΆαž‘αžΌαž‘αŸ…? αž”αž‰αŸ’αž αžΆαž‚αžΊαžαžΆ αž’αŸ’αž“αž€αž˜αž·αž“αž’αžΆαž…αž€αŸ‚αž”αŸ’αžšαŸ‚αž‚αŸ’αžšαžΆαž”αŸ‹αž“αžΈαž˜αž½αž™αŸ— αž αžΎαž™αžƒαžΎαž‰αžαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž”αžŸαŸ‹αž™αžΎαž„αž˜αžΆαž“αž—αžΆαž–αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž‚αž½αžšαž±αŸ’αž™αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αŸ”

αž”αžΆαž‘ αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαž”αŸ‚αž”αž“αŸαŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‚αžΊαž‡αžΆαžšαžΏαž„αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αŸ” αžœαžΆαž’αŸ’αžœαžΎαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αž’αž“αž’αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž˜αžΆαž“ αž αžΎαž™αž…αžΌαž›αž…αž·αžαŸ’αžαž’αŸ’αžœαžΎαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž±αŸ’αž™αž”αžΆαž“αž–αŸαž‰αž›αŸαž‰αž”αŸ†αž•αž»αžαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αžšαž”αžŸαŸ‹ Oracle αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αž”αŸ’αžšαžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ αžœαžΆαž“αžΉαž„αžŠαžΌαž…αž‡αžΆαžšαžΏαž„αž€αŸ†αž”αŸ’αž›αŸ‚αž„αž’αŸ†αž–αžΈαž’αžœαž€αžΆαžŸαž™αžΆαž“αž·αž€αž˜αŸ‰αž»αž„αž αŸ’αž‚αŸ„αž›αžΈαž“αŸ„αŸ‡ - αž…αž·αž‰αŸ’αž…αžΉαž˜αž†αŸ’αž€αŸ‚ αž αžΎαž™αž˜αž·αž“αž”αŸ‰αŸ‡αž’αŸ’αžœαžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ” αž…αžΌαžšαž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αžΌαžœαž’αž“αž’αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αž›αž½αž“αž―αž„αž“αžΉαž„αžαž˜αŸ’αžšαŸ€αž”αž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž…αŸαž‰αŸ”

αž‡αžΆαž‚αŸ„αž›αž€αžΆαžšαžŽαŸ αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αžšαž·αžαžαŸ’αž›αŸ‡ αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž‚αžΊαžŠαžΌαž…αž‚αŸ’αž“αžΆαž‘αŸ…αž“αžΉαž„ PostgreSQL αŸ” αž—αžΆαž–αžαž»αžŸαž”αŸ’αž›αŸ‚αž€αž‚αŸ’αž“αžΆαž“αŸ„αŸ‡αž‚αžΊαžαžΆ αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αž·αž“αž‘αžΆαž“αŸ‹αž’αžΆαž…αž™αž€αž’αž“αž’αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž›αž½αž“αžœαžΆαž“αŸ…αž‘αžΎαž™ αž–αŸ„αž›αž‚αžΊαž“αŸ…αž€αž“αŸ’αž›αŸ‚αž„αžŽαžΆαž˜αž½αž™αž“αŸ…αž€αž˜αŸ’αžšαž·αžαž›αžΈαž“αž»αž… αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžαž˜αŸ’αžšαŸ€αž”αžœαžΆαž…αŸαž‰αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αŸ”

αž‚αŸ†αž“αž·αžαž…αž˜αŸ’αž”αž„αž‚αžΊαž˜αž·αž“αžαŸ’αžšαžΌαžœαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž‚αŸ„αž›αžŠαŸ…αžαŸ‚αž˜αž½αž™ αž αžΎαž™αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž›αŸƒαžαž˜αŸ’αžšαžΌαžœαžœαžΆ αž§αž‘αžΆαž αžšαžŽαŸ αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αžŸαŸŠαžΈαž—αžΈαž™αžΌ αž¬αž’αŸ’αžœαžΈαž˜αž½αž™αžŠαžΌαž…αž“αŸ„αŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαžΎαž˜αŸ’αž”αžΈαžœαž·αž—αžΆαž‚αž”αž“αŸ’αž‘αž»αž€αž€αžΆαžšαž„αžΆαžš αž“αž·αž„αž–αŸ’αž™αžΆαž™αžΆαž˜αž€αŸ‚αž›αž˜αŸ’αž’αž›αŸ†αž αžΌαžšαž±αŸ’αž™αž”αžΆαž“αž…αŸ’αžšαžΎαž“αžαžΆαž˜αžαŸ‚αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž”αž“αŸ’αž‘αž»αž€αžŠαŸ‚αž›αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž›αŸ’αž’αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžœαžΆαž‘αžΎαž„αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αž½αž€αž™αžΎαž„ αžšαž½αž˜αž‘αžΆαŸ†αž„αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αž“αŸαŸ‡αž‡αžΆαžšαžΌαž”αž—αžΆαž–αžŠαžΎαž˜αŸ’αž”αžΈαž–αž“αŸ’αž™αž›αŸ‹αžαžΆαžœαžΆαž‡αžΆαž’αŸ’αžœαžΈαŸ” αž˜αžΆαž“αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“ Linux OS αž αžΎαž™αž˜αžΆαž“αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€ αž αžΎαž™αž˜αžΆαž“αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“ PostgreSQL αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αŸ” PostgreSQL αž˜αž·αž“αžŠαžΌαž… Oracle αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ‚αžαžΆαž˜αžšαž™αŸˆ kernel buffer αž–αŸ„αž›αž‚αžΊ αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž‘αŸ†αž–αŸαžšαž˜αž½αž™αž–αžΈ disk αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„ memory αžšαž½αž˜αžšαž”αžŸαŸ‹αžœαžΆ αžœαžΆαžαŸ’αžšαžΌαžœαžαŸ‚αž†αŸ’αž›αž„αž€αžΆαžαŸ‹ kernel buffer αž“αž·αž„ back αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ”

αžαžΆαžŸαžšαžŸαŸ‹αž“αŸ…αž€αŸ’αžšαŸ„αž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αŸαŸ‡αŸ” αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž‚αžΌαžšαžœαžΆαž‡αžΆαžαžΆαžŸαŸ” αžαžΆαž˜αž€αžΆαžšαž–αž·αžαž’αžΆαž…αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ RAID αŸ”αž›αŸ”

αž αžΎαž™αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›-αž‘αž·αž“αŸ’αž“αž•αž›αž“αŸαŸ‡αžαžΆαž˜αž˜αž’αŸ’αž™αŸ„αž”αžΆαž™αž˜αž½αž™ αž¬αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž€αžΎαžαž‘αžΎαž„αžαžΆαž˜αžšαž™αŸˆαž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αŸ”

PostgreSQL αž‚αžΊαž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž”αž»αžšαžΆαžŽαŸ” αž˜αžΆαž“αž‘αŸ†αž–αŸαžšαž˜αž½αž™αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„αŸ” αž αžΎαž™αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž› αž“αž·αž„αž›αž‘αŸ’αž’αž•αž›αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αž”αŸ’αžšαžΎαž‘αŸ†αž–αŸαžšαŸ” αž™αžΎαž„αž€αŸ†αž–αž»αž„αž”αž„αŸ’αž€αžΎαž“αž”αŸ’αž›αž»αž€αž‘αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž„αž…αžΆαŸ†αž‡αžΆαž˜αž½αž™αž‘αŸ†αž–αŸαžšαŸ” αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‚αŸ’αž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž‘αŸ αž™αžΎαž„αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž’αžΆαž“αž–αž½αž€αžœαžΆ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž–αž½αž€αžœαžΆαž”αžΆαžαŸ‹αž”αž“αŸ’αžαž·αž…αž˜αŸ’αžαž„αŸ—αž–αžΈαžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž“αŸαŸ‡ αž–αžΈαžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€ αž αžΎαž™αž”αž‰αŸ’αž…αž”αŸ‹αž“αŸ…αž›αžΎαžαžΆαžŸαžœαž·αž‰αŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž‡αŸ†αž“αž½αžŸαž’αŸ’αžœαžΈαž˜αž½αž™αž“αŸ…αž€αž“αŸ’αž›αŸ‚αž„αžŽαžΆαž˜αž½αž™ αž“αŸ„αŸ‡αž‘αŸ†αž–αŸαžšαž‘αžΆαŸ†αž„αž˜αžΌαž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžαžΆαž€αžαŸ’αžœαž€αŸ‹αŸ” αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž–αž½αž€αžœαžΆαž“αŸ…αž‘αžΈαž“αŸαŸ‡αž‡αžΆαž–αžŽαŸŒαžαŸ€αžœαŸ” αž αžΎαž™αž“αŸαŸ‡αž˜αžΆαž“αž“αŸαž™αžαžΆαž‘αŸ†αž–αŸαžšαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαžαŸ‚αž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž”αŸ’αž›αž»αž€αŸ” αž“αŸ„αŸ‡β€‹αž‚αžΊβ€‹αž“αŸ…β€‹αž–αŸαž›β€‹αžŠαŸ‚αž›β€‹αž™αžΎαž„β€‹αž’αŸ’αžœαžΎβ€‹αž²αŸ’αž™β€‹αžœαžΆβ€‹αž€αžαŸ’αžœαž€αŸ‹ αž™αžΎαž„β€‹αž”αžΆαž“β€‹αž…αžΌαž›β€‹αž€αŸ’αž“αž»αž„ WALαŸ” αž αžΎαž™αž“αŸ…αž–αŸαž›αžœαŸαž›αžΆαžŠαŸαž’αžŸαŸ’αž…αžΆαžšαŸ’αž™αž˜αž½αž™ αž”αžΆαžαž»αž—αžΌαžαž˜αž½αž™αž αŸ…αžαžΆ αž”αŸ‰αž»αžŸαŸ’αžαž·αŸαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž”αžΆαž“αž˜αž€αžŠαž›αŸ‹αŸ” αž αžΎαž™αž–αŸαžαŸŒαž˜αžΆαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžαŸ‹αžαŸ’αžšαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž“αŸαŸ‡αžŠαŸ‚αž›αž‚αžΆαžαŸ‹αž”αžΆαž“αž˜αž€αžŠαž›αŸ‹αŸ” αž αžΎαž™αž“αŸαŸ‡αž˜αžΆαž“αž“αŸαž™αžαžΆαž‘αŸ†αž–αŸαžšαž€αžαŸ’αžœαž€αŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž“αŸ…αž–αŸαž›αž“αŸ„αŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž‘αžΆαŸ†αž„αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αžαžΆαžŸαž•αŸ’αž‘αž»αž€αžŠαŸ„αž™αž”αŸ’αžšαžΎ fsync αžαžΆαž˜αžšαž™αŸˆαžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αžαžΊαžŽαŸ‚αž›αŸ”

αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎ? αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž”αžΆαžαŸ‹αž”αž„αŸ‹αžœαŸ‰αž»αž›αž“αŸ„αŸ‡αž™αžΎαž„αž˜αž·αž“αž‘αž‘αž½αž›αž”αžΆαž“αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŠαŸ‚αž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΆαžαŸ‹αž”αž„αŸ‹αž“αŸ„αŸ‡αž‘αŸαŸ” αž€αžΆαžšαž…αž„αž…αžΆαŸ†αž‡αžΆαž”αŸ‹αž›αžΆαž”αŸ‹ αžŠαŸ‚αž›αž˜αž“αž»αžŸαŸ’αžŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž”αžΆαž“αž”αŸ’αžšαžΆαž”αŸ‹αž™αžΎαž„αž’αŸ†αž–αžΈ αžšαž αžΌαžαž˜αž€αžŠαž›αŸ‹αž–αŸαž›αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž‘αŸ’αžšαžΉαžŸαŸ’αžŠαžΈαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ - αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž’αž“αžΆαž‚αžαžŠαŸαž—αŸ’αž›αžΊαžŸαŸ’αžœαžΆαž„ αžŠαŸ‚αž›αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αž™αžΎαž„αžαž·αžαžαŸ† αž αžΎαž™αž™αžΎαž„αž…αžΌαž›αž…αž·αžαŸ’αžαžœαžΆ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αŸαž›αž“αŸαŸ‡ αž–αž½αž€αž‚αŸαžšαžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αžŠαž€ 20 αž†αŸ’αž“αžΆαŸ†αŸ” αž αžΎαž™αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαžαŸ‚αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αŸ”

αž αžΎαž™β€‹αž—αžΆαžšαž€αž·αž…αŸ’αž…β€‹αž“αŸƒβ€‹αž€αžΆαžšβ€‹αž”αž„αŸ’αž€αžΎαž“β€‹αž‘αž·αž“αŸ’αž“αž•αž›β€‹αž’αžαž·αž”αžšαž˜αžΆβ€‹αž‚αžΊβ€‹αžαŸ’αžšαžΌαžœβ€‹αžŸαž˜αŸ’αžšαž½αž›β€‹αž“αŸ…β€‹αž‚αŸ’αžšαž”αŸ‹β€‹αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›β€‹αž‘αžΆαŸ†αž„β€‹αž’αžŸαŸ‹β€‹αž“αŸαŸ‡ αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž±αŸ’αž™β€‹αžœαžΆβ€‹αžœαž·αž›β€‹αž‘αŸ…β€‹αž˜αž»αžβ€‹αž™αŸ‰αžΆαž„β€‹αž›αžΏαž“αŸ” αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž‚αžΊαž‡αžΆαžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž‘αŸ†αž–αŸαžšαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„ PostgreSQL αž™αžΎαž„αž”αžΆαž“αž•αŸ’αž‰αžΎαžŸαŸ†αžŽαž½αžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ αž¬αž’αŸ’αžœαžΈαž˜αž½αž™ αžœαžΆαž”αžΆαž“αž‘αžΆαž‰αž™αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸαŸ‡αž–αžΈαžαžΆαžŸαŸ” αž–αž½αž€αž‚αŸαž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ buffers αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αŸ” αžŠαžΌαž…αŸ’αž“αŸ„αŸ‡αž αžΎαž™αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸαŸ‡αž€αžΆαž“αŸ‹αžαŸ‚αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αžαŸ’αžšαžΌαžœαžαŸ‚αž˜αžΆαž“αž€αžΆαžšαž…αž„αž…αžΆαŸ†αž…αŸ’αžšαžΎαž“αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“αž›αŸ’αž’ αž“αž·αž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž±αŸ’αž™αž”αžΆαž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸ…αž‚αŸ’αžšαž”αŸ‹αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ” αž αžΎαž™αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αžŠαŸ‚αž›αž˜αžΆαž“αžαž»αž›αŸ’αž™αž—αžΆαž– αž–αŸ’αžšαŸ„αŸ‡αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž’αžαž»αž›αŸ’αž™αž—αžΆαž–αž“αŸ…αž€αž“αŸ’αž›αŸ‚αž„αžŽαžΆαž˜αž½αž™ αž“αŸ„αŸ‡αž’αŸ’αž“αž€αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž”αžΆαž“αž…αŸ’αžšαžΎαž“ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆαž€αŸ’αž“αž»αž„αž›αŸ’αž”αžΏαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž“αŸ„αŸ‡αž‘αŸαŸ”

αž αžΎαž™αžŸαžΌαž˜αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž…αŸ†αžŽαž»αž…αž“αžΈαž˜αž½αž™αŸ—αž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž±αŸ’αž™αž‘αŸ†αž–αŸαžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž’αŸ’αžœαžΎαžŠαŸ†αžŽαžΎαžšαž‘αŸ…αž˜αž€αž”αžΆαž“αž›αžΏαž“αž‡αžΆαž„αž˜αž»αž“ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžŸαž˜αŸ’αžšαŸαž…αž”αžΆαž“αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

  • αž‡αžΆαžŠαŸ†αž”αžΌαž„ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž’αŸ’αžœαžΎαž€αžΆαžšαž±αŸ’αž™αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αŸ”
  • αž‘αžΈαž–αžΈαžš αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž“αŸαŸ‡αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž‘αŸ†αž–αŸαžšαž–αžΈαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž‘αŸ…αž€αžΆαž“αŸ‹αžαžΆαžŸαž‚αž½αžšαžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž‡αžΆαž„αŸ”
  • αž αžΎαž™αž‘αžΈαž”αžΈαžαŸ’αžšαžΌαžœαžαŸ‚αž˜αžΆαž“αžαžΆαžŸαž›αŸ’αž’αŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“ RAM αž‘αŸ†αž αŸ† 512 GB αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž αžΎαž™αž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αžΉαž„αž”αž‰αŸ’αž…αž”αŸ‹αž“αŸ…αž›αžΎαžŠαŸ’αžšαžΆαž™αžœαŸαžšαžΉαž„ SATA αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžŽαžΆαž˜αž½αž™ αž“αŸ„αŸ‡αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αžΆαŸ†αž„αž˜αžΌαž›αž”αŸ’αžšαŸ‚αž‘αŸ…αž‡αžΆαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž›αŸ’αž–αŸ…αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž›αŸ’αž–αŸ…αžŠαŸ‚αž›αž˜αžΆαž“αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹ SATA αŸ” αž’αŸ’αž“αž€αž“αžΉαž„αžšαžαŸ‹αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αžœαžΆαžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αŸ” αž αžΎαž™αž‚αŸ’αž˜αžΆαž“αž’αŸ’αžœαžΈαž“αžΉαž„αž‡αž½αž™αžŸαž„αŸ’αž‚αŸ’αžšαŸ„αŸ‡αž’αŸ’αž“αž€αž”αžΆαž“αž‘αŸαŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αž‘αžΆαž€αŸ‹αž‘αž„β€‹αž“αžΉαž„β€‹αž…αŸ†αžŽαž»αž…β€‹αž‘αžΈαž˜αž½αž™β€‹αžŠαŸ‚αž›β€‹αž˜αžΆαž“β€‹αž€αžΆαžšβ€‹αž…αž„αž…αžΆαŸ†β€‹αž˜αžΆαž“β€‹αž…αŸ†αžŽαž»αž…β€‹αž”αžΈβ€‹αžŠαŸ‚αž›β€‹αž’αžΆαž…β€‹αž’αŸ’αžœαžΎβ€‹αž²αŸ’αž™β€‹αž‡αžΈαžœαž·αžβ€‹αž‡αž½αž”β€‹αž€αžΆαžšβ€‹αž›αŸ†αž”αžΆαž€β€‹αžαŸ’αž›αžΆαŸ†αž„αŸ”

αž‘αžΈαž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž–αž½αž€αž‚αŸαž‚αžΊ NUMA αŸ” NUMA αž‚αžΊαž‡αžΆαžšαž”αžŸαŸ‹αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž”αž“αŸ’αž‘αž»αž€αž€αžΆαžšαž„αžΆαžš αž’αŸ’αžœαžΈαŸ—αž•αŸ’αžŸαŸαž„αŸ—αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαŸ” αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αžαŸ’αž˜αžΈαžšαž”αžŸαŸ‹αžœαžΆ αžœαžΆαž˜αž·αž“αž›αŸ’αž’αžαŸ’αž›αžΆαŸ†αž„αžŽαžΆαžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαžΌαž…αž‡αžΆ αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž”αŸ’αžšαžΎαžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αž“αŸƒαžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž‘αŸ†αž–αŸαžšαŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αž“αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αž€αžΆαžšβ€‹αžŸαž„αŸ’αžαŸαž”αŸ” αžαžΎβ€‹αž’αŸ’αž“αž€β€‹αž’αžΆαž…β€‹αžŠαžΉαž„β€‹αžαžΆβ€‹αž˜αžΆαž“β€‹αž’αŸ’αžœαžΈβ€‹αžαž»αžŸβ€‹αž‡αžΆαž˜αž½αž™ NUMA αžŠαŸ„αž™β€‹αžšαž”αŸ€αž”β€‹αžŽαžΆ? αž’αŸ’αž“αž€β€‹αž˜αžΆαž“β€‹αž€αžΆαžšβ€‹αž‚αŸ„αŸ‡β€‹αž˜αž·αž“β€‹αžŸαž”αŸ’αž”αžΆαž™β€‹αž…αž·αžαŸ’αž αžŸαŸ’αžšαžΆαž”αŸ‹αžαŸ‚ CPU αžαŸ’αž›αŸ‡β€‹αž›αžΎαžŸβ€‹αž‘αž˜αŸ’αž„αž“αŸ‹αŸ” αž€αŸ’αž“αž»αž„αž–αŸαž›αž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαž“αŸαŸ‡αž’αŸ’αž“αž€αžœαž·αž—αžΆαž‚αžŸαŸ†αžŽαž½αžšαž“αŸ…αž€αŸ’αž“αž»αž„ PostgreSQL αž αžΎαž™αžƒαžΎαž‰αžαžΆαž˜αž·αž“αž˜αžΆαž“αž’αŸ’αžœαžΈαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αž‘αŸαŸ” αžŸαŸ†αžŽαž½αžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž˜αž·αž“αž‚αž½αžšαž˜αžΆαž“ CPU αžαŸ’αž›αžΆαŸ†αž„αž–αŸαž€αž‘αŸαŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž…αžΆαž”αŸ‹αžœαžΆαž”αžΆαž“αžšαž™αŸˆαž–αŸαž›αž™αžΌαžšαŸ” αžœαžΆαž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ’αžšαžΎαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαžαžΆαŸ†αž„αž–αžΈαžŠαŸ†αž”αžΌαž„αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αž€αŸ†αžŽαžαŸ‹ NUMA αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ PostgreSQL αŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„? NUMA αžαŸ†αžŽαžΆαž„αž±αŸ’αž™αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž˜αž·αž“αž―αž€αžŸαžŽαŸ’αž‹αžΆαž“αŸ” αžαžΎβ€‹αž˜αžΆαž“β€‹αž…αŸ†αžŽαž»αž…β€‹αž’αŸ’αžœαžΈ? αž’αŸ’αž“αž€αž˜αžΆαž“αžŸαŸŠαžΈαž—αžΈαž™αžΌ αž“αŸ…αž€αŸ’αž”αŸ‚αžšαžœαžΆαž˜αžΆαž“αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžšαž”αžŸαŸ‹αžœαžΆαŸ” αž αžΎαž™αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž“αŸαŸ‡αž’αžΆαž…αž‘αžΆαž‰αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž–αžΈαžŸαŸŠαžΈαž—αžΈαž™αžΌαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžšαžαŸ‹ numactl --hardwareαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αž“αž€αž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αžŸαž“αŸ’αž›αžΉαž€αž’αŸ†αž”αŸ‚αž”αž“αŸαŸ‡αŸ” αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αžšαž”αžŸαŸ‹αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž“αžΉαž„αž˜αžΆαž“αžœαžΆαž›αž†αŸ’αž„αžΆαž™αŸ” αžœαžΆαž“αžΉαž„αž˜αžΆαž“αž›αŸαž - 10-20 αž’αŸ’αžœαžΈαž˜αž½αž™αžŠαžΌαž…αž“αŸ„αŸ‡αŸ” αž›αŸαžαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αžΊαž‚αŸ’αž˜αžΆαž“αž’αŸ’αžœαžΈαž›αžΎαžŸαž–αžΈαž…αŸ†αž“αž½αž“ hops αžŠαžΎαž˜αŸ’αž”αžΈαž™αž€αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž–αžΈαž…αž˜αŸ’αž„αžΆαž™αž“αŸαŸ‡ αž αžΎαž™αž”αŸ’αžšαžΎαžœαžΆαž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αŸ” αž‡αžΆαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž‚αŸ†αž“αž·αžαž›αŸ’αž’αŸ” αž“αŸαŸ‡αž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“αž›αŸ’αž’αž“αŸ…αž€αŸ’αžšαŸ„αž˜αž‡αž½αžšαž“αŸƒαž”αž“αŸ’αž‘αž»αž€αž€αžΆαžšαž„αžΆαžšαŸ”

αž₯αž‘αžΌαžœαžŸαŸ’αžšαž˜αŸƒαžαžΆαž’αŸ’αž“αž€αž˜αžΆαž“αžŸαŸŠαžΈαž—αžΈαž™αžΌαž˜αž½αž™αžŠαŸ†αž”αžΌαž„αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αŸ’αžšαžΎαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžšαž”αžŸαŸ‹αžœαžΆ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž–αŸ’αž™αžΆαž™αžΆαž˜αž‘αžΆαž‰αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž’αž“αŸ’αžαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΈαž˜αž½αž™αŸ” αž αžΎαž™αžŸαŸŠαžΈαž—αžΈαž™αžΌαž“αŸαŸ‡αž‘αž‘αž½αž›αž”αžΆαž“αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž‘αŸ†αž–αŸαžš PostgreSQL αž‘αžΆαŸ†αž„αž˜αžΌαž›αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ - αž“αŸ„αŸ‡αž αžΎαž™αž‡αžΆαžœαžΆ αž‡αžΈαž αŸ’αž‚αžΆαž”αŸƒαž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” αž’αŸ’αž“αž€αžαŸ‚αž„αžαŸ‚αž‡αž½αž”αž€αžšαžŽαžΈαžŠαŸαž’αžΆαž€αŸ’αžšαž€αŸ‹αž”αŸ†αž•αž»αž αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž“αŸ…αž›αžΎ CPU αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαž˜αžΆαž“αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžαž·αž…αžαž½αž…αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αŸ‰αžΌαžŒαž»αž›αž“αŸ„αŸ‡αŸ” αž αžΎαž™αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆαž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž‚αŸ’αž“αžΆαž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ” αžœαžΆαž”αŸ’αžšαŸ‚αž…αŸαž‰αž™αžΊαžαž“αž·αž„αžŸαŸ„αž€αžŸαŸ…αŸ” αž αžΎαž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆαžαŸ’αž“αžΆαŸ†αž„αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‘αž»αž€αž›αžΎαžŸαž‘αž˜αŸ’αž„αž“αŸ‹αž₯αžαžˆαž”αŸ‹αžˆαžšαŸ” αž αžΎαž™αž–αŸαž›αžœαŸαž›αžΆαž…αžΌαž›αž”αŸ’αžšαžΎαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž“αŸαŸ‡αž‚αžΊαž˜αž·αž“αž›αŸ’αž’ αž™αžΊαžαŸ” αž“αŸαŸ‡αž‡αžΆαžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŠαŸ‚αž›αž’αŸ’αž“αž€αž˜αž·αž“αž…αž„αŸ‹αž”αžΆαž“ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αž”αŸ’αžšαžΎαžœαžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž‡αž˜αŸ’αžšαžΎαžŸαžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž‡αžΆαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‚αžΊαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž›αžΈαž“αž»αž… αž˜αž·αž“αžŠαžΉαž„αžαžΆαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αž‘αžΆαž›αŸ‹αžαŸ‚αžŸαŸ„αŸ‡αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αžœαžΆαž…αžΌαž›αž”αŸ’αžšαžΎαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαžΌαž…αžŠαŸ‚αž›αžœαžΆαž’αŸ’αžœαžΎαŸ”

αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆβ€‹αž’αž‰αŸ’αž…αžΉαž„? αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαžαžΆαžœαžΆαž‚αž½αžšαžαŸ‚αž‡αžΆαž˜αž’αŸ’αž™αŸ„αž”αžΆαž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αžœαžΆαž€αžΎαžαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž αŸαžαž»αž•αž›αžŸαžΆαž˜αž‰αŸ’αž‰αž˜αž½αž™: αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž…αŸ’αžšαžΎαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž‘αŸ†αž–αŸαžš - αžŠαž”αŸ‹, αžšαžΆαž”αŸ‹αžšαž™αž‡αžΈαž αŸ’αž‚αžΆαž”αŸƒαŸ”

αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž”αŸ‚αž„αž…αŸ‚αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡ αž αžΎαž™αž‘αž»αž€αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαž”αžŸαŸ‹αž™αžΎαž„αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡ αž“αŸ„αŸ‡αž•αž›αž…αŸ†αžŽαŸαž‰αž–αžΈαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž“αžΉαž„αž˜αžΆαž“αž…αŸ’αžšαžΎαž“αž‡αžΆαž„αž€αžΆαžšαž‘αž‘αž½αž›αž”αžΆαž“αž–αžΈαž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸαž–αž·αž”αžΆαž€αž”αŸ‚αž”αž“αŸαŸ‡αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž™αžΎαž„αž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αž”αŸ’αžšαŸ€αž”αž•αŸ’αž‘αžΉαž˜αž”αžΆαž“αž”αžΎαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‘αŸ…αž“αžΉαž„αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž™αžΎαž„αž“αžΉαž„αž…αžΌαž›αž”αŸ’αžšαžΎαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžŠαŸ„αž™αž”αŸ’αžšαžΎ NUMA αŸ”

αž αŸαžαž»αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž˜αžΆαž“αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž–αžΈαžšαž“αŸ…αž‘αžΈαž“αŸαŸ‡ αžšαž αžΌαžαž‘αžΆαž›αŸ‹αžαŸ‚αž’αž“αžΆαž‚αžαžŠαŸαž—αŸ’αž›αžΊαžŸαŸ’αžœαžΆαž„αž”αžΆαž“αž˜αž€αžŠαž›αŸ‹ αž αžΎαž™αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αž›αž½αž“αž―αž„αž˜αž·αž“αž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αžαžΆαžαžΎαžŸαŸŠαžΈαž—αžΈαž™αžΌαž˜αž½αž™αžŽαžΆαžŠαŸ‚αž›αžœαžΆαž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αž·αž„αž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αžœαžΆαžαŸ’αžšαžΌαžœαž€αžΆαžšαž‘αžΆαž‰αž’αŸ’αžœαžΈαž˜αž½αž™αž–αžΈαž“αŸ„αŸ‡αŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž‚αžΊαžαŸ’αžšαžΌαžœαž”αž·αž‘ NUMA αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αŸ’αž“αžΆαž§αž‘αžΆαž αžšαžŽαŸαž“αŸ…αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰αŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž—αžΆαž‚αž…αŸ’αžšαžΎαž“ αž€αžΆαžšαžˆαŸ’αž“αŸ‡αž‚αžΊαž˜αžΆαž“αž›αŸ†αžŠαžΆαž”αŸ‹αž›αŸ†αžŠαŸ„αž™ αžŠαŸ‚αž›αžŸαŸ†αžŽαž½αžšαžαžΆαž˜αž½αž™αžŽαžΆαž›αŸ’αž’αž‡αžΆαž„αž˜αž·αž“αž€αžΎαžαž‘αžΎαž„αž‘αžΆαž›αŸ‹αžαŸ‚αžŸαŸ„αŸ‡αŸ”

αž˜αžΆαž“αž‡αž˜αŸ’αžšαžΎαžŸαž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αž™αžΎαž„αž”αŸ’αžšαžΎαžœαžΆαž‰αžΉαž€αž‰αžΆαž”αŸ‹αž‡αžΆαž„αž§αž”αž€αžšαžŽαŸαž‘αžΈαž˜αž½αž™ αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αžαž·αžαž·αž‡αž“αž˜αž€αžšαž€αž™αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‘αžΎαž„αžœαž·αž‰αž‚αžΊαž‡αžΆαžšαžΏαž„αž’αŸ†αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αžΆαžαŸ‹αŸ” αž‚αžΆαžαŸ‹αž˜αžΆαž“αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αŸ” αž αžΎαž™αž–αž½αž€αž‚αŸαž‡αž½αž”αž”αŸ’αžšαž‘αŸ‡αž”αž‰αŸ’αž αžΆαžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚ NUMA αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž™αžΎαž„αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αž·αž‘αžœαžΆαžαžΆαž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αžšαžΆαžαžαŸ’αž”αžΆαžαžαž·αž…αž‡αžΆαž„αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž‘αžΎαž„αžœαž·αž‰ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ’αžšαžΌαžœαž”αŸ’αžšαž™αŸαžαŸ’αž“αžŠαžΎαž˜αŸ’αž”αžΈαž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αžαžΆαžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž·αž‘αŸ” αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž”αž„αŸ’αž αžΆαž‰ αžœαžΆαž‡αžΆαž€αžΆαžšαž›αŸ’αž’αžŠαŸ‚αž›αž™αžΎαž„αž”αž·αž‘ NUMA αž“αŸ…αž›αžΎαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš PostgreSQL មេ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‘αžΆαž›αŸ‹αžαŸ‚αžŸαŸ„αŸ‡αžŠαŸ‚αž›αžœαžΆαž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž™αžΎαž„β€‹αžαŸ’αžšαžΌαžœβ€‹αž–αž·αž“αž·αžαŸ’αž™β€‹αž˜αžΎαž›β€‹αžαžΆβ€‹αž“αžΆαž„β€‹αž–αž·αžβ€‹αž‡αžΆβ€‹αž”αžΆαž“β€‹αž”αž·αž‘αŸ”

αž˜αžΆαž“αž€αžΆαžšαž”αŸ’αžšαž€αžΆαžŸαžŠαŸαž›αŸ’αž’αžŠαŸ„αž™ Robert Haas αŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž’αŸ’αž“αž€αž…αžΆαžαŸ‹αž…αŸ‚αž„ PostgreSQL αž˜αž½αž™αŸ” αž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž“αŸƒ giblets αž€αž˜αŸ’αžšαž·αžαž‘αžΆαž”αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ” αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž’αŸ’αžœαžΎαžαžΆαž˜αžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž”αž„αŸ’αž αŸ„αŸ‡αž“αŸαŸ‡ αž–αž½αž€αž‚αŸαž–αž·αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαžšαžΏαž„αžšαŸ‰αžΆαžœαž…αž˜αŸ’αžšαž»αŸ‡αž–αžŽαŸŒαž‡αžΆαž…αŸ’αžšαžΎαž“αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž› NUMA αž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž‡αžΈαžœαž·αžαž›αŸ†αž”αžΆαž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αž“αž»αžŸαŸ’αžŸαŸ” αž˜αžΎαž› αžŸαž·αž€αŸ’αžŸαžΆαž”αž‰αŸ’αž‡αžΈαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αŸƒαž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαž”αžŸαŸ‹αž™αžΎαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“αž›αŸ’αž’αŸ” αž€αžΆαžšβ€‹αž€αŸ†αžŽαžαŸ‹β€‹αž‘αžΆαŸ†αž„β€‹αž“αŸαŸ‡β€‹αžαŸ’αžšαžΌαžœβ€‹αžŸαžšαžŸαŸαžšβ€‹αž…αž»αŸ‡ αž αžΎαž™β€‹αž–αž·αž“αž·αžαŸ’αž™β€‹αž˜αžΎαž› αž–αŸ’αžšαŸ„αŸ‡β€‹αž”αžΎβ€‹αž˜αž·αž“β€‹αžŠαžΌαž…αŸ’αž“αŸαŸ‡β€‹αž‘αŸ αžœαžΆβ€‹αž“αžΉαž„β€‹αž˜αž·αž“β€‹αž›αŸ’αž’β€‹αžαŸ’αž›αžΆαŸ†αž„β€‹αž‘αŸαŸ”

αžŸαžΌαž˜αž…αŸ†αžŽαžΆαŸ†αžαžΆαž“αŸαŸ‡αž’αž“αž»αžœαžαŸ’αžαž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž“αž·αž™αžΆαž™αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆ αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαž˜αžΌαž›αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž˜αŸ - αž‘αžΆαžŸαž€αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αžαŸ‹αž±αž“αž…αŸ†αž–αŸ„αŸ‡αž€αŸ†αž αž»αžŸαŸ” αž€αž»αŸ†αž—αŸ’αž›αŸαž…αž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž“αŸ…αž›αžΎαž‘αžΆαžŸαž€αžš αž–αŸ’αžšαŸ„αŸ‡αžαŸ’αž„αŸƒαžŽαžΆαž˜αž½αž™αž’αŸ’αž“αž€αž“αžΉαž„αž‡αž½αž”αž§αž”αž‘αŸ’αž‘αžœαž αŸαžαž» αž αžΎαž™αž’αŸ’αž“αž€αž“αžΉαž„αž”αŸ’αžαžΌαžšαž‘αŸ…αž‡αžΆαž‘αžΆαžŸαž€αžš αž αžΎαž™αžœαžΆαž“αžΉαž„αž€αŸ’αž›αžΆαž™αž‡αžΆαž˜αŸ’αž…αžΆαžŸαŸ‹αŸ”

αž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž’αžΆαžŸαž“αŸ’αž“ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αŸ’αžœαžΈαŸ—αž’αžΆαž€αŸ’αžšαž€αŸ‹αžαŸ’αž›αžΆαŸ†αž„ αž‘αžΌαžšαžŸαž–αŸ’αž‘αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžšαŸ„αž‘αŸαž₯αžαžˆαž”αŸ‹αžˆαžš αž αžΎαž™αž…αŸ…αž αŸ’αžœαžΆαž™αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžšαžαŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™αžŠαŸ†αž”αž„αž’αŸ† αž“αŸ„αŸ‡αž’αŸ’αž“αž€αž“αžΉαž„αž‚αŸ’αž˜αžΆαž“αž–αŸαž›αž‚αž·αžαž’αŸ†αž–αžΈαž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž“αŸ„αŸ‡αž‘αŸαŸ” αž αžΎαž™αž›αž‘αŸ’αž’αž•αž›αž’αžΆαž…αž‡αžΆαž˜αž αž“αŸ’αžαžšαžΆαž™αžŽαžΆαžŸαŸ‹αŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αž…αŸ†αžŽαž»αž…αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž‚αžΊαž‘αŸ†αž–αŸαžšαž’αŸ†αŸ” αž‘αŸ†αž–αŸαžšαžŠαŸαž’αŸ†αž‚αžΊαž–αž·αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαžΆαž€αž›αŸ’αž”αž„αžŠαŸ„αž™αž‘αŸ‚αž€αž–αžΈαž‚αŸ’αž“αžΆ αž αžΎαž™αž‚αŸ’αž˜αžΆαž“αž…αŸ†αžŽαž»αž…αžŽαžΆαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαžŠαžΌαž…αŸ’αž“αŸαŸ‡αž‘αŸ αž”αžΎαž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž˜αžΆαž“αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αž€αŸαžŠαŸ„αž™αŸ” αž–αž½αž€αž‚αŸαž„αžΆαž™αžŸαŸ’αžšαž½αž› Google αŸ”

αžαžΎβ€‹αž˜αžΆαž“β€‹αž…αŸ†αžŽαž»αž…β€‹αž’αŸ’αžœαžΈ? αž’αŸ’αž“αž€αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž˜αž·αž“αžαŸ’αž›αŸƒαžαŸ’αž›αžΆαŸ†αž„αžŠαŸ‚αž›αž˜αžΆαž“ RAM αž…αŸ’αžšαžΎαž“ αž§αž‘αžΆαž αžšαžŽαŸαž›αžΎαžŸαž–αžΈ 30 GBαŸ” αž’αŸ’αž“αž€αž˜αž·αž“αž”αŸ’αžšαžΎαž‘αŸ†αž–αŸαžšαž’αŸ†αž‘αŸαŸ” αž“αŸαŸ‡αž˜αžΆαž“αž“αŸαž™αžαžΆαž’αŸ’αž“αž€αž–αž·αžαž‡αžΆαž˜αžΆαž“αž€αžΆαžšαž…αŸ†αžŽαžΆαž™αž›αžΎαžŸαž“αŸ…αž€αŸ’αž“αž»αž„αž›αž€αŸ’αžαžαžŽαŸ’αžŒαž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αŸ” αž αžΎαž™αž€αžΆαžšαž›αžΎαžŸαž“αŸαŸ‡αž‚αžΊαž“αŸ…αž†αŸ’αž„αžΆαž™αž–αžΈαž—αžΆαž–αžšαžΈαž€αžšαžΆαž™αž”αŸ†αž•αž»αžαŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆβ€‹αž’αž‰αŸ’αž…αžΉαž„? αžŠαžΌαž…αŸ’αž“αŸαŸ‡β€‹αžαžΎβ€‹αž˜αžΆαž“β€‹αž’αŸ’αžœαžΈβ€‹αž€αžΎαžβ€‹αž‘αžΎαž„? αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž‡αžΆαž”αŸ†αžŽαŸ‚αž€αžαžΌαž…αŸ—αŸ” αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŽαžΆαžŸαŸ‹ αžœαžΆαž‡αžΆαžšαž”αŸ€αž”αžŠαŸ‚αž›αžœαžΆαž”αžΆαž“αž€αžΎαžαž‘αžΎαž„αž‡αžΆαž”αŸ’αžšαžœαžαŸ’αžαž·αžŸαžΆαžŸαŸ’αžαŸ’αžšαŸ” αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αžŸαž·αž€αŸ’αžŸαžΆαž›αž˜αŸ’αž’αž·αžαž“αŸ„αŸ‡ OS αžαŸ’αžšαžΌαžœαžαŸ‚αž”αž€αž”αŸ’αžšαŸ‚αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž“αž·αž˜αŸ’αž˜αž·αžαž‘αŸ…αž‡αžΆαžšαžΌαž”αžœαž“αŸ’αžαŸ” αž αžΎαž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸαŸ‡αž˜αž·αž“αžŸαžΆαž˜αž‰αŸ’αž‰αž”αŸ†αž•αž»αžαž“αŸ„αŸ‡αž‘αŸ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚ Lookaside Buffer (TLB)αŸ”

αž αžΎαž™αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈ TLB αž‚αžΊαž‡αžΆαžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹ αž”αž‰αŸ’αž αžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž€αžΎαžαž‘αžΎαž„αž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸαŸ‡αŸ” αž‘αžΈαž˜αž½αž™ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“ RAM αž…αŸ’αžšαžΎαž“ αž αžΎαž™αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ‚αž„αž…αŸ‚αž€αž‘αŸ…αž‡αžΆαž”αŸ†αžŽαŸ‚αž€αžαžΌαž…αŸ— αž“αŸ„αŸ‡αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αž“αŸαŸ‡αž“αžΉαž„αž€αŸ’αž›αžΆαž™αž‘αŸ…αž‡αžΆαž’αŸ†αžŽαžΆαžŸαŸ‹αŸ” αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž˜αžΆαž“αž‘αŸ†αž αŸ†αž’αŸ† αž“αŸ„αŸ‡αž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αžαžΆαž˜αžšαž™αŸˆαžœαžΆαž‚αžΊαž™αžΊαžαž‡αžΆαž„αŸ” Overhead αž‚αžΊαž˜αžΆαž“αžŸαž»αžαž—αžΆαž–αž›αŸ’αž’ αž αžΎαž™αžαŸ’αž›αž½αž“αžœαžΆαžαŸ’αžšαžΌαžœαž€αžΆαžšαž‘αŸ†αž αŸ†αž•αŸ’αž‘αž»αž€ αž–αŸ„αž›αž‚αžΊ RAM αž€αŸ†αž–αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ„αž™αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ” αž–αŸαž›αž“αŸαŸ‡αŸ”

αž–αžΈαžš - αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž€αžΆαž“αŸ‹αžαŸ‚αž€αžΎαž“αž‘αžΎαž„αž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž”αŸ‚αž”αž“αŸαŸ‡ αžœαžΆαž‘αŸ†αž“αž„αž‡αžΆαžαžΆαž’αŸ’αž“αž€αž“αžΉαž„αž˜αžΆαž“αž€αžΆαžšαž”αžΆαžαŸ‹αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αŸ” αž αžΎαž™αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž“αŸƒαžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž“αŸαŸ‡αžαž™αž…αž»αŸ‡αž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸαž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž‘αŸ†αž αŸ†αžšαž”αžŸαŸ‹αžœαžΆαž€αžΎαž“αž‘αžΎαž„αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž”αžΆαž“αž˜αž€αž‡αžΆαž˜αž½αž™αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžŸαžΆαž˜αž‰αŸ’αž‰αž˜αž½αž™αŸ” αžœαžΆβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αŸ’αžšαžΎβ€‹αž€αŸ’αž“αž»αž„β€‹αž›αžΈαž“αž»αž…β€‹αž‡αžΆβ€‹αž™αžΌαžšβ€‹αž˜αž€β€‹αž αžΎαž™αŸ” αžœαžΆαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαŸ’αž›αž½αž“αž“αŸ…αž€αŸ’αž“αž»αž„ FreeBSD αž˜αž·αž“αž™αžΌαžšαž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αž‘αŸαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž™αžΎαž„αž€αŸ†αž–αž»αž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž›αžΈαž“αž»αž…αŸ” αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž‘αŸ†αž–αŸαžšαžŠαŸαž’αŸ†αŸ”

αž αžΎαž™αž“αŸ…αž‘αžΈαž“αŸαŸ‡αžœαžΆαž‚αž½αžšαžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžαžΆαž‘αŸ†αž–αŸαžšαžŠαŸαž’αŸ†αžŠαŸ‚αž›αž‡αžΆαž‚αŸ†αž“αž·αžαž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αŸ†αžšαž»αž‰αžŠαŸ„αž™αžŸαž αž‚αž˜αž“αŸαžŠαŸ‚αž›αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž› Oracle αž“αž·αž„ IBM αž–αŸ„αž›αž‚αžΊαž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž•αž›αž·αžαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‚αž·αžαž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αžαžΆαžœαžΆαž“αžΉαž„αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž•αž„αžŠαŸ‚αžšαŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αž αžΎαž™αžαžΎαž“αŸαŸ‡αž’αžΆαž…αž€αŸ’αž›αžΆαž™αž‡αžΆαž˜αž·αžαŸ’αžαž‡αžΆαž˜αž½αž™ PostgreSQL αž™αŸ‰αžΆαž„αžŠαžΌαž…αž˜αŸ’αžαŸαž…? αž‘αžΈαž˜αž½αž™ αž‘αŸ†αž–αŸαžšαž’αŸ†αŸ—αžαŸ’αžšαžΌαžœαžαŸ‚αž”αžΎαž€αž“αŸ…αž€αŸ’αž“αž»αž„αžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž…αŸ”

αž‘αžΈαž–αžΈαžš αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαžαŸ‚αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž™αŸ‰αžΆαž„αž…αŸ’αž”αžΆαžŸαŸ‹αžŠαŸ„αž™αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš sysctl - αžαžΎαž˜αžΆαž“αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αŸ” αž›αŸαžαž“αŸ…αž‘αžΈαž“αŸαŸ‡αž‚αžΊαž˜αž€αž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž…αžΆαžŸαŸ‹αž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” αž’αŸ’αž“αž€β€‹αž’αžΆαž…β€‹αž‚αžŽαž“αžΆβ€‹αžαžΆβ€‹αžαžΎβ€‹αž’αŸ’αž“αž€β€‹αž˜αžΆαž“β€‹αž”αžŽαŸ’αžŠαŸ„αŸ‡β€‹αž’αžΆαžŸαž“αŸ’αž“β€‹αžŠαŸ‚αž›β€‹αž”αžΆαž“β€‹αž…αŸ‚αž€β€‹αžšαŸ†αž›αŸ‚αž€β€‹αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“β€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž±αŸ’αž™β€‹αž‘αŸ†αž–αŸαžšβ€‹αž’αŸ†β€‹αž’αžΆαž…β€‹αžŸαž˜β€‹αž“αžΉαž„β€‹αž‘αžΈαž“αŸ„αŸ‡αŸ”

αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‘αžΆαŸ†αž„αž˜αžΌαž›αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αž§αž‘αŸ’αž‘αž·αžŸαžŠαž›αŸ‹ PostgreSQL αž“αŸ„αŸ‡αž…αŸ†αžŽαž»αž…αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸαž›αŸ’αž’αž‚αžΊαžαŸ’αžšαžΌαžœαž”αŸ‚αž„αž…αŸ‚αž€ RAM αž‘αžΆαŸ†αž„ 25% αž‘αŸ… buffers αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€ ឬ 75% αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αŸ’αžšαžΆαž€αžŠαžαžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž–αž·αžαž‡αžΆαžŸαž˜αž“αžΉαž„ 75% αž“αŸαŸ‡αŸ” αž…αŸ†αžŽαž»αž…αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΈαŸ‘αŸ” αž αžΎαž™αž–αž·αž…αžΆαžšαžŽαžΆαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“ RAM 256 GB αž“αŸ„αŸ‡αž’αŸ’αž“αž€αž“αžΉαž„αž˜αžΆαž“ 64 GB αž“αŸƒ buffers αž’αŸ†αŸ” αž‚αžŽαž“αžΆαž”αŸ’αžšαž˜αžΆαžŽαž‡αžΆαž˜αž½αž™αžšαžΉαž˜αžαŸ’αž›αŸ‡ - αžαžΎαžαž½αž›αŸαžαž“αŸαŸ‡αž‚αž½αžšαž€αŸ†αžŽαžαŸ‹αž‘αŸ…αž‡αžΆαž’αŸ’αžœαžΈαŸ”

αž˜αž»αž“αž–αŸαž›αž€αŸ†αžŽαŸ‚ 9.2 (αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž…αŸ’αžšαž‘αŸ†αž‘αŸ αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž€αŸ†αžŽαŸ‚ 8.2) αžœαžΆαž’αžΆαž…αž—αŸ’αž‡αžΆαž”αŸ‹ PostgreSQL αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‘αŸ†αž–αŸαžšαžŠαŸαž’αŸ†αžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž—αžΆαž‚αžΈαž‘αžΈαž”αžΈαŸ” αž αžΎαž™αž“αŸαŸ‡αž‚αž½αžšαžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž‡αžΆαž“αž·αž…αŸ’αž…αŸ” αžŠαŸ†αž”αžΌαž„ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαžαžΊαžŽαŸ‚αž› αžŠαžΎαž˜αŸ’αž”αžΈαž’αžΆαž…αž”αŸ‚αž„αž…αŸ‚αž€αž‘αŸ†αž–αŸαžšαžŠαŸαž’αŸ†αž”αžΆαž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ” αž αžΎαž™αž‘αžΈαž–αžΈαžšαžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž–αž½αž€αž‚αŸαž’αžΆαž…αž”αŸ’αžšαžΎαžœαžΆαž”αžΆαž“αŸ” αžœαžΆαž“αžΉαž„αž˜αž·αž“αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž”αŸ’αžšαžΎαžœαž·αž’αžΈαž“αŸ„αŸ‡αž‘αŸαŸ” αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈ PostgreSQL αž”αŸ‚αž„αž…αŸ‚αž€αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž€αŸ’αž“αž»αž„αžšαž…αž“αžΆαž”αŸαž‘αŸ’αž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’ 5 αž“αŸαŸ‡αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžŠαŸ„αž™αž”αŸ’αžšαžΎ libhugetlbfs - αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžˆαŸ’αž˜αŸ„αŸ‡αž–αŸαž‰αžšαž”αžŸαŸ‹αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„ 9.3 αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αŸ…αž–αŸαž›αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αž αžΎαž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’ 5 αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαž”αŸ‚αž„αž…αŸ‚αž€αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ„αŸ‡αž”αž„αŸ‹αž…αŸ„αž›αŸ” αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαžŸαž”αŸ’αž”αžΆαž™αž…αž·αžαŸ’αžαžαŸ’αž›αžΆαŸ†αž„αžŽαžΆαžŸαŸ‹ αž–αŸ’αžšαŸ„αŸ‡αž”αžΎαž˜αž·αž“αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž‘αŸ αž’αŸ’αž“αž€αž–αŸ’αž™αžΆαž™αžΆαž˜αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ PostgreSQL αž–αžΈαžšαž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžαŸ‚αž˜αž½αž™ αž αžΎαž™αž‚αžΆαžαŸ‹αž“αž·αž™αžΆαž™αžαžΆαžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž˜αžΆαž“αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž‘αŸαŸ” αž αžΎαž™αž‚αžΆαžαŸ‹αž“αž·αž™αžΆαž™αžαžΆ sysctl αžαŸ’αžšαžΌαžœαžαŸ‚αž€αŸ‚αžαž˜αŸ’αžšαžΌαžœαŸ” αž αžΎαž™αž˜αžΆαž“ sysctl αž”αŸ‚αž”αž“αŸαŸ‡αžŠαŸ‚αž›αž’αŸ’αž“αž€αž“αŸ…αžαŸ‚αžαŸ’αžšαžΌαžœαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰αŸ”αž›αŸ” αž‡αžΆαž‘αžΌαž‘αŸ… αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαžŸαž”αŸ’αž”αžΆαž™αž…αž·αžαŸ’αžαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† mmap αž”αžΆαž“αž”αŸ†αž”αŸ‚αž€αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αŸ†αž–αŸαžšαžŠαŸαž’αŸ†αŸ” αž’αžαž·αžαž·αž‡αž“αžšαž”αžŸαŸ‹αž™αžΎαž„αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž”αŸ’αžšαžΎ buffers αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž’αŸ†αŸ” αž αžΎαž™αž™αžΎαž„αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž’αž“αž»αžŸαžΆαžŸαž“αŸαž™αŸ‰αžΆαž„αž˜αž»αžαž˜αžΆαŸ†αž˜αž·αž“αž±αŸ’αž™αž”αŸ’αžαžΌαžšαž‘αŸ… 9.3 αž‘αŸ αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αžαž˜αŸ’αž›αŸƒαž›αžΎαžŸαž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžŽαž“αžΆαž‡αžΆαž—αžΆαž‚αžšαž™αžŠαŸαž›αŸ’αž’αŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŸαž αž‚αž˜αž“αŸαž”αžΆαž“αž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹αž…αŸ†αž–αŸ„αŸ‡αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡ αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„ 9.4 αž–αž½αž€αž‚αŸαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž“αŸαŸ‡αž‘αžΎαž„αžœαž·αž‰αž”αžΆαž“αž™αŸ‰αžΆαž„αž›αŸ’αž’αŸ” αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„ 9.4 αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž˜αž½αž™αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαŸ’αž›αž½αž“αž“αŸ…αž€αŸ’αž“αž»αž„ postgresql.conf αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αž”αžΎαž€αžŸαžΆαž€αž›αŸ’αž”αž„ αž”αžΎαž€ αž¬αž”αž·αž‘αŸ”

αžŸαžΆαž€αž›αŸ’αž”αž„αž‚αžΊαž‡αžΆαž‡αž˜αŸ’αžšαžΎαžŸαžŠαŸ‚αž›αž˜αžΆαž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž”αŸ†αž•αž»αžαŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž› PostgreSQL αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžœαžΆαž”αŸ‚αž„αž…αŸ‚αž€αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€ αžœαžΆαž–αŸ’αž™αžΆαž™αžΆαž˜αž…αžΆαž”αŸ‹αž™αž€αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž“αŸαŸ‡αž–αžΈαž‘αŸ†αž–αŸαžšαžŠαŸαž’αŸ†αŸ” αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αŸ„αŸ‡αžœαžΆαž“αžΉαž„αžœαž·αž›αžαŸ’αžšαž›αž”αŸ‹αž‘αŸ…αž‡αž˜αŸ’αžšαžΎαžŸαž’αž˜αŸ’αž˜αžαžΆαžœαž·αž‰αŸ” αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“ FreeBSD ឬ Solaris αž“αŸ„αŸ‡αž’αŸ’αž“αž€αž’αžΆαž…αžŸαžΆαž€αž›αŸ’αž”αž„αž”αžΆαž“ αžœαžΆαžαŸ‚αž„αžαŸ‚αž˜αžΆαž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž”αžΎαž€ αž“αŸ„αŸ‡αžœαžΆαž˜αž·αž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαž˜αž·αž“αž’αžΆαž…αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž–αžΈαž‘αŸ†αž–αŸαžšαž’αŸ†αŸ—αŸ” αž“αŸ…αž‘αžΈαž“αŸαŸ‡αžœαžΆαž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž’αŸ’αž“αž€αžŽαžΆαž“αž·αž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž›αŸ’αž’αž‡αžΆαž„αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž”αŸ’αžšαžŸαž·αž“β€‹αž”αžΎβ€‹αž’αŸ’αž“αž€β€‹αž”αžΆαž“β€‹αž–αŸ’αž™αžΆαž™αžΆαž˜ αžŸαžΌαž˜β€‹αž–αž·αž“αž·αžαŸ’αž™β€‹αž˜αžΎαž›β€‹αžαžΆβ€‹αž’αŸ’αž“αž€β€‹αž–αž·αžβ€‹αž‡αžΆβ€‹αž˜αžΆαž“β€‹αž’αŸ’αžœαžΈβ€‹αžŠαŸ‚αž›β€‹αž’αŸ’αž“αž€β€‹αžαŸ’αžšαžΌαžœβ€‹αž€αžΆαžšβ€‹αž‚αžΌαžŸβ€‹αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ αž–αŸ’αžšαŸ„αŸ‡β€‹αž˜αžΆαž“β€‹αž…αž“αŸ’αž›αŸ„αŸ‡β€‹αž…αŸ’αžšαžΎαž“β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž€αŸ†αž αž»αžŸαŸ” αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž˜αž»αžαž„αžΆαžšαž“αŸαŸ‡αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ‚αž›αžΎαž›αžΈαž“αž»αž…αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

αž€αŸ†αžŽαžαŸ‹αž…αŸ†αžŽαžΆαŸ†αžαžΌαž…αž˜αž½αž™αž‘αŸ€αž αž˜αž»αž“αž–αŸαž›αž™αžΎαž„αž”αž“αŸ’αžαž‘αŸ…αž˜αž»αžαž‘αŸ€αžαŸ” αž‘αŸ†αž–αŸαžšαžŠαŸαž’αŸ†αžŠαŸ‚αž›αž˜αžΆαž“αžαž˜αŸ’αž›αžΆαž—αžΆαž– αž˜αž·αž“αž‘αžΆαž“αŸ‹αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈ PostgreSQL αž“αŸ…αž‘αžΎαž™αž‘αŸαŸ” αž‚αžΆαžαŸ‹αž˜αž·αž“αž’αžΆαž…αž”αŸ’αžšαžΎαž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαž”αžΆαž“αž‘αŸαŸ” αž αžΎαž™αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‘αŸ†αž–αŸαžšαžŠαŸαž’αŸ†αžŠαŸ‚αž›αž˜αžΆαž“αžαž˜αŸ’αž›αžΆαž—αžΆαž–αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž“αŸ’αž‘αž»αž€αž€αžΆαžšαž„αžΆαžšαž”αŸ‚αž”αž“αŸαŸ‡ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž•αŸ’αž“αŸ‚αž€αž’αŸ†αž“αŸƒαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αžαŸ’αžšαžΌαžœαž€αžΆαžš αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž”αžΆαž“αž˜αž€αžαŸ‚αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‘αŸ†αž αŸ†αž’αŸ†αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† terabytes αž“αŸ„αŸ‡αžœαžΆαž’αžΆαž…αž“αžΉαž„αž…αžΌαž›αž˜αž€αž›αŸαž„αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž€αŸ†αž–αž»αž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ’αžšαž…αžΆαŸ†αžαŸ’αž„αŸƒαž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αžšαžΎαž“ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αŸ’αž“αž€αž˜αžΆαž“αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† 32, 64, 128, 256 GB αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž“αŸ„αŸ‡αž‘αŸ†αž–αŸαžšαž’αŸ†αŸ—αž’αž˜αŸ’αž˜αžαžΆαž‚αžΊ Ok αž αžΎαž™αž™αžΎαž„αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž”αž·αž‘ Transparent αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αž αžΎαž™β€‹αžšαžΏαž„β€‹αž…αž»αž„αž€αŸ’αžšαŸ„αž™β€‹αž’αŸ†αž–αžΈβ€‹αž€αžΆαžšβ€‹αž…αž„αž…αžΆαŸ†β€‹αž˜αž·αž“β€‹αž‘αžΆαž€αŸ‹αž‘αž„β€‹αž•αŸ’αž‘αžΆαž›αŸ‹β€‹αž“αžΉαž„β€‹αž•αŸ’αž›αŸ‚β€‹αžˆαžΎβ€‹αž‘αŸ αžœαžΆβ€‹αž–αž·αžαž‡αžΆβ€‹αž’αžΆαž…β€‹αž”αŸ†αž•αŸ’αž›αžΆαž‰β€‹αž‡αžΈαžœαž·αžβ€‹αž’αŸ’αž“αž€β€‹αž”αžΆαž“β€‹αŸ” αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αžΉαž„αžšαž„αž•αž›αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αžŠαŸ„αž™αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž€αŸ†αž–αž»αž„αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‡αžΆαž“αž·αž…αŸ’αž…αŸ”

αž αžΎαž™αž“αŸαŸ‡αž“αžΉαž„αž‡αžΆαž€αžΆαžšαž˜αž·αž“αžŸαž”αŸ’αž”αžΆαž™αž…αž·αžαŸ’αžαžαŸ’αž›αžΆαŸ†αž„αžŽαžΆαžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžœαž·αž’αžΈαž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” αž αžΎαž™αž”αž‰αŸ’αž αžΆαž…αž˜αŸ’αž”αž„αž‚αžΊαžαžΆ αžαžΊαžŽαŸ‚αž›αž‘αŸ†αž“αžΎαž”αž˜αžΆαž“αž₯αžšαž·αž™αžΆαž”αž‘αžαž»αžŸαž‚αŸ’αž“αžΆαž”αž“αŸ’αžαž·αž…αž–αžΈαžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž…αž…αžΆαžŸαŸ‹αŸ” αž αžΎαž™αžšαžΏαž„αž“αŸαŸ‡αž–αž·αžαž‡αžΆαž˜αž·αž“αžŸαž”αŸ’αž”αžΆαž™αž…αž·αžαŸ’αžαž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ„αŸ‡αž‡αŸ†αž αžΆαž“αž‘αŸ…αž˜αž»αž αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž™αžΎαž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž”αŸ’αžšαž—αŸαž‘αž“αŸƒαž€αžΆαžšαž„αžΆαžšαž˜αž½αž™αž…αŸ†αž“αž½αž“αž‡αžΆαž˜αž½αž™ swap αžœαžΆαž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ„αž™αž€αžΆαžšαž˜αž€αžŠαž›αŸ‹αž“αŸƒαžƒαžΆαžαž€αžš OOM αžŠαŸ„αž™αž˜αž·αž“αž‘αžΆαž“αŸ‹αž–αŸαž›αžœαŸαž›αžΆαŸ” αž αžΎαž™αžƒαžΆαžαž€αžš OOM αžŠαŸ‚αž›αž˜αž·αž“αž”αžΆαž“αž˜αž€αžŠαž›αŸ‹αž‘αžΆαž“αŸ‹αž–αŸαž› αž“αž·αž„αž‘αž˜αŸ’αž›αžΆαž€αŸ‹ PostgreSQL αž‚αžΊαž˜αž·αž“αžŸαž”αŸ’αž”αžΆαž™αž…αž·αžαŸ’αžαž‘αŸαŸ” αž’αŸ’αž“αž€αžšαžΆαž›αŸ‹αž‚αŸ’αž“αžΆαž“αžΉαž„αžŠαžΉαž„αž’αŸ†αž–αžΈαžšαžΏαž„αž“αŸαŸ‡ αž–αŸ„αž›αž‚αžΊαžšαž αžΌαžαžŠαž›αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž…αž»αž„αž€αŸ’αžšαŸ„αž™αŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αžαžΎβ€‹αž˜αžΆαž“β€‹αžšαžΏαž„β€‹αž’αŸ’αžœαžΈβ€‹αž€αžΎαžαž‘αžΎαž„? αž’αŸ’αž“αž€αž˜αžΆαž“ RAM αž…αŸ’αžšαžΎαž“αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡ αž’αŸ’αžœαžΈαŸ—αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“αž›αŸ’αž’αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž αŸαžαž»αž•αž›αž˜αž½αž™αž…αŸ†αž“αž½αž“ αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž–αŸ’αž™αž½αžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš αž αžΎαž™αžαž™αž…αž»αŸ‡αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αŸ” αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž˜αžΆαž“αž€αžΆαžšαž…αž„αž…αžΆαŸ†αž…αŸ’αžšαžΎαž“ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžšαžΏαž„αž“αŸαŸ‡αž€αžΎαžαž‘αžΎαž„αŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αž–αžΈαž˜αž»αž“ αž™αžΎαž„αž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αž±αŸ’αž™αž€αŸ†αžŽαžαŸ‹ vm.swappiness αž‘αŸ…αžŸαžΌαž“αŸ’αž™ αž–αŸ„αž›αž‚αžΊαž”αž·αž‘αž€αžΆαžš swap αŸ” αž€αžΆαž›αž–αžΈαž˜αž»αž“αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαžαžΆ 32 GB αž“αŸƒ RAM αž“αž·αž„ buffers αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž‚αžΊαž‡αžΆαž…αŸ†αž“αž½αž“αžŠαŸαž’αŸ†αŸ” αž‚αŸ„αž›β€‹αž”αŸ†αžŽαž„β€‹αžŸαŸ†αžαžΆαž“αŸ‹β€‹αž“αŸƒβ€‹αž€αžΆαžšβ€‹αžŠαŸ„αŸ‡αžŠαžΌαžšβ€‹αž‚αžΊβ€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž˜αžΆαž“β€‹αž€αž“αŸ’αž›αŸ‚αž„β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž”αŸ„αŸ‡β€‹αžŸαŸ†αž”αž€β€‹αž…αŸ„αž›β€‹αž”αŸ’αžšαžŸαž·αž“β€‹αž”αžΎβ€‹αž™αžΎαž„β€‹αž’αŸ’αž›αžΆαž€αŸ‹β€‹αž…αŸαž‰αŸ” αž αžΎαž™αžœαžΆαž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ†αž–αŸαž‰αž‡αžΆαž–αž·αžŸαŸαžŸαž‘αŸ€αžαž‘αŸαŸ” αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžαžΎαž’αŸ’αž“αž€αž“αžΉαž„αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαž‡αžΆαž˜αž½αž™αžŸαŸ†αž”αž€αž“αŸαŸ‡? αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αž·αž…αŸ’αž…αž€αžΆαžšαžŠαŸ‚αž›αžœαžΆαž˜αž·αž“αž…αŸ’αž”αžΆαžŸαŸ‹αžαžΆαž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαžαŸ’αžšαžΌαžœαž€αžΆαžšαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš αž‡αžΆαž–αž·αžŸαŸαžŸαž‘αŸ†αž αŸ†αž”αŸ‚αž”αž“αŸαŸ‡αŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαž˜αŸαž™αž‘αŸ†αž“αžΎαž”αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αž αž–αŸ„αž›αž‚αžΊαž€αŸ†αžŽαŸ‚αž‘αžΈαž”αžΈαž“αŸƒαžαžΊαžŽαŸ‚αž› αž₯αžšαž·αž™αžΆαž”αžαž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαŸ” αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ†αžŽαžαŸ‹ swap αž‘αŸ…αžŸαžΌαž“αŸ’αž™ αž–αŸ„αž›αž‚αžΊαž”αž·αž‘αžœαžΆ αž“αŸ„αŸ‡αž˜αž·αž“αž™αžΌαžšαž˜αž·αž“αž†αžΆαž”αŸ‹ αž”αžΎαž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž“αŸ…αžŸαž›αŸ‹ RAM αžαŸ’αž›αŸ‡αž€αŸαžŠαŸ„αž™ αžƒαžΆαžαž€αžš OOM αž“αžΉαž„αž˜αž€αžšαž€αž’αŸ’αž“αž€αžŠαžΎαž˜αŸ’αž”αžΈαžŸαž˜αŸ’αž›αžΆαž”αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ‚αž›αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αžαŸ’αž›αžΆαŸ†αž„αž”αŸ†αž•αž»αžαŸ” αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž‚αžΆαžαŸ‹αž“αžΉαž„αž–αž·αž…αžΆαžšαžŽαžΆαžαžΆ αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αž“αŸ’αž‘αž»αž€αž€αžΆαžšαž„αžΆαžšαž”αŸ‚αž”αž“αŸαŸ‡ αž™αžΎαž„αž“αŸ…αž˜αžΆαž“αžŸαž›αŸ‹αž”αž“αŸ’αžαž·αž…αž”αž“αŸ’αžαž½αž… αž αžΎαž™αž™αžΎαž„αž“αžΉαž„αž›αŸ„αžαž…αŸαž‰ αž–αŸ„αž›αž‚αžΊαž˜αž·αž“αž˜αŸ‚αž“αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž˜αŸ’αž›αžΆαž€αŸ‹αž€αŸ†αž αž»αžŸαž›αžΎαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž˜αž·αž“αžŸαžΌαžœαžŸαŸ†αžαžΆαž“αŸ‹αŸ” αž’αŸ’αž“αž€αžŠαŸ‚αž›αž˜αž·αž“αžŸαžΌαžœαžŸαŸ†αžαžΆαž“αŸ‹αž“αŸαŸ‡αž“αžΉαž„αž€αŸ’αž›αžΆαž™αž‡αžΆαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ‚αž›αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αžαŸ’αž›αžΆαŸ†αž„αž“αŸƒαž€αžΆαžšαž…αž„αž…αžΆαŸ†αžšαž½αž˜ αž–αŸ„αž›αž‚αžΊαž˜αŸαž”αŸ’αžšαŸƒαžŸαžŽαžΈαž™αŸαŸ” αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡αžœαžΆαž“αžΉαž„αž›αŸ’αž’αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αžαžΆαžšαž‘αžΎαž„αžœαž·αž‰αž‘αŸαŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž₯αž‘αžΌαžœαž“αŸαŸ‡ αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αžαžΆαž˜αžαŸ’αž‰αž»αŸ†αž…αžΆαŸ† αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž‚αžΊαž“αŸ…αž€αž“αŸ’αž›αŸ‚αž„αžŽαžΆαž˜αž½αž™αž“αŸ…αž‡αž»αŸ†αžœαž·αž‰ 6 αž–αŸ„αž›αž‚αžΊαž“αŸ…αžαŸ’αžšαž„αŸ‹αž…αŸ†αžŽαž»αž…αžŽαžΆαžŠαŸ‚αž›αž’αŸ’αž“αž€αž‚αž½αžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αŸ’αžšαžΎ swap αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž…αŸ†αž“αž½αž“αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž“αŸ…αžŸαž›αŸ‹αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡ αž™αžΎαž„αžŸαžΌαž˜αžŽαŸ‚αž“αžΆαŸ†αž±αŸ’αž™αž€αŸ†αžŽαžαŸ‹ vm.swappiness = 1 αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αžœαžΆαž”αž·αž‘αžœαžΆ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž•αŸ’αžαž›αŸ‹αž•αž›αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžŠαžΌαž…αž‘αŸ…αž“αžΉαž„ OOM-killer αžŠαŸ‚αž›αž”αžΆαž“αž˜αž€αžŠαž›αŸ‹αžŠαŸ„αž™αž˜αž·αž“αž”αžΆαž“αžšαŸ†αž–αžΉαž„αž‘αž»αž€ αž“αž·αž„αžŸαž˜αŸ’αž›αžΆαž”αŸ‹αž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αž˜αžΆαž“β€‹αž’αŸ’αžœαžΈβ€‹αž”αž“αŸ’αž‘αžΆαž”αŸ‹? αž“αŸ…αž–αŸαž›αž™αžΎαž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž αžΎαž™αž”αžŽαŸ’αžαžΎαžšαž†αŸ’αž–αŸ„αŸ‡αž‘αŸ…αžšαž€αžαžΆαžŸ αž˜αž“αž»αžŸαŸ’αžŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž…αžΆαž”αŸ‹αž€αŸ’αž”αžΆαž›αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ” αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαžαžΆαžŸαž™αžΊαžαž αžΎαž™αž€αžΆαžšαž…αž„αž…αžΆαŸ†αž›αžΏαž“αž‚αžΊαžŸαŸ’αž‚αžΆαž›αŸ‹αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαžαžΆαŸ†αž„αž–αžΈαž€αž»αž˜αžΆαžšαž—αžΆαž–αŸ” αž αžΎαž™αž’αŸ’αž“αž€αžšαžΆαž›αŸ‹αž‚αŸ’αž“αžΆαžŠαžΉαž„αžαžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αžΉαž„αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαžΆαžŸαŸ”

αž”αž‰αŸ’αž αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš PostgreSQL αž…αž˜αŸ’αž”αž„αžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž…αŸ†αžŽαž»αž…αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž˜αž·αž“αž€αžΎαžαž‘αžΎαž„αž‘αŸαž–αŸ’αžšαŸ„αŸ‡αžαžΆαžŸαž™αžΊαžαŸ” αž“αŸαŸ‡αž‘αŸ†αž“αž„αž‡αžΆαžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αž“αž·αž„αž€αž˜αŸ’αžšαž·αžαž”αž‰αŸ’αž‡αžΌαž“αžαžΆαžŸαž˜αž·αž“αž˜αžΆαž“αžαž»αž›αŸ’αž™αž—αžΆαž–αŸ” αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž–αž½αž€αž‚αŸαž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž˜αž·αž“αž˜αžΆαž“αžαž»αž›αŸ’αž™αž—αžΆαž–αž“αŸ…αž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαž‘αŸαŸ” PostgreSQL αž˜αž·αž“β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž€αŸ†αžŽαžαŸ‹β€‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ OS αž˜αž·αž“β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž€αŸ†αžŽαžαŸ‹β€‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Hardware αž˜αž·αž“β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž€αŸ†αžŽαžαŸ‹β€‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž αžΎαž™ Hardware αž˜αž·αž“β€‹αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ” αž αžΎαž™αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αž˜αž·αž“αž€αžΎαžαž‘αžΎαž„ αž›αž»αŸ‡αžαŸ’αžšαžΆαžαŸ‚αž’αŸ’αžœαžΈαŸ—αž€αžΎαžαž‘αžΎαž„αžŠαžΌαž…αžŠαŸ‚αž›αžœαžΆαž‚αž½αžšαžαŸ‚ αž–αŸ„αž›αž‚αžΊαž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαž•αŸ’αž‘αž»αž€ αž¬αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ αž“αž·αž„αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž™αŸ‰αžΆαž„αž›αŸ’αž’αŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αžαžΎβ€‹αžœαžΆβ€‹αž‡αžΆβ€‹αž’αŸ’αžœαžΈ αž αžΎαž™β€‹αž˜αžΆαž“β€‹αžšαžΌαž”αžšαžΆαž„β€‹αž™αŸ‰αžΆαž„β€‹αžŽαžΆ? αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαž˜αž“αž»αžŸαŸ’αžŸαžŠαŸ‚αž›αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™ PostgreSQL αž”αžΆαž“αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αž…αŸ’αžšαžΎαž“αž‡αžΆαž„αž˜αŸ’αžαž„αŸ” αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž–αž“αŸ’αž™αž›αŸ‹αŸ” αžŠαžΌαž…αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž“αž·αž™αžΆαž™ PostgreSQL αž‡αžΆαž‘αŸ€αž„αž‘αžΆαžαŸ‹αž’αŸ’αžœαžΎαž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ„αŸ‡αž…αŸ„αž›αž‘αŸ†αž–αŸαžšαž€αžαŸ’αžœαž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž‘αŸ…αžαžΆαžŸαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž˜αžΆαž“αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž…αŸ’αžšαžΎαž“ αž“αŸ„αŸ‡αž…αŸ†αžŽαž»αž…αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž˜αžΆαž“αž•αž›αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžαŸ’αž›αžΆαŸ†αž„αž›αžΎαžαžΆαžŸ αž–αŸ’αžšαŸ„αŸ‡αžœαžΆαž’αŸ’αžœαžΎαž±αŸ’αž™αž‘αŸ†αž–αŸαžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž”αž·αž‘αžŠαŸ„αž™ fsync αŸ” αžœαžΆαž˜αž€αžŠαž›αŸ‹αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αžαžΊαžŽαŸ‚αž› αž αžΎαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž‘αŸ…αžαžΆαžŸαžŠαŸ„αž™αž”αŸ’αžšαžΎ fsync αŸ” αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž”αžšαž·αž˜αžΆαžŽαž“αŸƒαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αž“αŸαŸ‡αž˜αžΆαž“αž‘αŸ†αž αŸ†αž’αŸ† αž“αŸ„αŸ‡αž™αžΎαž„αž’αžΆαž…αžŸαž„αŸ’αž€αŸαžαžƒαžΎαž‰αž“αžΌαžœαž₯αž‘αŸ’αž’αž·αž–αž›αž˜αž·αž“αž›αŸ’αž’αž˜αž½αž™ αž–αŸ„αž›αž‚αžΊαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŒαžΈαžŸαž™αŸ‰αžΆαž„αž…αŸ’αžšαžΎαž“αŸ”

αž“αŸ…αž‘αžΈαž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž˜αžΆαž“αžšαžΌαž”αž—αžΆαž–αž–αžΈαžšαŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž–αž“αŸ’αž™αž›αŸ‹αžαžΆαžœαžΆαž‡αžΆαž’αŸ’αžœαžΈαŸ” αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αŸ’αžšαžΆαž αŸ’αžœαžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž‚αŸ’αž“αžΆαž“αžΉαž„αž–αŸαž›αžœαŸαž›αžΆαŸ” αž€αŸ’αžšαžΆαž αŸ’αžœαž‘αžΈαž˜αž½αž™αž‚αžΊαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαžΆαžŸαŸ” αž“αŸ…αž‘αžΈαž“αŸαŸ‡αžœαžΆαžˆαžΆαž“αžŠαž›αŸ‹αž‡αž·αž 90% αž“αŸ…αž–αŸαž›αž“αŸαŸ‡αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž€αžΆαžšαž”αžšαžΆαž‡αŸαž™αž“αŸƒαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‡αžΆαž˜αž½αž™αžαžΆαžŸαžšαžΆαž„αž€αžΆαž™ αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ RAID αž“αŸ… 90% αž“αŸ„αŸ‡αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžŠαŸ†αžŽαžΉαž„αž’αžΆαž€αŸ’αžšαž€αŸ‹αŸ” αž“αŸαŸ‡αž˜αžΆαž“αž“αŸαž™αžαžΆαž”αž“αŸ’αžαž·αž…αž‘αŸ€αžαžœαžΆαž“αžΉαž„αžˆαžΆαž“αžŠαž›αŸ‹ 100 αž αžΎαž™ I/O αž“αžΉαž„αžˆαž”αŸ‹αŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž’αžΆαžšαŸαžŒαžΈαžŸ αž“αŸ„αŸ‡αžœαžΆαž‡αžΆαžšαžΏαž„αžαž»αžŸαž‚αŸ’αž“αžΆαž”αž“αŸ’αžαž·αž…αŸ” αžœαžΆβ€‹αž’αžΆαžŸαŸ’αžšαŸαž™β€‹αž›αžΎβ€‹αžšαž”αŸ€αž”β€‹αžŠαŸ‚αž›β€‹αžœαžΆβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž€αŸ†αžŽαžαŸ‹β€‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’β€‹αž”αŸ’αžšαž—αŸαž‘β€‹αž“αŸƒβ€‹αž’αžΆαžšαŸαŸ”αž›αŸ”

αž αžΎαž™αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆ αž€αŸ’αžšαžΆαž αŸ’αžœαž–αžΈαž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž€αŸ’αžšαŸ„αž™αž αŸ’αž‚αŸ’αžšαŸαžŸαžαžΆαž„αž€αŸ’αž“αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸ…αž‘αžΈαž“αŸαŸ‡ αžŠαŸ‚αž›αž”αŸ’αžšαžΆαž”αŸ‹αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž…αŸ†αžŽαž»αž…αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αžΎαžαž‘αžΎαž„αŸ” αž αžΎαž™β€‹αž–αžŽαŸŒβ€‹αž”αŸƒαžαž„β€‹αž“αŸ…β€‹αž‘αžΈαž“αŸαŸ‡β€‹αž”αž„αŸ’αž αžΆαž‰β€‹αž–αžΈβ€‹αž…αŸ†αž“αž½αž“β€‹αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡β€‹αž’αžΆαžŸαž“αŸ’αž“ αž‘αŸ†αž–αŸαžšβ€‹αž€αžαŸ’αžœαž€αŸ‹β€‹αž‘αžΆαŸ†αž„β€‹αž“αŸαŸ‡β€‹αž“αŸ…β€‹αž–αŸαž›β€‹αž“αŸ„αŸ‡β€‹αž”αžΆαž“β€‹αž˜αž€β€‹αžŠαž›αŸ‹β€‹αž…αŸ†αžŽαž»αž…β€‹αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™β€‹αž“αŸαŸ‡β€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž’αŸ’αžœαžΎβ€‹αžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αŸ” αž αžΎαž™αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžšαžΏαž„αžŸαŸ†αžαžΆαž“αŸ‹αžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžŠαžΉαž„αž“αŸ…αž‘αžΈαž“αŸαŸ‡αŸ” αž™αžΎαž„αžƒαžΎαž‰αžαžΆαž™αžΎαž„αž˜αžΆαž“αž‘αŸ†αž–αŸαžšαž‡αžΆαž…αŸ’αžšαžΎαž“αž“αŸ…αž‘αžΈαž“αŸαŸ‡ αž αžΎαž™αž“αŸ…αž…αŸ†αžŽαž»αž…αžαŸ’αž›αŸ‡αž™αžΎαž„αž”αž»αž€αž€αŸ’αžαžΆαžš αž–αŸ„αž›αž‚αžΊαž™αžΎαž„αžŸαžšαžŸαŸαžš αž“αž·αž„αžŸαžšαžŸαŸαžšαž“αŸ…αž‘αžΈαž“αŸαŸ‡ αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαžΆαžŸαž‚αžΊαž…αŸ’αž”αžΆαžŸαŸ‹αžŽαžΆαžŸαŸ‹αžšαžœαž›αŸ‹αžŽαžΆαžŸαŸ‹αŸ” αž αžΎαž™αž”αŸ‰αž»αžŸαŸ’αžαž·αŸαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžšαž”αžŸαŸ‹αž™αžΎαž„αž˜αžΆαž“αž₯αž‘αŸ’αž’αž·αž–αž›αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αž‘αŸ…αž›αžΎαžαžΆαžŸαŸ” αžαžΆαž˜αž§αžαŸ’αžŠαž˜αž‚αžαž· αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž‚αž½αžšαžαŸ‚αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž“αŸαŸ‡ ឧ. αž™αžΎαž„αž˜αž·αž“αžŸαžΌαžœαž”αžΆαž“αžαžαž“αŸ…αž‘αžΈαž“αŸαŸ‡αž‘αŸαŸ” αž αžΎαž™β€‹αž™αžΎαž„β€‹αž’αžΆαž…β€‹αž‡αž½αžŸαž‡αž»αž›β€‹αžœαžΆβ€‹αž‡αžΆαž˜αž½αž™β€‹αž“αžΉαž„β€‹αž€αžΆαžšβ€‹αž€αŸ†αžŽαžαŸ‹β€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž±αŸ’αž™β€‹αžœαžΆβ€‹αž”αž“αŸ’αžβ€‹αžŠαžΌαž…β€‹αž“αŸαŸ‡β€‹αŸ” αž“αŸ„αŸ‡αž‚αžΊαž€αžΆαžšαž€αŸ‚αž…αŸ’αž“αŸƒαž‘αžΎαž„αžœαž·αž‰αž‚αžΊαžαžΌαž… αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αž“αŸ’αž›αŸ‚αž„αžŽαžΆαž˜αž½αž™αž™αžΎαž„αž€αŸ†αž–αž»αž„αžŸαžšαžŸαŸαžšαž’αŸ’αžœαžΈαž˜αž½αž™αž“αŸ…αž‘αžΈαž“αŸαŸ‡αŸ”

αžαžΎαžαŸ’αžšαžΌαžœαž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ†αž“αŸ‡αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡? αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αžΆαž“αž”αž‰αŸ’αžˆαž”αŸ‹ IO αž“αŸ…αž€αŸ’αžšαŸ„αž˜αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αŸαŸ‡αž˜αžΆαž“αž“αŸαž™αžαžΆαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž˜αž€αž”αŸ†αž–αŸαž‰αžŸαŸ†αžŽαžΎαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž“αžΉαž„αžšαž„αŸ‹αž…αžΆαŸ†αŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αž–αžΈαž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž“αŸƒαž›αžΈαž“αž»αž… αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αžΆαž“αž™αž€αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αž›αŸ’αž’ αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžœαžΆαž±αŸ’αž™αž”αžΆαž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ PostgreSQL αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžœαžΆαž’αŸ’αžœαžΎαž±αŸ’αž™αž…αŸ†αžŽαž»αž…αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž˜αž·αž“αžŸαžΌαžœαž‰αžΉαž€αž‰αžΆαž”αŸ‹ αžšαžΆαž›αžŠαžΆαž›αž–αž½αž€αžœαžΆαžαžΆαž˜αž–αŸαž›αžœαŸαž›αžΆαžšαžœαžΆαž„αž‚αŸ’αž“αžΆαž‘αŸ…αžœαž·αž‰αž‘αŸ…αž˜αž€ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αž“αž€αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš Debian αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αž›αžΈαž“αž»αž…αž—αžΆαž‚αž…αŸ’αžšαžΎαž“ αž“αŸαŸ‡αž‡αžΆαžšαžΌαž”αž—αžΆαž–αŸ– vm.dirty_ratio=20, vm.dirty_background_ratio=10αŸ”

αžαžΎβ€‹αžœαžΆβ€‹αž˜αžΆαž“αž“αŸαž™β€‹αž™αŸ‰αžΆαž„β€‹αžŠαžΌαž…αž˜αŸ’αžαŸαž…? αž”αž·αžŸαžΆαž…αž‡αž‰αŸ’αž‡αž€αŸ‹αžˆαžΆαž˜αž˜αž½αž™αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαŸ’αž›αž½αž“αž–αžΈαžαžΊαžŽαŸ‚αž› 2.6 αŸ” Pdglush αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž’αŸ’αž“αž€αžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αž”αŸ’αžšαžΎ αžŠαŸ‚αž›αž…αžΌαž›αžšαž½αž˜αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αŸ„αž›αž•αŸ’αž‘αŸƒαžαžΆαž„αž€αŸ’αžšαŸ„αž™αž“αŸƒαž‘αŸ†αž–αŸαžšαž€αžαŸ’αžœαž€αŸ‹αž…αŸαž‰αž–αžΈαžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αžαžΊαžŽαŸ‚αž› αž αžΎαž™αž”αŸ„αŸ‡αž…αŸ„αž›αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αžšαžΌαžœαž”αŸ„αŸ‡αž”αž„αŸ‹αž‘αŸ†αž–αŸαžšαžŠαŸ‚αž›αž€αžαŸ’αžœαž€αŸ‹ αž˜αž·αž“αžαžΆαž˜αžΆαž“αžšαžΏαž„αž’αŸ’αžœαžΈαž“αŸ„αŸ‡αž‘αŸ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž€αžΆαžšαž”αŸ„αŸ‡αž…αŸ„αž›αž‘αŸ†αž–αŸαžšαžαžΆαž„αž€αŸ’αžšαŸ„αž™αž˜αž·αž“αž’αžΆαž…αž‡αž½αž™αž”αžΆαž“αž‘αŸαŸ”

αžαžΎαž•αŸ’αž‘αŸƒαžαžΆαž„αž€αŸ’αžšαŸ„αž™αž˜αž€αžŠαž›αŸ‹αž“αŸ…αž–αŸαž›αžŽαžΆ? αž“αŸ…αž–αŸαž›αžŠαŸ‚αž› 10% αž“αŸƒ RAM αžŸαžšαž»αž”αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžΆαž“αŸ‹αž€αžΆαž”αŸ‹αžŠαŸ„αž™αž‘αŸ†αž–αŸαžšαž€αžαŸ’αžœαž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αžαžΊαžŽαŸ‚αž› αž˜αž»αžαž„αžΆαžšαž”αž·αž‘αž–αž·αžŸαŸαžŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž αŸ…αž“αŸ…αž•αŸ’αž‘αŸƒαžαžΆαž„αž€αŸ’αžšαŸ„αž™αŸ” αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž•αŸ’αž‘αŸƒαžαžΆαž„αž€αŸ’αžšαŸ„αž™? αž‡αžΆαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš αžœαžΆαžαŸ’αžšαžΌαžœαž‚αž·αžαž‚αžΌαžšαž–αžΈαž…αŸ†αž“αž½αž“αž‘αŸ†αž–αŸαžšαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαžŸαžšαžŸαŸαžšαž…αŸαž‰αŸ” αž αžΎαž™αž§αž”αž˜αžΆαžαžΆαž‚αžΆαžαŸ‹αžŸαžšαžŸαŸαžšαž…αŸαž‰αž–αžΈαž‘αŸ†αž–αŸαžš N αŸ” αž αžΎαž™αž˜αž½αž™αžŸαž“αŸ’αž‘αž»αŸ‡αžšαžΏαž„αž“αŸαŸ‡αž€αŸαžŠαŸαž€αž›αž€αŸ‹αŸ” αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž“αžΆαž„αž˜αž€αž˜αŸ’αžαž„αž‘αŸ€αžαž αžΎαž™αž…αž˜αŸ’αž›αž„αž‘αŸ†αž–αŸαžšαž˜αž½αž™αž…αŸ†αž“αž½αž“αž‘αŸ€αžαŸ”

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžšαžΏαž„αžŠαŸαžŸαžΆαž˜αž‰αŸ’αž‰αž”αŸ†αž•αž»αžαŸ” αž”αž‰αŸ’αž αžΆαž“αŸ…αž‘αžΈαž“αŸαŸ‡αž‚αžΊαžŠαžΌαž…αž‡αžΆαž’αžΆαž„αž αŸ‚αž›αž‘αžΉαž€ αž–αŸαž›αžŠαŸ‚αž›αžœαžΆαž…αžΆαž€αŸ‹αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž”αŸ†αž–αž„αŸ‹αž˜αž½αž™ αžœαžΆαž αžΌαžšαž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž˜αž½αž™αž‘αŸ€αžαŸ” αž”αŸ‰αž»αžŸαŸ’αžαž·αŸαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžšαž”αžŸαŸ‹αž™αžΎαž„αž”αžΆαž“αž˜αž€αžŠαž›αŸ‹ αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαž•αŸ’αž‰αžΎαž‘αŸ†αž–αŸαžšαž€αžαŸ’αžœαž€αŸ‹αž–αžΈαžšαž”αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ„αŸ‡αž…αŸ„αž› αž“αŸ„αŸ‡αž”αž“αŸ’αžαž·αž…αž˜αŸ’αžαž„αŸ— αž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž™αŸ‰αžΆαž„αžŸαŸ’αž’αžΆαžαž–αžΈαžαžΊαžŽαŸ‚αž›αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“ pgflush αŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‘αŸ†αž–αŸαžšαž€αžαŸ’αžœαž€αŸ‹αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž“αŸ…αžαŸ‚αž”αž“αŸ’αžαž€αž€αž€αž»αž‰ αžœαžΆαž“αžΉαž„αž€αž€αž€αž»αž‰αžšαž αžΌαžαžŠαž›αŸ‹ 20% αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αžΆαž‘αž·αž—αžΆαž– OS αž‚αžΊαžαŸ’αžšαžΌαžœαžŸαžšαžŸαŸαžšαž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‘αŸ…αžαžΆαžŸ αž–αŸ’αžšαŸ„αŸ‡αžαžΆαž˜αž–αž›αž“αžΉαž„αž”αžšαžΆαž‡αŸαž™ αž αžΎαž™αž’αŸ’αžœαžΈαŸ—αž“αžΉαž„αž’αžΆαž€αŸ’αžšαž€αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž™αžΎαž„αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž™αžΎαž„αž“αžΉαž„αž”αžΆαžαŸ‹αž”αž„αŸ‹αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸαŸ‡αŸ”

αžαžΎαž›αŸ’αž”αž·αž…αž’αŸ’αžœαžΈ? αž›αŸ’αž”αž·αž…αž‚αžΊαžαžΆαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž·αž—αž–αžŸαž˜αŸαž™αž‘αŸ†αž“αžΎαž”αž‚αžΊ 20 αž“αž·αž„ 10% αž“αŸƒ RAM αžŸαžšαž»αž”αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž–αž½αž€αž‚αŸαž–αž·αžαž‡αžΆαž’αžŸαŸ’αž…αžΆαžšαŸ’αž™αžŽαžΆαžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž›αž€αŸ’αžαžαžŽαŸ’αžŒαž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŒαžΈαžŸαžŽαžΆαž˜αž½αž™αžŠαŸ‚αž›αž’αŸ’αž“αž€αž˜αžΆαž“αŸ”

αžŸαŸ’αžšαž˜αŸƒαžαžΆαž’αŸ’αž“αž€αž˜αžΆαž“ RAM 128 GB αŸ” 12,8 GB αž˜αž€αžŠαž›αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŒαžΈαžŸαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž αžΎαž™β€‹αž˜αž·αž“β€‹αžαžΆβ€‹αžƒαŸ’αž›αžΆαŸ†αž„β€‹αžŸαž˜αŸ’αž„αžΆαžαŸ‹β€‹αžŽαžΆβ€‹αžŠαŸ‚αž›β€‹αž’αŸ’αž“αž€β€‹αž˜αžΆαž“β€‹αž“αŸ…β€‹αž‘αžΈαž“αŸ„αŸ‡ αž˜αž·αž“β€‹αžαžΆβ€‹αž’αžΆαžšαŸβ€‹αžŽαžΆβ€‹αžŠαŸ‚αž›β€‹αž’αŸ’αž“αž€β€‹αž˜αžΆαž“β€‹αž“αŸ…β€‹αž‘αžΈαž“αŸ„αŸ‡β€‹αž‘αŸ αžœαžΆβ€‹αž“αžΉαž„β€‹αž˜αž·αž“β€‹αž˜αžΆαž“β€‹αžšαž™αŸˆαž–αŸαž›β€‹αž™αžΌαžšβ€‹αž“αŸ„αŸ‡β€‹αž‘αŸβ€‹αŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž™αžΎαž„αžŸαžΌαž˜αžŽαŸ‚αž“αžΆαŸ†αž±αŸ’αž™αž’αŸ’αž“αž€αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž›αŸαžαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž—αŸ’αž›αžΆαž˜αŸ— αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαžŸαž˜αžαŸ’αžαž—αžΆαž–αžšαž”αžŸαŸ‹αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ RAID αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž—αŸ’αž›αžΆαž˜αŸ—αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž’αž“αž»αžŸαžΆαžŸαž“αŸαž“αŸ…αž‘αžΈαž“αŸαŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆαžŠαŸ‚αž›αž˜αžΆαž“αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹ 512 MB αŸ”

αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αž‘αž»αž€αžαžΆαžŸαžΆαž˜αž‰αŸ’αž‰αžŽαžΆαžŸαŸ‹αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αžŠαžΆαž€αŸ‹ vm.dirty_background αž‡αžΆαž”αŸƒαŸ” αž αžΎαž™αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž›αž»αž”αž…αŸ„αž›αž–αžΈαžšαž˜αž»αž“αŸ” αžŸαž˜αžΆαž˜αžΆαžαŸ’αžšαž‘αžΆαŸ†αž„αž–αžΈαžšαž‚αžΊαžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αž¬αž’αŸ’αž“αž€αžŠαŸ‚αž›αž˜αžΆαž“αž”αŸƒαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αžŸαž€αž˜αŸ’αž˜ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αž“αž€αžŠαŸ‚αž›αž˜αžΆαž“αž”αŸƒαž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαŸ„αž™αžŸαžΆαžšαžαŸ’αž‰αž»αŸ†αž‡αžΆαž’αŸ’αž“αž€αž”αŸ’αžšαžΉαž€αŸ’αžŸαžΆ DBA αž“αž·αž„αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž’αžαž·αžαž·αž‡αž“αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆ αžαŸ’αž‰αž»αŸ†αž–αŸ’αž™αžΆαž™αžΆαž˜αž‚αžΌαžšαž…αŸ†αž”αžΎαž„ αž αžΎαž™αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‚αž·αžαž‡αžΆαž”αŸƒ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž‚αž·αžαž‡αžΆαž”αŸƒαŸ” αž‚αŸ’αž˜αžΆαž“αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž•αŸ’αžαž›αŸ‹αž€αžΆαžšαž’αžΆαž“αžΆαžŽαžΆαž˜αž½αž™αžαžΆαž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž›αŸ’αž’αž“αžΉαž„αž˜αž·αž“αž”αž“αŸ’αžαŸ‚αž˜αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αžœαžΆαž‘αžΎαž„αžœαž·αž‰ αž αžΎαž™αžαž½αž›αŸαžαž“αžΉαž„αž“αŸ…αžŠαžŠαŸ‚αž›αŸ” αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‚αžŽαž“αžΆαž›αŸαžαž‘αžΆαŸ†αž„αž“αŸαŸ‡αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŸαž˜αž“αžΉαž„αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž’αžΆαž“αžΆαŸ”

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αž·αž“αžŸαž˜? αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŸαžšαžŸαŸαžšαžαžΆ αž€αžΆαžšαž αžΌαžšαž…αŸαž‰αžŽαžΆαž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αžˆαž”αŸ‹αž™αŸ‰αžΆαž„αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž– αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαžΆαž˜αž–αž·αžαž“αŸαŸ‡αž‚αžΊαž‡αžΆαžαž½αž›αŸαžαž“αŸƒαž€αžΆαžšαž“αž·αž™αžΆαž™αŸ” αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž’αŸ† - αžœαžΆαž˜αžΆαž“αž‘αŸ†αž–αŸαžšαž€αžαŸ’αžœαž€αŸ‹αž‡αžΆαž…αŸ’αžšαžΎαž“ αžŠαžΌαž…αŸ’αž“αŸαŸ‡ IO αžŠαŸ‚αž›αž’αžαž·αžαž·αž‡αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αžˆαž”αŸ‹αž™αŸ‰αžΆαž„αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž– αž–αŸ„αž›αž‚αžΊαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αžΆαž“αž˜αž€αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‰αžΎαžŸαŸ†αžŽαž½αžš sql αž‘αŸ…αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αžœαžΆαž€αŸ†αž–αž»αž„αžšαž„αŸ‹αž…αžΆαŸ†αŸ” αžšαžΆαž›αŸ‹αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›/αž‘αž·αž“αŸ’αž“αž•αž›αž‘αŸ…αžœαžΆαž‚αžΊαž˜αžΆαž“αž’αžΆαž‘αž·αž—αžΆαž–αž‘αžΆαž”αž”αŸ†αž•αž»αž αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžΆαž“αŸ‹αž€αžΆαž”αŸ‹αžŠαŸ„αž™αž…αŸ†αžŽαž»αž…αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αŸ” αž αžΎαž™αž“αŸ…αž–αŸαž›αžŽαžΆαžŠαŸ‚αž›αž“αžΆαž„αž“αžΉαž„αž”αž‰αŸ’αž…αž”αŸ‹αžœαžΆαž˜αž·αž“αž…αŸ’αž”αžΆαžŸαŸ‹αž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αŸ” αž αžΎαž™αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αŸ’αž“αž€αžŸαž˜αŸ’αžšαŸαž…αž”αžΆαž“αž€αžΆαžšαž αžΌαžšαž…αŸαž‰αžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αž•αŸ’αž‘αŸƒαžαžΆαž„αž€αŸ’αžšαŸ„αž™ αžœαžΆαž˜αžΆαž“αž“αŸαž™αžαžΆ IO αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžΆαž“αŸ‹αž€αžΆαž”αŸ‹αžŠαŸ„αž™αžœαžΆαŸ” αž αžΎαž™αžšαž αžΌαžαžŠαž›αŸ‹αžœαžΆαž…αž”αŸ‹αž’αŸ’αž“αž€αž“αžΉαž„αž˜αž·αž“αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”

αž˜αžΆαž“αž…αŸ†αžŽαž»αž…αžŸαŸ†αžαžΆαž“αŸ‹αž–αžΈαžšαž‘αŸ€αžαž“αŸ…αž‘αžΈαž“αŸαŸ‡ αžŠαŸ‚αž›αž αž½αžŸαž–αžΈαžœαž·αžŸαžΆαž›αž—αžΆαž–αž“αŸƒαžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž“αŸαŸ‡αŸ” αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αž½αžšαžαŸ‚αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αžΉαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ postgresql.conf αž–αŸ„αž›αž‚αžΊαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž…αŸ†αžŽαž»αž…αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αŸ” αž αžΎαž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŒαžΈαžŸαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž±αŸ’αž™αž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž“αŸ…αž›αžΎ RAID αž“αŸ„αŸ‡αžœαžΆαžαŸ’αžšαžΌαžœαžαŸ‚αž˜αžΆαž“αžαŸ’αž˜αŸ” αž˜αž“αž»αžŸαŸ’αžŸαž‘αž·αž‰ RAID αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž›αŸ’αž’αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αžαŸ’αž˜αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“ SSDs αž“αŸ…αž€αŸ’αž“αž»αž„ RAID αž“αŸ„αŸ‡αž–αž½αž€αžœαžΆαžαŸ’αžšαžΌαžœαžαŸ‚αž‡αžΆαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αžαŸ’αžšαžΌαžœαžαŸ‚αž˜αžΆαž“ capacitors αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž”αž‰αŸ’αž‡αžΈαž–αž·αž“αž·αžαŸ’αž™αž›αž˜αŸ’αž’αž·αžαŸ” αžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹αž“αŸαŸ‡αž˜αžΆαž“αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžαžΆαžŸαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„ PostgreSQL αŸ” αž˜αžΆαž“αž”αž‰αŸ’αž‡αžΈαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž±αŸ’αž™αž‡αžΈαžœαž·αžαž›αŸ†αž”αžΆαž€αžαŸ’αž›αžΆαŸ†αž„? αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž–αžΈαžšαŸ” αž–αž½αž€αž‚αŸαž‚αžΊαžαŸ’αž˜αžΈαžŽαžΆαžŸαŸ‹αŸ” αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αž–αž½αž€αžœαžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž•αŸ’αžŸαŸαž„αŸ—αŸ” αž αžΎαž™β€‹αž–αž½αž€αž‚αŸβ€‹αž’αžΆαž…β€‹αž’αŸ’αžœαžΎβ€‹αž±αŸ’αž™β€‹αž‡αžΈαžœαž·αžβ€‹αž‡αž½αž”β€‹αž€αžΆαžšβ€‹αž›αŸ†αž”αžΆαž€β€‹αž”αŸ’αžšαžŸαž·αž“αž”αžΎβ€‹αž–αž½αž€αž‚αŸβ€‹αž”αžΎαž€β€‹αž˜αž·αž“β€‹αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αž˜αžΆαž“αžšαžΏαž„αžαŸ’αž˜αžΈαž–αžΈαžšαž™αŸ‰αžΆαž„αŸ” αž–αž½αž€αž‚αŸαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαŸ’αž›αž½αž“αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ’αž“αžΌαž›αž‘αžΈαž”αžΈαžšαž½αž…αž αžΎαž™αŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆ sched_migration_cost αž‚αž·αžαž‡αžΆ nanoseconds αž“αž·αž„ sched_autogroup_enabled αžŠαŸ‚αž›αž‡αžΆαž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž˜αž½αž™αŸ”

αž αžΎαž™αžαžΎαž–αž½αž€αž‚αŸαž”αŸ†αž•αŸ’αž›αžΆαž‰αž‡αžΈαžœαž·αžαž’αŸ’αž“αž€αžŠαŸ„αž™αžšαž”αŸ€αž”αžŽαžΆ? តើ sched_migration_cost αž‡αžΆαž’αŸ’αžœαžΈ? αž“αŸ…αž›αžΎαž›αžΈαž“αž»αž… αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž–αŸαž›αž’αžΆαž…αž•αŸ’αž‘αŸαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΈαžŸαŸŠαžΈαž—αžΈαž™αžΌαž˜αž½αž™αž‘αŸ…αž˜αž½αž™αž‘αŸ€αžαŸ” αž αžΎαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ PostgreSQL αžŠαŸ‚αž›αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŸαŸ†αžŽαž½αžš αž€αžΆαžšαž’αŸ’αžœαžΎαž…αŸ†αžŽαžΆαž€αžŸαŸ’αžšαž»αž€αž‘αŸ… CPU αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž‚αžΊαž˜αž·αž“αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αŸ” αžαžΆαž˜αž‘αžŸαŸ’αžŸαž“αŸˆαž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž”αŸ’αžαžΌαžšαž”αž„αŸ’αž’αž½αž…αžšαžœαžΆαž„αž€αžΆαžšαž·αž™αžΆαž›αŸαž™αž”αžΎαž€αž…αŸ†αž  αž“αž·αž„αžŸαŸ’αžαžΆαž“αžΈαž™ αžœαžΆαž’αžΆαž…αž›αŸ’αž’ αž”αŸ‰αž»αž“αŸ’αžαŸ‚ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αŸαŸ‡αž‚αžΊαž’αžΆαž€αŸ’αžšαž€αŸ‹αžŽαžΆαžŸαŸ‹αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαžŸαž˜αž αŸαžαž»αž•αž›αž˜αž½αž™αž‚αžΊαž€αŸ†αžŽαžαŸ‹ migration_cost αž‘αŸ…αž‡αžΆαžαž˜αŸ’αž›αŸƒαž’αŸ†αž˜αž½αž™αž…αŸ†αž“αž½αž“ αž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹αž‡αžΆαž…αŸ’αžšαžΎαž“αž–αžΆαž“αŸ‹ nanosecondsαŸ”

αžαžΎαž“αŸαŸ‡αž˜αžΆαž“αž“αŸαž™αž™αŸ‰αžΆαž„αžŽαžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžšαŸ€αž”αž…αŸ†αž€αžΆαž›αžœαž·αž—αžΆαž‚? αžœαžΆαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αž‘αž»αž€αžαžΆαž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž“αŸαŸ‡αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αžαŸ‚αž€αŸ’αžαŸ…αŸ” αž“αŸ„αŸ‡αž‚αžΊαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŠαŸαž™αžΌαžšαžŠαŸ‚αž›αž”αžΆαž“αž“αž·αž„αž€αŸ†αž–αž»αž„αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαž˜αž½αž™αž’αžŸαŸ‹αžšαž™αŸˆαž–αŸαž›αž‡αžΆαž™αžΌαžš αž’αŸ’αž“αž€αžšαŸ€αž”αž…αŸ†αž€αžΆαž›αžœαž·αž—αžΆαž‚αž“αžΉαž„αž™αž›αŸ‹αž–αžΈαžšαžΏαž„αž“αŸαŸ‡αŸ” αž‚αžΆαžαŸ‹αž“αžΉαž„αžŸαž“αŸ’αž˜αžαžαžΆαžšαž αžΌαžαžŠαž›αŸ‹αž–αŸαž›αžœαŸαž›αžΆαž“αŸαŸ‡αž€αž“αŸ’αž›αž„αž•αž»αžαž‘αŸ… αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž’αŸ’αžœαžΎαž…αŸ†αžŽαžΆαž€αžŸαŸ’αžšαž»αž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸαŸ‡αž‘αŸ…αž€αž“αŸ’αž›αŸ‚αž„αžŽαžΆαž“αŸ„αŸ‡αž‘αŸαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž“αŸ…αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ„αŸ‡αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαž˜αž½αž™ αž“αŸ„αŸ‡αžœαžΆαž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž…αŸ†αžŽαžΆαž€αžŸαŸ’αžšαž»αž€αž‘αŸ…αžŽαžΆαž“αŸ„αŸ‡αž‘αŸ αžœαžΆαž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αžŸαŸ’αž„αŸ€αž˜αžŸαŸ’αž„αžΆαžαŸ‹αž“αŸ…αž›αžΎ CPU αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆαŸ” αž αžΎαž™αž›αž‘αŸ’αž’αž•αž›αž‚αžΊαž›αŸ’αž’αž₯αžαžαŸ’αž…αŸ„αŸ‡αŸ”

αž…αŸ†αžŽαž»αž…αž‘αžΈαž–αžΈαžšαž‚αžΊ autogroup αŸ” αž˜αžΆαž“αž‚αŸ†αž“αž·αžαž›αŸ’αž’αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž“αŸ’αž‘αž»αž€αž€αžΆαžšαž„αžΆαžšαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αžŠαŸ‚αž›αž˜αž·αž“αž‘αžΆαž€αŸ‹αž‘αž„αž‘αŸ…αž“αžΉαž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αŸ†αž“αžΎαž” - αž“αŸαŸ‡αž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž€αŸ’αžšαž»αž˜αžŠαŸ„αž™αžŸαŸ’αžαžΆαž“αžΈαž™αž“αž·αž˜αŸ’αž˜αž·αžαžŠαŸ‚αž›αž–αž½αž€αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž±αŸ’αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž“αŸαŸ‡αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž·αž…αŸ’αž…αž€αžΆαžšαž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αž‚αžΊαž‡αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž–αž αž»αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“ prefork αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΈαžŸαŸ’αžαžΆαž“αžΈαž™αžαŸ‚αž˜αž½αž™αŸ” αž’αŸ’αž“αž€αž˜αžΆαž“ lock writer, checkpoint αž“αž·αž„αžšαžΆαž›αŸ‹αžŸαŸ†αžŽαžΎαžšαž”αžŸαŸ‹αž’αžαž·αžαž·αž‡αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž‡αžΆαž€αŸ’αžšαž»αž˜αž‘αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž–αŸαž›αžαŸ‚αž˜αž½αž™ αž€αŸ’αž“αž»αž„αž˜αž½αž™ CPUαŸ” αž αžΎαž™αž–αž½αž€αž‚αŸαž“αžΉαž„αžšαž„αŸ‹αž…αžΆαŸ†αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αžŠαŸ„αž™αž―αž€αž―αž„αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž‚αžΆαžαŸ‹αž˜αžΆαž“αžŸαŸαžšαžΈαž—αžΆαž– αžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ’αžšαŸ€αžαž‡αŸ’αžšαŸ‚αž€αž‚αŸ’αž“αžΆαž‘αŸ…αžœαž·αž‰αž‘αŸ…αž˜αž€ αž“αž·αž„αžšαž€αŸ’αžŸαžΆαž±αŸ’αž™αž‚αžΆαžαŸ‹αž€αžΆαž“αŸ‹αž€αžΆαž”αŸ‹αž”αžΆαž“αž™αžΌαžšαŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžšαžΏαž„αžŠαŸ‚αž›αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸƒαž€αžΆαžšαž•αŸ’αž‘αž»αž€αž”αŸ‚αž”αž“αŸαŸ‡αž αžΎαž™αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžœαžΆαžαŸ’αžšαžΌαžœαž€αžΆαžšαž”αž·αž‘αŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αžŸαž αžŸαŸαžœαž·αž€αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† Alexey Lesovsky αž”αžΆαž“αž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŠαŸ„αž™αž”αŸ’αžšαžΎ pgbench αžŸαžΆαž˜αž‰αŸ’αž‰ αžŠαŸ‚αž›αž‚αžΆαžαŸ‹αž”αžΆαž“αž”αž„αŸ’αž€αžΎαž“ migration_cost αžαžΆαž˜αž›αŸ†αžŠαžΆαž”αŸ‹αž›αŸ†αžŠαŸ„αž™ αž αžΎαž™αž”αž·αž‘ autogroup αŸ” αž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαž“αŸƒαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αž˜αž·αž“αž›αŸ’αž’αž‚αžΊαžŸαŸ’αž‘αžΎαžšαžαŸ‚ 10%. αž˜αžΆαž“αž€αžΆαžšαž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž“αŸ…αž›αžΎαž”αž‰αŸ’αž‡αžΈαžŸαŸ†αž”αž»αžαŸ’αžšαžšαž½αž˜αžšαž”αžŸαŸ‹ Postgres αžŠαŸ‚αž›αž˜αž“αž»αžŸαŸ’αžŸαž•αŸ’αžαž›αŸ‹αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž‘αŸ…αž“αžΉαž„αž›αŸ’αž”αžΏαž“αžŸαŸ†αžŽαž½αžš αž₯αž‘αŸ’αž’αž·αž–αž› 50%. αž˜αžΆαž“αžšαžΏαž„αž”αŸ‚αž”αž“αŸαŸ‡αž…αŸ’αžšαžΎαž“αžŽαžΆαžŸαŸ‹αŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αž αžΎαž™αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž’αŸ†αž–αžΈαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαžŸαž“αŸ’αžŸαŸ†αžŸαŸ†αž…αŸƒαžαžΆαž˜αž–αž›αŸ” αžšαžΏαž„αž›αŸ’αž’αž‚αžΊαžαžΆαž›αžΈαž“αž»αž…αž₯αž‘αžΌαžœαž“αŸαŸ‡αž’αžΆαž…αž”αŸ’αžšαžΎαž“αŸ…αž›αžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒαž”αžΆαž“αŸ” αž αžΎαž™β€‹αžœαžΆβ€‹αž“αžΉαž„β€‹αž”αŸ’αžšαžΎβ€‹αžαŸ’αž˜β€‹αž”αžΆαž“β€‹αž™αŸ‰αžΆαž„β€‹αž›αŸ’αž’αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž—αŸ’αž›αžΆαž˜αŸ—αžœαžΆαž”αŸ’αžšαŸ‚αžαžΆαž“αŸαŸ‡αž€αŸαž’αžΆαž…αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž•αž„αžŠαŸ‚αžšαŸ”

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ…αž‘αŸ€αž αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž‡αž½αž›αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž–αžΈ hoster αž˜αž½αž™αž…αŸ†αž“αž½αž“ αž“αŸ„αŸ‡ hosters "αž›αŸ’αž’" αž˜αž·αž“αžαŸ’αžœαž›αŸ‹αžαžΆαž’αŸ’αž“αž€αž˜αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαž‡αžΆαž„αž“αŸαŸ‡αž‘αŸαŸ” αž—αžΆαžšαž€αž·αž…αŸ’αž…αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž’αžΆαž“αžΆαžαžΆαžŠαŸ‚αž€αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αŸ’αžšαž€αž”αžŠαŸ„αž™αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžαžΆαž˜αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αž–αž½αž€αž‚αŸαž’αžΆαž…αž”αžΎαž€αžšαž”αŸ€αž”αžŸαž“αŸ’αžŸαŸ†αžαžΆαž˜αž–αž›αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒαž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαžœαžαŸ’αžαž»αž“αŸαŸ‡αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸ‚αž›αž˜αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αž€αŸ’αžšαŸ„αž˜αž”αž“αŸ’αž‘αž»αž€αž’αŸ’αž„αž“αŸ‹αž“αŸ„αŸ‡αž‡αž˜αŸ’αžšαžΎαžŸαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‚αžΊ acpi_cpufreq + permormance αŸ” αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚ ondemand αž“αžΉαž„αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαŸ”

Intel_pstate αž‚αžΊαž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž‰αŸ’αž‡αžΆαžαž»αžŸαž‚αŸ’αž“αžΆαž”αž“αŸ’αžαž·αž…αž”αž“αŸ’αžαž½αž…αŸ” αž αžΎαž™αž₯αž‘αžΌαžœαž“αŸαŸ‡ αž…αŸ†αžŽαžΌαž›αž…αž·αžαŸ’αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‘αŸ…αž±αŸ’αž™αž˜αž½αž™αž“αŸαŸ‡ αž–αŸ’αžšαŸ„αŸ‡αžαžΆαž“αŸ…αž–αŸαž›αž€αŸ’αžšαŸ„αž™ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαž“αŸ‹αžαŸ‚αž”αŸ’αžšαžŸαžΎαžšαŸ”

αž αžΎαž™β€‹αžαžΆαž˜β€‹αž“αŸ„αŸ‡ αž’αž—αž·αž”αžΆαž›β€‹αž‚αŸ’αžšαžΆαž“αŸ‹β€‹αžαŸ‚β€‹αž‡αžΆβ€‹αž€αžΆαžšβ€‹αž’αž“αž»αžœαžαŸ’αžβ€‹αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” Ondemand, powersave αž“αž·αž„αž’αŸ’αžœαžΈαŸ—αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž˜αž·αž“αž˜αŸ‚αž“αž’αŸ†αž–αžΈαž’αŸ’αž“αž€αž‘αŸαŸ”

αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αž–αžΈαž€αžΆαžšαžœαž·αž—αžΆαž‚ PostgreSQL αž’αžΆαž…αžαž»αžŸαž‚αŸ’αž“αžΆαžαžΆαž˜αž›αŸ†αžŠαžΆαž”αŸ‹αž›αŸ†αžŠαŸ„αž™αž‡αžΆαž…αŸ’αžšαžΎαž“ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš powersave αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„ CPU αž“αŸ…αž€αŸ’αžšαŸ„αž˜ database αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαžΆαž˜αžšαž”αŸ€αž”αžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αž‘αžΆαž™αž‘αž»αž€αž‡αžΆαž˜αž»αž“αž”αžΆαž“αŸ”

αž’αžΆαžαž»αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αŸ” αžšαž€αž˜αžΎαž›αžŠαŸ„αž™αž”αŸ’αžšαž»αž„αž”αŸ’αžšαž™αŸαžαŸ’αž“αžŠαžΎαž˜αŸ’αž”αžΈαž˜αžΎαž›αžαžΆαžαžΎαž–αž½αž€αž‚αŸαž”αžΆαž“αž”αžΎαž€αžœαžΆαžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αŸ” αž“αŸαŸ‡αž’αžΆαž…αž‡αžΆαž”αž‰αŸ’αž αžΆαž’αŸ†αž˜αŸ‚αž“αž‘αŸ‚αž“αŸ”

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž…αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž PostgreSQL αŸ” Ilya Kosmodemyansky

αž αžΎαž™αž“αŸ…αž‘αžΈαž”αž‰αŸ’αž…αž”αŸ‹ αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αž“αž·αž™αžΆαž™αž’αžšαž‚αž»αžŽαž…αŸ†αž–αŸ„αŸ‡αž’αŸ’αž“αž€αž˜αž€αž–αžΈαž€αŸ’αžšαž»αž˜ PosgreSQL-Consulting DBA αžšαž”αžŸαŸ‹αž™αžΎαž„αž‚αžΊ Max Boguk αž“αž·αž„ Alexey Lesovsky αžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžαŸ‚αžˆαžΆαž“αž˜αž»αžαž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αž‡αžΆαžšαŸ€αž„αžšαžΆαž›αŸ‹αžαŸ’αž„αŸƒαŸ” αž αžΎαž™β€‹αž™αžΎαž„β€‹αž–αŸ’αž™αžΆαž™αžΆαž˜β€‹αž’αŸ’αžœαžΎβ€‹αž±αŸ’αž™β€‹αž’αžŸαŸ‹β€‹αž–αžΈβ€‹αžŸαž˜αžαŸ’αžαž—αžΆαž–β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž’αžαž·αžαž·αž‡αž“β€‹αžšαž”αžŸαŸ‹β€‹αž™αžΎαž„ αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž±αŸ’αž™β€‹αžœαžΆβ€‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšβ€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž–αž½αž€β€‹αž‚αŸαŸ” αžœαžΆαžŠαžΌαž…αž‡αžΆαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈαžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž’αžΆαž€αžΆαžŸαž…αžšαžŽαŸαŸ” αž’αŸ’αžœαžΈαŸ—αž“αŸ…αž‘αžΈαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαžŠαŸ„αž™αžˆαžΆαž˜αŸ” αž‚αŸ’αžšαžΆαž”αŸ‹αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž“αžΈαž˜αž½αž™αŸ—αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αžƒαžΎαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαž”αŸ’αžšαž—αŸαž‘αž“αŸƒαž”αž‰αŸ’αž αžΆαž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” αžαŸ’αž‰αž»αŸ†αžšαžΈαž€αžšαžΆαž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αžœαžΆαž‡αžΆαž˜αž½αž™αž’αŸ’αž“αž€αŸ”

αžŸαŸ†αžŽαž½αžšαŸ–

αžŸαžΌαž˜αž’αžšαž‚αž»αžŽ! αž§αž‘αžΆαž αžšαžŽαŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž…αž„αŸ‹αžŸαž“αŸ’αžŸαŸ†αž”αŸ’αžšαžΆαž€αŸ‹ αž αžΎαž™αžŠαžΆαž€αŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„αžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžαŸ‚αž˜αž½αž™ αž¬αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž’αŸ’αžœαžΎαžαžΆαž˜αž“αž·αž“αŸ’αž“αžΆαž€αžΆαžšαž‘αžΆαž“αŸ‹αžŸαž˜αŸαž™αž“αŸƒαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž˜αžΈαž€αŸ’αžšαžΌαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ αžŠαŸ‚αž› PostgreSQL αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αž€αž»αž„αžαžΊαž“αŸαžšαŸ” αžαžΎαž›αŸ’αž”αž·αž…αž’αŸ’αžœαžΈ? Sysctl αž“αžΉαž„αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžŠαž›αŸ‹αžαžΊαžŽαŸ‚αž›αž‘αžΆαŸ†αž„αž˜αžΌαž›αž‡αžΆαžŸαž€αž›αŸ” αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž”αžΆαž“αž›αžΊαžαžΆ sysctls αžαŸ’αžšαžΌαžœαž”αžΆαž“αž“αž·αž˜αŸ’αž˜αž·αžαžŠαžΌαž…αž˜αŸ’αžŠαŸαž… αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž–αž½αž€αžœαžΆαž’αŸ’αžœαžΎαž€αžΆαžšαžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž–αžΈαž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž€αž»αž„αžαžΊαž“αŸαžšαŸ” αž˜αžΆαž“αžαŸ‚ cgroup αž αžΎαž™αž˜αžΆαž“αž•αŸ’αž“αŸ‚αž€αž“αŸƒαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αŸ” αžαžΎαž’αŸ’αž“αž€αž’αžΆαž…αžšαžŸαŸ‹αž“αŸ…αž‡αžΆαž˜αž½αž™αž“αŸαŸ‡αžŠαŸ„αž™αžšαž”αŸ€αž”αžŽαžΆ? αž¬αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αž„αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš PostgreSQL αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ αž αžΎαž™αž€αŸ†αžŽαžαŸ‹αžœαžΆ?

αž™αžΎαž„αž”αžΆαž“αž†αŸ’αž›αžΎαž™αžŸαŸ†αžŽαž½αžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžαžΆαž˜αž”αžΈαžœαž·αž’αžΈαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž˜αž·αž“αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αžŠαŸ‚αž›αž’αžΆαž…αž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž”αžΆαž“αŸ”αž›αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžŸαž˜αŸ’αžšαžΆαž€ αž’αŸ’αžœαžΈαŸ—αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αŸ’αž’αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž”αž“αŸ’αž‘αž»αž€αž”αŸ‚αž”αž“αŸαŸ‡αžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž“αŸ„αŸ‡αž’αŸ’αž“αž€αž“αžΉαž„αž˜αž€αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸ‚αž€αž›αžΏαž“αž‡αžΆαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ”

αž˜αžΆαž“β€‹αž”αž‰αŸ’αž αžΆβ€‹αž’αŸ’αžœαžΈ? αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž“αŸαŸ‡αž‡αžΆαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αž αž“αŸ„αŸ‡αž‘αŸ†αž“αž„αž‡αžΆαž’αŸ’αž“αž€αž“αžΉαž„αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž‡αžΆαž…αŸ’αžšαžΎαž“ αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αžŠαŸ„αž™αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž—αžΆαž‚αž…αŸ’αžšαžΎαž“ αž—αžΆαž–αž™αžΊαžαž“αŸƒαžαžΆαžŸαž‚αžΊαž˜αž·αž“αžŸαŸŠαžΈαžŸαž„αŸ’αžœαžΆαž€αŸ‹αž‚αŸ’αž“αžΆαŸ” αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αžŒαžΈαžŸαž›αŸ’αž’αž€αŸαžŠαŸ„αž™ αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš I/O αžŠαŸ‚αž›αž”αžšαžΆαž‡αŸαž™ αžŠαŸ‚αž›αž˜αž·αž“αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžŠαž›αŸ‹αž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αž‡αžΆαž˜αž’αŸ’αž™αž˜αžŠαŸ‚αž›αž”αžΆαž“αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž–αŸαž›αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ αž¬αž“αŸ…αž–αŸαž›αžŸαžšαžŸαŸαžšαž‘αŸ… WAL αž“αŸ„αŸ‡αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αžΉαž„αžšαž„αž‘αž»αž€αŸ’αžαž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αž–αžΈαž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αŸ” αž αžΎαž™β€‹αž’αŸ’αž“αž€β€‹αž“αžΉαž„β€‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹β€‹αžƒαžΎαž‰β€‹αž…αŸ†αžŽαž»αž…β€‹αž“αŸαŸ‡β€‹αž˜αž»αž“β€‹αž–αŸαž›β€‹αž’αŸ’αž“αž€β€‹αž‡αž½αž”β€‹αž”αž‰αŸ’αž αžΆβ€‹αž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“ NGINX αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαžΌαž…αž‚αŸ’αž“αžΆ αž’αŸ’αž“αž€αž€αŸαž“αžΉαž„αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαžŠαžΌαž…αž‚αŸ’αž“αžΆαžŠαŸ‚αžšαŸ” αž‚αžΆαžαŸ‹αž“αžΉαž„αžαžŸαŸŠαžΌαžŠαžΎαž˜αŸ’αž”αžΈαž€αžΆαžšαž…αž„αž…αžΆαŸ†αžšαž½αž˜αŸ” αž αžΎαž™β€‹αž’αŸ’αž“αž€β€‹αž“αžΉαž„β€‹αž˜αž·αž“β€‹αž‘αž‘αž½αž›β€‹αž”αžΆαž“β€‹αž”αž‰αŸ’αž αžΆβ€‹αžŠαŸ‚αž›β€‹αž”αžΆαž“β€‹αž–αž·αž–αžŽαŸŒαž“αžΆβ€‹αž“αŸ…β€‹αž‘αžΈαž“αŸαŸ‡αŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αŸ’αž™αŸ‰αžΆαž„αžœαž·αž‰αž‘αŸ€αž αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αžΉαž„αž“αŸ…αžαŸ‚αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž‡αžΆαž˜αž½αž™αž’αŸ’αž“αž€αŸ” αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αž€αŸ†αžŽαžαŸ‹ dirty_ratio αž‡αžΆαž˜αž½αž™ sysctl αžŠαžΎαž˜αŸ’αž”αžΈαž€αž»αŸ†αž±αŸ’αž™αžœαžΆαž†αŸ’αž€αž½αž - αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžŽαžΆαž€αŸαžŠαŸ„αž™ αžœαžΆαž“αžΉαž„αž‡αž½αž™αŸ” αžœαž·αž’αžΈαž˜αž½αž™ αž¬αž˜αž’αŸ’αž™αŸ„αž”αžΆαž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž’αŸ’αž“αž€αž“αžΉαž„αž˜αžΆαž“αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αžŒαžΈαžŸαŸ” αž αžΎαž™αžœαžΆαž“αžΉαž„αžŸαŸ’αžšαž”αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžαž»αžŸαŸ” αž‡αžΆαž‘αžΌαž‘αŸ…αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αŸ” αž αžΎαž™αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžŽαžΆαž€αŸαžŠαŸ„αž™αžœαžΆαž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαž‡αžΆαž„αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž–αž½αž€αž‚αŸαŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž‡αžΆαž˜αž½αž™ NUMA αŸ” αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ VmWare αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αŸ’αž’αž‡αžΆαž˜αž½αž™ NUMA αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž•αŸ’αž‘αž»αž™αž‚αŸ’αž“αžΆαŸ” αž αžΎαž™αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ - αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸ‚αž€αž¬αž˜αž·αž“αž˜αŸ‚αž“αžŠαŸ‚αž€αŸ”

αžαŸ’αž‰αž»αŸ†αž˜αžΆαž“αžŸαŸ†αžŽαž½αžšαž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„ Amazon AWS αŸ” αž–αž½αž€αž‚αŸαž˜αžΆαž“αžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‡αžΆαž˜αž»αž“αŸ” αž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž αŸ…αžαžΆ Amazon RDS αŸ” αžαžΎαž˜αžΆαž“αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž‘αŸ?

αž˜αžΆαž“αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αž½αž€αžœαžΆαž‡αžΆαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαŸ” αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž™αžΎαž„αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž›αž€αŸ’αžαžαžŽαŸ’αžŒαž“αŸƒαžšαž”αŸ€αž”αžŠαŸ‚αž›αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αžΉαž„αž”αŸ’αžšαžΎαžšαžΏαž„αž“αŸαŸ‡αŸ” αž αžΎαž™αž˜αžΆαž“αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹αž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αž™αžΎαž„αž‚αž½αžšαž‘αŸ…αž₯αž‘αžΌαžœαž“αŸαŸ‡ αžŠαžΌαž…αž‡αžΆ αžšαžΆαž„αŸ” αž“αŸ„αŸ‡αž‚αžΊαž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž’αž“αž’αžΆαž“αž…αŸ’αžšαžΎαž“αžŽαžΆαžŸαŸ‹ αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αž“αžΉαž„αžŸαŸŠαžΈαžœαžΆαž’αžŸαŸ‹αž αžΎαž™αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸαŸ‡ Amazon RDS αžšαžΉαžαž”αž“αŸ’αžαžΉαž„αž’αž“αž’αžΆαž“αž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž αžΎαž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αŸ’αž›αžΆαž€αŸ‹αž…αž»αŸ‡αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αŸ” αž˜αžΆαž“αžšαžΏαž„αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž˜αž“αž»αžŸαŸ’αžŸαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžšαž‰αŸ‰αŸαžšαž‰αŸ‰αŸƒαž‡αžΆαž˜αž½αž™αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αŸ” αž–αŸαž›αžαŸ’αž›αŸ‡αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž‡αŸ„αž‚αž‡αŸαž™αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸαŸ‡αž˜αž·αž“αž˜αžΆαž“αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž’αŸ’αžœαžΎαž‡αžΆαž˜αž½αž™αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž‘αŸαŸ” αžœαžΆαžŠαžΌαž…αž‡αžΆαž€αžΆαžšαž›αž½αž…αžŸαŸ’αžαžΆαž”αŸ‹αž–αž–αž€αŸ” αž“αŸ„αŸ‡αž‡αžΆαžšαžΏαž„αž•αŸ’αžŸαŸαž„αŸ”

αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž‘αŸ†αž–αŸαžšαžŠαŸαž’αŸ†αžŠαŸ‚αž›αž˜αžΆαž“αžαž˜αŸ’αž›αžΆαž—αžΆαž–αž‚αŸ’αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž”αžΎαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‘αŸ…αž“αžΉαž„ TLB αžŠαŸαž’αŸ†?

αž€αž»αŸ†β€‹αž’αŸ„αž™αŸ” αž“αŸαŸ‡αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž“αŸ’αž™αž›αŸ‹αžαžΆαž˜αžœαž·αž’αžΈαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αžαžΆαž˜β€‹αž–αž·αžβ€‹αž‚αŸβ€‹αž˜αž·αž“β€‹αž²αŸ’αž™β€‹αžœαžΆβ€‹αž‘αŸαŸ” តើ PostgreSQL αž˜αžΆαž“αž”αŸ’αžšαžœαžαŸ’αžαž·αžŠαžΌαž…αž˜αŸ’αžαŸαž…? αž“αŸ…αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αžœαžΆαž”αŸ‚αž„αž…αŸ‚αž€αž•αŸ’αž“αŸ‚αž€αž’αŸ†αž“αŸƒαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αŸ” αžαžΆαžαžΎαž–αž½αž€αž‚αŸαž˜αžΆαž“αžαž˜αŸ’αž›αžΆαž—αžΆαž– αž¬αž’αžαŸ‹ αž‚αžΊαž˜αž·αž“αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αž“αŸ„αŸ‡αž‘αŸαŸ” αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž–αž½αž€αž‚αŸαž›αŸαž…αž’αŸ’αž›αŸ„αž“αŸ…αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž–αž“αŸ’αž™αž›αŸ‹αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αŸ” αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž…αŸ’αžšαžΎαž“ αž αžΎαž™αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αž„αŸ’αž€αžΎαžαž•αŸ’αž“αŸ‚αž€ shared_memory αž‘αžΎαž„αžœαž·αž‰ αž“αŸ„αŸ‡αž‘αŸ†αž–αŸαžšαžŠαŸαž’αŸ†αžŠαŸ‚αž›αž˜αžΆαž“αžαž˜αŸ’αž›αžΆαž—αžΆαž–αž“αžΉαž„αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„ PostgreSQL αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ‚αž„αž…αŸ‚αž€αž™αŸ‰αžΆαž„αžŸαžΆαž˜αž‰αŸ’αž‰αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αžŠαŸαž’αŸ†αž˜αž½αž™αž“αŸ…αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž αžΎαž™αž“αŸ„αŸ‡αž αžΎαž™αž‡αžΆαžœαžΆ αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž‚αŸ’αž˜αžΆαž“αž’αŸ’αžœαžΈαž–αž·αžŸαŸαžŸαž€αžΎαžαž‘αžΎαž„αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αž‘αŸαŸ” αž’αŸ’αž“αž€β€‹αž’αžΆαž…β€‹αž”αŸ’αžšαžΎβ€‹αžœαžΆβ€‹αž”αžΆαž“ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αžœαžΆβ€‹αž˜αžΆαž“β€‹αž±αž€αžΆαžŸβ€‹αž‘αž‘αž½αž›β€‹αž”αžΆαž“β€‹αž€αžΆαžšβ€‹αžαžΌαž…β€‹αžαžΆαžβ€‹αž“αŸƒ shared_memory αž“αŸ…β€‹αž–αŸαž›β€‹αžœαžΆβ€‹αž”αŸ‚αž„αž…αŸ‚αž€β€‹αž’αŸ’αžœαžΈβ€‹αž˜αž½αž™β€‹αž‘αžΎαž„β€‹αžœαž·αž‰αŸ” PostgreSQL αž˜αž·αž“αžŠαžΉαž„αž’αŸ†αž–αžΈαžšαžΏαž„αž“αŸαŸ‡αž‘αŸαŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹