αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ Out-Of-Memory Killer αž“αŸ…αž€αŸ’αž“αž»αž„ Linux αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ PostgreSQL

αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ Out-Of-Memory Killer αž“αŸ…αž€αŸ’αž“αž»αž„ Linux αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ PostgreSQL

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

αžƒαžΆαžαž€αžšαž€αŸ’αžšαŸ…αžŸαžαž·

αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž¬αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αžŸαŸ‹αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αž›αžΈαž“αž»αž…αž•αŸ’αžαž›αŸ‹αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™ 2αŸ– αž‚αžΆαŸ†αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αžΆαŸ†αž„αž˜αžΌαž› αž¬αž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš (αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ) αžŠαŸ‚αž›αžŸαŸŠαžΈαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αŸ” αžœαžΆαž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αž·αž„αžšαž€αŸ’αžŸαžΆαž‘αž»αž€ OS αž–αžΈαž€αžΆαžšαž‚αžΆαŸ†αž„αŸ” αžŸαžšαž»αž”αž˜αž€ Out-Of-Memory Killer αž‚αžΊαž‡αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αžŸαž˜αŸ’αž›αžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž½αž™αžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžαžΊαžŽαŸ‚αž›αž–αžΈαž€αžΆαžšαž‚αžΆαŸ†αž„αŸ” αžœαžΆαž›αŸ‡αž”αž„αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αŸ’αžŸαžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαŸ” αžŠαŸ†αž”αžΌαž„αž™αžΎαž„αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž› OOM αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αž·αž„αžšαž”αŸ€αž”αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžœαžΆ αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž˜αžΎαž›αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž› OOM Killer αžŸαž˜αŸ’αžšαŸαž…αžαžΆαžαžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž½αž™αžŽαžΆαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αž‰αŸ’αž…αž”αŸ‹αŸ”

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

Out of Memory: Killed process 12345 (postgres).

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž˜αžΆαž“αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž‘αžΆαž” αž αžΎαž™αžœαžΆαž˜αž·αž“αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αž›αŸ‚αž„αž‘αŸ αž˜αž»αžαž„αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž αŸ… out_of_memory. αž“αŸ…αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž“αŸαŸ‡ αž“αžΆαž„αž“αŸ…αžŸαž›αŸ‹αžαŸ‚αž€αž·αž…αŸ’αž…αž€αžΆαžšαž˜αž½αž™αž‚αžαŸ‹αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž’αŸ’αžœαžΎ αž‚αžΊαž”αŸ†αž–αŸαž‰αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž½αž™ αž¬αž…αŸ’αžšαžΎαž“αŸ” តើ OOM-killer αž‚αž½αžšαžαŸ‚αž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž—αŸ’αž›αžΆαž˜αŸ— αž¬αž’αžΆαž…αžšαž„αŸ‹αž…αžΆαŸ†αž”αžΆαž“? αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αž“αŸ…αž–αŸαž›αžŠαŸ‚αž› out_of_memory αžαŸ’αžšαžΌαžœαž”αžΆαž“αž αŸ…αžœαžΆαžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž€αžΆαžšαžšαž„αŸ‹αž…αžΆαŸ†αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš I/O αž¬αž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αž‘αŸ†αž–αŸαžšαž‘αŸ…αž€αžΆαž“αŸ‹αžαžΆαžŸαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αžƒαžΆαžαž€αžš OOM αžαŸ’αžšαžΌαžœαžαŸ‚αž’αŸ’αžœαžΎαž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž‡αžΆαž˜αž»αž“αžŸαž·αž“ αž αžΎαž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž–αž½αž€αž‚αŸ αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαžαžΆ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ’αžšαžΌαžœαžαŸ‚αž”αž‰αŸ’αž…αž”αŸ‹αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž˜αžΆαž“αž—αžΆαž–αžœαž·αž‡αŸ’αž‡αž˜αžΆαž“ OOM αž“αžΉαž„αž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸαŸ‡αŸ”

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ

αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž’αžŸαŸ‹ αž˜αž»αžαž„αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž αŸ… out_of_memory(). αžœαžΆαž˜αžΆαž“αž˜αž»αžαž„αžΆαžš select_bad_process()αžŠαŸ‚αž›αž‘αž‘αž½αž›αž”αžΆαž“αž€αžΆαžšαžœαžΆαž™αžαž˜αŸ’αž›αŸƒαž–αžΈαž˜αž»αžαž„αžΆαžš badness(). αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš "αž’αžΆαž€αŸ’αžšαž€αŸ‹αž”αŸ†αž•αž»αž" αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αž‚αŸ„αž›αžŠαŸ…αŸ” αž˜αž»αžαž„αžΆαžš badness() αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž½αž™αž™αŸ„αž„αž‘αŸ…αžαžΆαž˜αž…αŸ’αž”αžΆαž”αŸ‹αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αŸ”

  1. αžαžΊαžŽαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž’αž”αŸ’αž”αž”αžšαž˜αžΆαžαŸ’αž›αŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž›αž½αž“αžœαžΆαŸ”
  2. αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αž„αŸ’αž€αžΎαž“αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž±αŸ’αž™αž”αžΆαž“αž…αŸ’αžšαžΎαž“αŸ”
  3. αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αž”αŸ’αžšαžΎαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžαž·αž…αžαž½αž…αž‘αŸαŸ”
  4. αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αž”αŸ’αž”αž”αžšαž˜αžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αžšαžΌαžœαž”αž‰αŸ’αž…αž”αŸ‹αŸ”
  5. αž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαž“αž±αž€αžΆαžŸαž“αŸƒαž€αžΆαžšαž”αž‰αŸ’αž…αž”αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αžΆαŸ†αž„αž“αŸ„αŸ‡αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαŸ’αž›αž½αž“αž‚αžΆαžαŸ‹αž…αž„αŸ‹αž”αž‰αŸ’αž…αž”αŸ‹αŸ”

αžŠαŸ„αž™αž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡ OOM αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž–αž·αž“αŸ’αž‘αž» (oom_score) OOM αž…αžΆαžαŸ‹αžαžΆαŸ†αž„ oom_score αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αžΈαž˜αž½αž™αŸ— αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž‚αž»αžŽαžαž˜αŸ’αž›αŸƒαž“αŸαŸ‡αžŠαŸ„αž™αž…αŸ†αž“αž½αž“αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αŸ” αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšβ€‹αžŠαŸ‚αž›β€‹αž˜αžΆαž“β€‹αžαž˜αŸ’αž›αŸƒβ€‹αž’αŸ†β€‹αž‡αžΆαž„β€‹αž“αŸαŸ‡β€‹αž‘αŸ†αž“αž„β€‹αž‡αžΆβ€‹αž’αŸ’αž›αžΆαž€αŸ‹β€‹αžαŸ’αž›αž½αž“β€‹αž‡αžΆβ€‹αž‡αž“αžšαž„αž‚αŸ’αžšαŸ„αŸ‡β€‹αž‘αŸ…β€‹αž“αžΉαž„ OOM KillerαŸ” αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž˜αž½αž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ root αž˜αžΆαž“αž–αž·αž“αŸ’αž‘αž»αž‘αžΆαž”αž‡αžΆαž„ αž αžΎαž™αž‘αŸ†αž“αž„αž‡αžΆαž˜αž·αž“αžŸαžΌαžœαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αžαŸ†αž±αŸ’αž™αž”αž‰αŸ’αž…αž”αŸ‹αž“αŸ„αŸ‡αž‘αŸαŸ”

postgres=# SELECT pg_backend_pid();
pg_backend_pid 
----------------
    3813
(1 row)

αž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Postgres αž‚αžΊ 3813 αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ‚αž›αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αžœαžΆαž’αžΆαž…αž‘αž‘αž½αž›αž”αžΆαž“αž–αž·αž“αŸ’αž‘αž»αžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžαžΊαžŽαŸ‚αž›αž“αŸαŸ‡ oom_score:

vagrant@vagrant:~$ sudo cat /proc/3813/oom_score
2

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αž·αž“αž…αž„αŸ‹αž±αŸ’αž™ OOM-Killer αžŸαž˜αŸ’αž›αžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αžΆαž›αŸ‹αžαŸ‚αžŸαŸ„αŸ‡ αž˜αžΆαž“αž‡αž˜αŸ’αžšαžΎαžŸαžαžΊαžŽαŸ‚αž›αž˜αž½αž™αž‘αŸ€αžαŸ– oom_score_adj. αž”αž“αŸ’αžαŸ‚αž˜αžαž˜αŸ’αž›αŸƒαž’αžœαž·αž‡αŸ’αž‡αž˜αžΆαž“αžŠαŸαž’αŸ†αž˜αž½αž™ αžŠαžΎαž˜αŸ’αž”αžΈαž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž±αž€αžΆαžŸαž“αŸƒαž€αžΆαžšαž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž’αŸ’αž“αž€αž±αŸ’αž™αžαž˜αŸ’αž›αŸƒαŸ”

sudo echo -100 > /proc/3813/oom_score_adj

αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αžαž˜αŸ’αž›αŸƒ oom_score_adjαž€αŸ†αžŽαžαŸ‹ OOMScoreAdjust αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αž›αž»αž€αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ–

[Service]
OOMScoreAdjust=-1000

αž¬αž”αŸ’αžšαžΎ oomprotect αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜αž˜αž½αž™αŸ” rcctl.

rcctl set <i>servicename</i> oomprotect -1000

αž€αžΆαžšαž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž”αž„αŸ’αžαŸ†

αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž½αž™ αž¬αž…αŸ’αžšαžΎαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžšαž½αž…αž αžΎαž™ OOM-Killer αž αŸ…αž˜αž»αžαž„αžΆαžšαž“αŸαŸ‡αŸ” oom_kill_task(). αž˜αž»αžαž„αžΆαžšαž“αŸαŸ‡αž”αž‰αŸ’αž‡αžΌαž“αžŸαž‰αŸ’αž‰αžΆαž”αž‰αŸ’αž…αž”αŸ‹αž‘αŸ…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž€αž„αŸ’αžœαŸ‡αž€αžΆαžšαž…αž„αž…αžΆαŸ† oom_kill() αž αŸ…αž˜αž»αžαž„αžΆαžšαž“αŸαŸ‡αžŠαžΎαž˜αŸ’αž”αžΈαž”αž‰αŸ’αž‡αžΌαž“αžŸαž‰αŸ’αž‰αžΆ SIGKILL αž‘αŸ…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αžŸαžΆαžšαž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž‘αŸ…αž€αžΆαž“αŸ‹αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αžαžΊαžŽαŸ‚αž›αŸ”

Out of Memory: Killed process [pid] [name].

αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ OOM-Killer

αž“αŸ…αž›αžΎαž›αžΈαž“αž»αž… αž’αŸ’αž“αž€αž’αžΆαž…αž”αžΎαž€ αž¬αž”αž·αž‘ OOM-Killer (αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαžœαžΆαž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αž€αŸαžŠαŸ„αž™)αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€αž¬αž”αž·αž‘αž”αŸ’αžšαžΎαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš vm.oom-kill. αžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€ OOM-Killer αž“αŸ…αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αžŸαžΌαž˜αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ sysctl.

sudo -s sysctl -w vm.oom-kill = 1

αžŠαžΎαž˜αŸ’αž”αžΈαž”αž·αž‘ OOM-Killer αžŸαžΌαž˜αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžαž˜αŸ’αž›αŸƒ 0 αž€αŸ’αž“αž»αž„αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ–

sudo -s sysctl -w vm.oom-kill = 0

αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž“αŸαŸ‡αž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž‡αžΆαžšαŸ€αž„αžšαž αžΌαžαž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αžαŸ‚αžšαž αžΌαžαžŠαž›αŸ‹αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž‘αžΎαž„αžœαž·αž‰αž‡αžΆαž›αžΎαž€αžŠαŸ†αž”αžΌαž„αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαž€αžΆαžšαžαžŸαŸŠαžΌαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αž αžŸαžΌαž˜αž”αž“αŸ’αžαŸ‚αž˜αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸαŸ‡αž‘αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš /etc/sysctl.conf:

echo vm.oom-kill = 1 >>/etc/sysctl.conf

αžœαž·αž’αžΈαž˜αž½αž™αž‘αŸ€αžαžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€ αž“αž·αž„αž”αž·αž‘αž‚αžΊαžŸαžšαžŸαŸαžšαž’αžαŸαžš panic_on_oom. αžαž˜αŸ’αž›αŸƒαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž“αž·αžαŸ’αž™αž…αžΌαž›αž‡αžΆαž“αž·αž…αŸ’αž… /proc.

$ cat /proc/sys/vm/panic_on_oom
0

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ†αžŽαžαŸ‹αžαž˜αŸ’αž›αŸƒαž‘αŸ… 0 αž“αŸ„αŸ‡αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž’αžŸαŸ‹ αžœαžΆαž“αžΉαž„αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαž—αŸαž™αžŸαŸ’αž›αž“αŸ‹αžŸαŸ’αž›αŸ„αžšαž”αžŸαŸ‹αžαžΊαžŽαŸ‚αž›αž‘αŸαŸ”

$ echo 0 > /proc/sys/vm/panic_on_oom

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ†αžŽαžαŸ‹αžαž˜αŸ’αž›αŸƒαž‘αŸ… 1 αž“αŸ„αŸ‡αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž’αžŸαŸ‹ αž€αžΆαžšαž—αŸαž™αžŸαŸ’αž›αž“αŸ‹αžŸαŸ’αž›αŸ„αžαžΊαžŽαŸ‚αž›αž“αžΉαž„αž€αžΎαžαž‘αžΎαž„αŸ”

echo 1 > /proc/sys/vm/panic_on_oom

OOM-Killer αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž’αžΆαž…αž”αžΎαž€ αž“αž·αž„αž”αž·αž‘αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸαŸ” αž™αžΎαž„αž”αžΆαž“αž“αž·αž™αžΆαž™αžšαž½αž…αž˜αž€αž αžΎαž™αžαžΆαž›αžΈαž“αž»αž…αž’αžΆαž…αž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž”αžΆαž“αž…αŸ’αžšαžΎαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž„αžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“αžŠαŸ„αž™αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž”αŸ‚αž„αž…αŸ‚αž€αžœαžΆ αž αžΎαž™αž₯αžšαž·αž™αžΆαž”αžαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ„αž™αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž…αŸ” αž’αžαŸαžšαž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡ vm.overcommit_memory.

αž’αŸ’αž“αž€αž’αžΆαž…αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžαž˜αŸ’αž›αŸƒαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆαŸ–

0: αžαžΊαžŽαŸ‚αž›αžαŸ’αž›αž½αž“αž―αž„αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαžαžΆαžαžΎαžαŸ’αžšαžΌαžœαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž…αŸ’αžšαžΎαž“αž–αŸαž€αž¬αž’αžαŸ‹αŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž“αŸ…αž›αžΎαž€αŸ†αžŽαŸ‚αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαž›αžΈαž“αž»αž…αŸ”
1: αžαžΊαžŽαŸ‚αž›αž“αžΉαž„αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž”αž“αŸ’αžαŸ‚αž˜αž‡αžΆαž“αž·αž…αŸ’αž…αŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžαž»αž™αž”αŸ’αžšαžαžΆαž“ αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž’αžΆαž…αž“αžΉαž„αž’αžŸαŸ‹ αž–αŸ’αžšαŸ„αŸ‡αž‘αŸ†αž“αž„αž‡αžΆαžαŸ’αž„αŸƒαžŽαžΆαž˜αž½αž™ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαžœαžΆαŸ”
2: αžαžΊαžŽαŸ‚αž›β€‹αž“αžΉαž„β€‹αž˜αž·αž“β€‹αž‘αž»αž€β€‹αž’αž„αŸ’αž‚β€‹αž…αž„αž…αžΆαŸ†β€‹αž…αŸ’αžšαžΎαž“β€‹αž‡αžΆαž„β€‹αž€αžΆαžšβ€‹αž”αž‰αŸ’αž‡αžΆαž€αŸ‹β€‹αž€αŸ’αž“αž»αž„β€‹αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšβ€‹αž‘αŸαŸ” overcommit_ratio.

αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž“αŸαŸ‡ αž’αŸ’αž“αž€αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž—αžΆαž‚αžšαž™αž“αŸƒαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž›αžΎαžŸαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎβ€‹αž‚αŸ’αž˜αžΆαž“β€‹αž€αž“αŸ’αž›αŸ‚αž„β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αžœαžΆβ€‹αž‘αŸ αž“αŸ„αŸ‡β€‹αž€αžΆαžšβ€‹αž…αž„αž…αžΆαŸ†β€‹αž˜αž·αž“β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αŸ‚αž„αž…αŸ‚αž€β€‹αž‘αŸ αž αžΎαž™β€‹αž€αžΆαžšβ€‹αž€αž€αŸ‹β€‹αž‘αž»αž€β€‹αž“αžΉαž„β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžŠαž·αžŸαŸαž’αŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž‡αž˜αŸ’αžšαžΎαžŸαžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž”αŸ†αž•αž»αžαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ PostgreSQL αŸ” OOM-Killer αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžŠαŸ„αž™αž’αžΆαžαž»αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αž - αžŸαž˜αžαŸ’αžαž—αžΆαž–αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ„αž™αž’αžαŸαžš cat /proc/sys/vm/swappiness. αžαž˜αŸ’αž›αŸƒαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž”αŸ’αžšαžΆαž”αŸ‹αžαžΊαžŽαŸ‚αž›αž–αžΈαžšαž”αŸ€αž”αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‘αŸ†αž–αŸαžšαŸ” αžαž˜αŸ’αž›αŸƒαž€αžΆαž“αŸ‹αžαŸ‚αžαŸ’αž–αžŸαŸ‹ αžœαžΆαž‘αŸ†αž“αž„αž‡αžΆαžαž·αž…αž‡αžΆαž„αžŠαŸ‚αž› OOM αž“αžΉαž„αž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαŸ„αž™αžŸαžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš I/O αžœαžΆαž˜αžΆαž“αž•αž›αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αž’αžœαž·αž‡αŸ’αž‡αž˜αžΆαž“αž›αžΎαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αž αžΎαž™αž•αŸ’αž‘αž»αž™αž˜αž€αžœαž·αž‰ - αžαž˜αŸ’αž›αŸƒαž€αžΆαž“αŸ‹αžαŸ‚αž‘αžΆαž” αž›αž‘αŸ’αž’αž—αžΆαž–αž“αŸƒαž€αžΆαžšαž’αž“αŸ’αžαžšαžΆαž‚αž˜αž“αŸ OOM-Killer αž€αžΆαž“αŸ‹αžαŸ‚αžαŸ’αž–αžŸαŸ‹ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸαžαŸ’αž–αžŸαŸ‹αž‡αžΆαž„αžŠαŸ‚αžšαŸ” αžαž˜αŸ’αž›αŸƒαž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž‚αžΊ 60 αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αžΆαŸ†αž„αž˜αžΌαž›αžŸαž˜αž“αžΉαž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αžœαžΆαž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžαž˜αŸ’αž›αŸƒαž‘αŸ… 1 αŸ”

αž›αž‘αŸ’αž’αž•αž›

αž€αž»αŸ†αž’αŸ„αž™ "αžƒαžΆαžαž€αžš" αž“αŸ…αž€αŸ’αž“αž»αž„ OOM-Killer αž”αŸ†αž—αŸαž™αž’αŸ’αž“αž€αŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡ αžƒαžΆαžαž€αžšαž“αžΉαž„αž‡αžΆαž’αŸ’αž“αž€αžŸαž„αŸ’αž‚αŸ’αžšαŸ„αŸ‡αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” វអ "αžŸαž˜αŸ’αž›αžΆαž”αŸ‹" αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸαž’αžΆαž€αŸ’αžšαž€αŸ‹αž”αŸ†αž•αž»αž αž“αž·αž„αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž–αžΈαž€αžΆαžšαž‚αžΆαŸ†αž„αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ€αžŸαžœαžΆαž„αž€αžΆαžšαž”αŸ’αžšαžΎ OOM-Killer αžŠαžΎαž˜αŸ’αž”αžΈαž”αž‰αŸ’αž…αž”αŸ‹ PostgreSQL αžŸαžΌαž˜αž€αŸ†αžŽαžαŸ‹αž‘αŸ… vm.overcommit_memory αžαž˜αŸ’αž›αŸƒ 2. αž“αŸαŸ‡αž˜αž·αž“αž’αžΆαž“αžΆαžαžΆ OOM-Killer αž“αžΉαž„αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž’αŸ’αžœαžΎαž’αž“αŸ’αžαžšαžΆαž‚αž˜αž“αŸαž“αŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž“αžΉαž„αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž›αž‘αŸ’αž’αž—αžΆαž–αž“αŸƒαž€αžΆαžšαž”αž„αŸ’αžαŸ†αž±αŸ’αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš PostgreSQL αž”αž‰αŸ’αž…αž”αŸ‹αŸ”

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

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