αžαž½αžšαž€αŸ’αž”αžΆαž› + VPS αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ 30 rubles =?

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

αžαž½αžšαž€αŸ’αž”αžΆαž› + VPS αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ 30 rubles =?
αž€αž»αž˜αŸ’αž˜αž»αž™αž“αž·αžŸαŸ’αžαž”αžΆαž“αž˜αž€αžŠαž›αŸ‹αž αžΎαž™ αžŸαž˜αž˜αž·αžαŸ’αžαŸ”

αž‚αžΆαžαŸ‹αž‚αžΊαž”αŸ‚αž”αž“αŸαŸ‡ - VPS αžšαž”αžŸαŸ‹αž™αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαžΆαž˜αžŸαž·αž”

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

  • αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ– Intel Xeon 2 GHz (1 αžŸαŸ’αž“αžΌαž›)
  • αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž›αžΈαž“αž»αž… (Debian, Ubuntu, CentOS αžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ)
  • αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IPv1 αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ 4
  • αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™ 10 GB αž“αŸ…αž›αžΎαžŠαŸ’αžšαžΆαž™ SSD αžαŸ’αž“αžΆαž€αŸ‹αžŸαž αž‚αŸ’αžšαžΆαžŸαžŠαŸ‚αž›αž˜αžΆαž“αž›αŸ’αž”αžΏαž“αž›αžΏαž“
  • RAMαŸ– ៑្៨ αž˜αŸαž€αžΆαž”αŸƒ
  • αž€αŸ’αž“αž»αž„αž˜αž½αž™αžœαž·αž€αŸαž™αž”αŸαžαŸ’αžšαž‘αžΈαž–αžΈαžš
  • αž…αžšαžΆαž…αžšαžŽαŸαž‚αŸ’αž˜αžΆαž“αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹

αž–αž“αŸ’αž’αž‚αž™αž‚αžΊαžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αžšαŸ„αž˜αž€αžΆαžšαžšαžΉαžαž”αž“αŸ’αžαžΉαž„αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž”αž“αŸ’αžαŸ‚αž˜ αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αžαž“αŸ…αž›αžΎ αž‘αŸ†αž–αŸαžš αž€αžΆαžšαž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αžαŸ’αžšαž‡αžΆαž€αŸ‹αžšαž”αžŸαŸ‹αž™αžΎαž„ - VPS αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ 30 αžšαžΌαž”αŸ’αž›αž·αŸαŸ” 

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

តើ VPS αž“αŸαŸ‡αžŸαžΆαž€αžŸαž˜αž“αžΉαž„αž’αŸ’αžœαžΈ?

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

  • αžŠαžΆαž€αŸ‹αž‚αŸαž αž‘αŸ†αž–αŸαžšαžŸαžΆαž˜αž‰αŸ’αž‰αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž•αž›αž”αŸαžαŸ’αžš αž”αŸ’αžšαžœαžαŸ’αžαž·αžšαžΌαž”αžŸαž„αŸ’αžαŸαž”αž‡αžΆαž˜αž½αž™αž›αŸαžαž€αžΌαžŠαŸ”αž›αŸ” αž‡αžΆβ€‹αž€αžΆαžšβ€‹αž–αž·αžβ€‹αžŽαžΆαžŸαŸ‹ αž‚αŸαž αž‘αŸ†αž–αŸαžšβ€‹αžŠαŸ‚αž›β€‹αž”αžΆαž“β€‹αžšαž…αž“αžΆβ€‹αžŠαŸ„αž™β€‹αžαŸ’αž›αž½αž“β€‹αž―αž„β€‹αž’αŸ’αžœαžΎβ€‹αž±αŸ’αž™β€‹αž˜αžΆαž“β€‹αž…αŸ†αžŽαžΆαž”αŸ‹β€‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸβ€‹αž‡αžΆβ€‹αžœαž·αž‡αŸ’αž‡αž˜αžΆαž“β€‹αž›αžΎβ€‹αž“αž·αž™αŸ„αž‡αž€αŸ” αžŠαžΆαž€αŸ‹αžœαžΆαž“αŸ…αž›αžΎ VPS αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž αžΎαž™αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– αž“αž·αž„αžŸαŸ’αžαŸαžšαž—αžΆαž–αž“αŸƒαž‚αŸαž αž‘αŸ†αž–αŸαžšαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„ αž αžΎαž™αž˜αž·αž“αž˜αŸ‚αž“αžŠαŸ„αž™αž”αž»αž‚αŸ’αž‚αž›αž·αž€αž“αŸƒαž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆαž”αž„αŸ’αž αŸ„αŸ‡αž’αž˜αŸ’αž˜αžαžΆαž“αŸ„αŸ‡αž‘αŸαŸ”
  • αž”αŸ’αžšαžΎ VPS αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸ„αž›αž”αŸ†αžŽαž„αž’αž”αŸ‹αžšαŸ†αŸ– αž’αŸ’αžœαžΎαž‡αžΆαž˜αŸ’αž…αžΆαžŸαŸ‹αž•αŸ’αž‘αŸ‡αž‚αž˜αŸ’αžšαŸ„αž„αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αžŸαž·αž€αŸ’αžŸαžΆαž–αžΈαž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαžšαž”αžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž“αž·αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž–αž·αžŸαŸ„αž’αž“αŸαž‡αžΆαž˜αž½αž™ DNS αž“αž·αž„ tinker αž‡αžΆαž˜αž½αž™αž‚αŸαž αž‘αŸ†αž–αŸαžšαž’αž”αŸ‹αžšαŸ†αžαžΌαž…αž˜αž½αž™αŸ”
  • αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αŸ” αž–αŸαž›αžαŸ’αž›αŸ‡ αžŸαž αž‚αŸ’αžšαž·αž“αž”αž»αž‚αŸ’αž‚αž› αž’αŸ’αž“αž€αž―αž€αžšαžΆαž‡αŸ’αž™ αž¬αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αžαžΌαž…αž˜αž½αž™αžαŸ’αžšαžΌαžœαž€αžΆαžšαž‘αžΌαžšαžŸαŸαž–αŸ’αž‘ IP αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„ αž αžΎαž™αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαž“αŸƒαž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αž“αŸαŸ‡αž˜αžΆαž“αž€αžΆαžšαž›αŸ„αž—αž›αž“αŸ‹αžαŸ’αž›αžΆαŸ†αž„αŸ” αžœαžΆαžŸαžΆαž˜αž‰αŸ’αž‰αŸ– αž™αžΎαž„αž™αž€αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžšαž”αžŸαŸ‹αž™αžΎαž„ αž‘αž·αž‰αž›αŸαžαž–αžΈαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαž‘αžΌαžšαžŸαŸαž–αŸ’αž‘ IP αž”αž„αŸ’αž€αžΎαž PBX αž“αž·αž˜αŸ’αž˜αž·αž αž“αž·αž„αž”αž„αŸ’αž€αžΎαžαž›αŸαžαžαžΆαž„αž€αŸ’αž“αž»αž„ (αž”αžΎαž…αžΆαŸ†αž”αžΆαž…αŸ‹)αŸ” αž€αžΆαžšαžŸαž“αŸ’αžŸαŸ†αž˜αžΆαž“αž…αŸ’αžšαžΎαž“αžŽαžΆαžŸαŸ‹αŸ”
  • αž”αŸ’αžšαžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαžΎαž˜αŸ’αž”αžΈαžŸαžΆαž€αž›αŸ’αž”αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”
  • αž”αŸ’αžšαžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž–αž·αžŸαŸ„αž’αž“αŸ DIY αžšαž½αž˜αž‘αžΆαŸ†αž„αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ αž“αž·αž„αž”αŸ’αžšαž˜αžΌαž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈαž§αž”αž€αžšαžŽαŸαž…αžΆαž”αŸ‹αžŸαž‰αŸ’αž‰αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž•αŸ’αž‘αŸ‡αž†αŸ’αž›αžΆαžαžœαŸƒαŸ”
  • αžœαž·αž’αžΈαž˜αž·αž“αž’αž˜αŸ’αž˜αžαžΆαž˜αž½αž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžΎαžœαžΆαž‚αžΊαžŠαžΆαž€αŸ‹αž‡αŸ†αž“αž½αž™αž€αžΆαžšαž‡αž½αž‰αžŠαžΌαžšαž“αž·αž˜αŸ’αž˜αž·αž αžšαžΌαž”αž™αž“αŸ’αžαž–αžΆαžŽαž·αž‡αŸ’αž‡αž€αž˜αŸ’αž˜αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ” αž’αŸ’αž“αž€αž“αžΉαž„αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αž…αŸ†αž–αŸ„αŸ‡αžŸαŸ’αžαŸαžšαž—αžΆαž– αž“αž·αž„αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αžšαž”αžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸαž™αžαžΆαž’αŸ’αž“αž€αž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αž§αž”αž€αžšαžŽαŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‡αž½αž‰αžŠαžΌαžšαž“αŸ…αž›αžΎαž‘αžΈαž•αŸ’αžŸαžΆαžšαž—αžΆαž‚αž αŸŠαž»αž“αŸ” αž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαžŽαžΆαžŸαŸ‹, αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž˜αžΆαž“αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž¬αžšαŸ€αž”αž…αŸ†αž•αŸ‚αž“αž€αžΆαžš :)

αž˜αžΆαž“αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ VPS αž”αŸ‚αž”αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αžœαž·αžŸαŸαž™αžŸαžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αŸ” αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαžŸαŸαžœαžΆαž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αžšαžΆαž”αŸ‹αžšαž½αž…αž αžΎαž™ αž’αŸ’αž“αž€αž’αžΆαž…αž’αž“αž»αžœαžαŸ’αžαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αž§αž‘αžΆαž αžšαžŽαŸ:

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

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž VPS αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ 30 αžšαžΌαž”αŸ’αž›αž·αŸ - αžšαž½αž…αžšαžΆαž›αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€

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

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

αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαž”αž“αŸ’αž‘αž»αž€αžαŸαžš αž™αžΎαž„αž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž…αŸ†αž“αž½αž“ 3 αžŠαŸ‚αž›αž”αŸ’αžšαž˜αžΌαž›αž˜αŸ‰αŸ‚αžαŸ’αžšαžŸαŸ†αž™αŸ„αž‚αžŠαŸ„αž™αž”αŸ’αžšαžΎ sysbench αžŠαŸ‚αž›αž›αž‘αŸ’αž’αž•αž›αž‡αžΆαž˜αž’αŸ’αž™αž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αžαžΆαž„αž€αŸ’αžšαŸ„αž˜ αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž…αŸ†αž“αž½αž“ 50 αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž”αž“αŸ’αž‘αž»αž€αž”αž“αŸ’αžαŸ‚αž˜αŸ” αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαžŸαžΆαž€αž›αŸ’αž”αž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž˜αžΆαž“αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαžΌαž…αž‚αŸ’αž“αžΆ (1 αžŸαŸ’αž“αžΌαž› RAM 512 GB, SSD 10 GB) αžšαžΌαž”αž—αžΆαž–αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš debian 9.6 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž‡αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž“αŸ…αž›αžΎ RUVDS αŸ”

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

  • αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž˜αž½αž™αž…αŸ†αž“αž½αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž±αŸ’αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž‘αžΆαž”
  • αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αž½αž™αž…αŸ†αž“αž½αž“αž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŸαžΆαž€αž›αŸ’αž”αž„αžŠαŸ‚αž›αž€αŸ’αž›αŸ‚αž„αž’αŸ’αžœαžΎαž”αž“αŸ’αž‘αž»αž€αž“αŸ…αž›αžΎαžαž½αžšαž€αŸ’αž”αžΆαž› (αžŠαŸ„αž™αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αž—αžΆαž–αžαžΆαž“αžαžΉαž„)
  • αž“αŸ…αž›αžΎαž•αŸ’αž“αŸ‚αž€αžŠαŸ‚αž›αž“αŸ…αžŸαž›αŸ‹αž“αŸƒαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αž αž™αžΎαž„αž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŠαŸ‚αž›αž”αŸ’αžšαžΎ dd αžŠαžΎαž˜αŸ’αž”αžΈαž…αž˜αŸ’αž›αž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αž…αŸ†αž‡αžΆαž˜αž»αž“αž‘αŸ…αžŒαžΈαžŸαž‡αžΆαž˜αž½αž™αž“αžΉαž„αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžŠαŸ„αž™αž”αŸ’αžšαžΎ pv (αž§αž‘αžΆαž αžšαžŽαŸαž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰ αž“αŸ…αž‘αžΈαž“αŸαŸ‡ ΠΈ αž“αŸ…αž‘αžΈαž“αŸαŸ‡).

αžŠαžΌαž…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž…αž„αž…αžΆαŸ†αž•αž„αžŠαŸ‚αžš αž™αžΎαž„αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž…αŸ†αž“αž½αž“ XNUMX αžŠαŸ‚αž›αž”αŸ’αžšαž˜αžΌαž›αž˜αŸ‰αŸ‚αžαŸ’αžšαžŸαŸ†αž™αŸ„αž‚αŸ”

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

αžŸαŸ’αž‚αŸ’αžšαžΈαž” sysbench.sh

#!/bin/bash
date +"%Y-%m-%d %H:%M:%S" >> /root/sysbench/results.txt
sysbench --test=cpu run >> /root/sysbench/results.txt
sysbench --test=memory run >> /root/sysbench/results.txt
sysbench --test=fileio --file-test-mode=seqwr run >> /root/sysbench/results.txt
sysbench --test=fileio --file-test-mode=seqrd run >> /root/sysbench/results.txt
sysbench --test=fileio --file-test-mode=rndrw run >> /root/sysbench/results.txt

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

Sysbanch-avg.txtsysbench 0.4.12: multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 1

Doing CPU performance benchmark

Threads started!
Done.

Maximum prime number checked in CPU test: 10000

Test execution summary:
total time: 19.2244s
total number of events: 10000
total time taken by event execution: 19.2104
per-request statistics:
min: 1.43ms
avg: 1.92ms
max: 47.00ms
approx. 95 percentile: 3.02ms

Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 19.2104/0.00

sysbench 0.4.12: multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 1

Doing memory operations speed test
Memory block size: 1K

Memory transfer size: 102400M

Memory operations type: write
Memory scope type: global
Threads started!
Done.

Operations performed: 104857600 (328001.79 ops/sec)

102400.00 MB transferred (320.32 MB/sec)

Test execution summary:
total time: 320.9155s
total number of events: 104857600
total time taken by event execution: 244.8399
per-request statistics:
min: 0.00ms
avg: 0.00ms
max: 139.41ms
approx. 95 percentile: 0.00ms

Threads fairness:
events (avg/stddev): 104857600.0000/0.00
execution time (avg/stddev): 244.8399/0.00

sysbench 0.4.12: multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 1

Extra file open flags: 0
128 files, 16Mb each
2Gb total file size
Block size 16Kb
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing sequential write (creation) test
Threads started!
Done.

Operations performed: 0 Read, 131072 Write, 128 Other = 131200 Total
Read 0b Written 2Gb Total transferred 2Gb (320.1Mb/sec)
20251.32 Requests/sec executed

Test execution summary:
total time: 6.9972s
total number of events: 131072
total time taken by event execution: 5.2246
per-request statistics:
min: 0.01ms
avg: 0.04ms
max: 96.76ms
approx. 95 percentile: 0.03ms

Threads fairness:
events (avg/stddev): 131072.0000/0.00
execution time (avg/stddev): 5.2246/0.00

sysbench 0.4.12: multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 1

Extra file open flags: 0
128 files, 16Mb each
2Gb total file size
Block size 16Kb
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing sequential read test
Threads started!
Done.

Operations performed: 131072 Read, 0 Write, 0 Other = 131072 Total
Read 2Gb Written 0b Total transferred 2Gb (91.32Mb/sec)
5844.8 Requests/sec executed

Test execution summary:
total time: 23.1054s
total number of events: 131072
total time taken by event execution: 22.9933
per-request statistics:
min: 0.00ms
avg: 0.18ms
max: 295.75ms
approx. 95 percentile: 0.77ms

Threads fairness:
events (avg/stddev): 131072.0000/0.00
execution time (avg/stddev): 22.9933/0.00

sysbench 0.4.12: multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 1

Extra file open flags: 0
128 files, 16Mb each
2Gb total file size
Block size 16Kb
Number of random requests for random IO: 10000
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Threads started!
Done.

Operations performed: 6000 Read, 4000 Write, 12800 Other = 22800 Total
Read 93.75Mb Written 62.5Mb Total transferred 156.25Mb (1341.5Kb/sec)
85.61 Requests/sec executed

Test execution summary:
total time: 152.9786s
total number of events: 10000
total time taken by event execution: 14.1879
per-request statistics:
min: 0.01ms
avg: 1.41ms
max: 210.22ms
approx. 95 percentile: 4.95ms

Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 14.1879/0.00

αž›αž‘αŸ’αž’αž•αž›αž‚αžΊαž…αž„αŸ’αž’αž»αž›αž”αž„αŸ’αž αžΆαž‰ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αžαŸ‚αž˜αž·αž“αž‚αž½αžšαž™αž€αž‡αžΆ QoS αž‘αŸαŸ” 

αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž”αž“αŸ’αž‘αž»αž€αž”αž“αŸ’αžαŸ‚αž˜

αž•αŸ’αž“αŸ‚αž€αž‘αž“αŸ‹:

  • apt-get update
  • apt-get upgrade
  • apt-get αžαŸ†αž‘αžΎαž„αž–αžŸαŸ‹αžαŸ’αž›αžΆαž“αŸ‹ -p
  • pip αžŠαŸ†αž‘αžΎαž„ mysql-connector-python-rf

αž”αžΆαž“αžŠαŸ†αž‘αžΎαž„ MariaDB, αžšαž”αŸ€αž” αž“αŸ…αž‘αžΈαž“αŸαŸ‡:

apt-get install libmariadbclient-dev
mysql -e "INSTALL PLUGIN blackhole SONAME 'ha_blackhole.so';" -- Π½ΡƒΠΆΠ½ΠΎ для test_employees_sha

αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžŸαžΆαž€αž›αŸ’αž”αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž™αž€ αž–αžΈαž‘αžΈαž“αŸαŸ‡:

αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž±αŸ’αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ αž“αŸ…αž‘αžΈαž“αŸαŸ‡:

mysql -t < employees.sql
mysql -t < test_employees_sha.sql

αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžŸαžΆαž€αž›αŸ’αž”αž„αžαžΌαž…αŸ–

αžαžΆαžšαžΆαž„ 

αž…αŸ†αž“αž½αž“αž‡αž½αžšαžŠαŸαž€ 

αž‘αŸ†αž αŸ†αž‘αž·αž“αŸ’αž“αž“αŸαž™ (MB)

αž‘αŸ†αž αŸ†αžŸαž“αŸ’αž‘αžŸαŸ’αžŸαž“αŸ (KB)

αž“αžΆαž™αž€αžŠαŸ’αž‹αžΆαž“ 

9

0.02

16.00

dept_emp 

331143 

11.52

5648.00

dept_manager 

24 

0.02

16.00

αž”αž»αž‚αŸ’αž‚αž›αž·αž€ 

299379 

14.52

0.00

αž”αŸ’αžšαžΆαž€αŸ‹αžαŸ‚ 

2838426 

95.63

0.00 

αž…αŸ†αžŽαž„αž‡αžΎαž„ 

442783 

19.56

0.00

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

  1. getStateαŸ– αžαŸ’αžšαž‘αž”αŸ‹αžŸαŸ’αžαžΆαž“αž—αžΆαž–
  2. getEmployeeαŸ– αžαŸ’αžšαž‘αž”αŸ‹αž”αž»αž‚αŸ’αž‚αž›αž·αž€ (+αž”αŸ’αžšαžΆαž€αŸ‹αžαŸ‚+αž…αŸ†αžŽαž„αž‡αžΎαž„) αž–αžΈαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™
  3. patchEmployee: αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžœαžΆαž›αž”αž»αž‚αŸ’αž‚αž›αž·αž€
  4. insertSalary: αž”αž‰αŸ’αž…αžΌαž›αž”αŸ’αžšαžΆαž€αŸ‹αžαŸ‚

αž”αŸ’αžšαž—αž–αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ (dbtest.py)

#!/usr/bin/python
import mysql.connector as mariadb
from flask import Flask, json, request, abort
from mysql.connector.constants import ClientFlag

app = Flask(__name__)

def getFields(cursor):
    results = {}
    column = 0
    for d in cursor.description:
        results[d[0]] = column
        column = column + 1
    return results

PAGE_SIZE = 30

@app.route("/")
def main():
    return "Hello!"

@app.route("/employees/<page>", methods=['GET'])
def getEmployees(page):
    offset = (int(page) - 1) * PAGE_SIZE
    connection = mariadb.connect(user='admin', password='q5XpRomdSr', database='employees')
    cursor = connection.cursor()
    cursor.execute("SELECT * FROM employees LIMIT {} OFFSET {}".format(PAGE_SIZE, offset))
    return {'employees': [i[0] for i in cursor.fetchall()]}

@app.route("/employee/<id>", methods=['GET'])
def getEmployee(id):
    id = int(id)
    connection = mariadb.connect(user='admin', password='q5XpRomdSr', database='employees')
    cursor = connection.cursor()
    cursor.execute("SELECT * FROM employees WHERE emp_no = {}".format(id))
    fields = getFields(cursor)
    employee = {}
    found = False
    for row in cursor.fetchall():
        found = True
        employee = {
            "birth_date": row[fields["birth_date"]],
            "first_name": row[fields["first_name"]],
            "last_name": row[fields["last_name"]],
            "gender": row[fields["gender"]],
            "hire_date": row[fields["hire_date"]]
        }
    if not found:
        abort(404)
    cursor.execute("SELECT * FROM salaries WHERE emp_no = {}".format(id))
    fields = getFields(cursor)
    salaries = []
    for row in cursor.fetchall():
        salary = {
            "salary": row[fields["salary"]],
            "from_date": row[fields["from_date"]],
            "to_date": row[fields["to_date"]]
        }
        salaries.append(salary)
    employee["salaries"] = salaries
    cursor.execute("SELECT * FROM titles WHERE emp_no = {}".format(id))
    fields = getFields(cursor)
    titles = []
    for row in cursor.fetchall():
        title = {
            "title": row[fields["title"]],
            "from_date": row[fields["from_date"]],
            "to_date": row[fields["to_date"]]
        }
        titles.append(title)
    employee["titles"] = titles
    return json.dumps({
        "status": "success",
        "employee": employee
    })

def isFieldValid(t, v):
    if t == "employee":
        return v in ["birdth_date", "first_name", "last_name", "hire_date"]
    else:
        return false

@app.route("/employee/<id>", methods=['PATCH'])
def setEmployee(id):
    id = int(id)
    content = request.json
    print(content)
    setList = ""
    data = []
    for k, v in content.iteritems():
        if not isFieldValid("employee", k):
            continue
        if setList != "":
            setList = setList + ", "
        setList = setList + k + "=%s"
        data.append(v)
    data.append(id)
    print(setList)
    print(data)
    connection = mariadb.connect(user='admin', password='q5XpRomdSr', database='employees', client_flags=[ClientFlag.FOUND_ROWS])
    cursor = connection.cursor()
    cursor.execute("UPDATE employees SET {} WHERE emp_no = %s".format(setList), data)
    connection.commit()
    if cursor.rowcount < 1:
        abort(404)
    return json.dumps({
        "status": "success"
    })

@app.route("/salary", methods=['PUT'])
def putSalary():
    content = request.json
    print(content)
    connection = mariadb.connect(user='admin', password='q5XpRomdSr', database='employees', client_flags=[ClientFlag.FOUND_ROWS])
    cursor = connection.cursor()
    data = [content["emp_no"], content["salary"], content["from_date"], content["to_date"]]
    cursor.execute("INSERT INTO salaries (emp_no, salary, from_date, to_date) VALUES (%s, %s, %s, %s)", data)
    connection.commit()
    return json.dumps({
        "status": "success"
    })


@app.route("/state", methods=['GET'])
def getState():
    return json.dumps({
        "status": "success",
        "state": "working"
    })

if __name__ == '__main__':
    app.run(host='0.0.0.0',port='5002')

αžŸαžΌαž˜αž”αŸ’αžšαž™αŸαžαŸ’αž“! αž˜αž·αž“αžŸαŸ’αžαž·αžαž€αŸ’αžšαŸ„αž˜αž€αžΆαž›αŸˆαž‘αŸαžŸαŸˆαžŽαžΆαž€αŸαžŠαŸ„αž™αž˜αž·αž“αž‚αž½αžšαž™αž€αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž“αŸαŸ‡αž’αŸ’αžœαžΎαž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αž¬αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž‘αžΎαž™!

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŠαŸ„αž™αž”αŸ’αžšαžΎ JMeter αž…αžΆαžŸαŸ‹αž›αŸ’αž’αŸ” αžŸαŸŠαŸαžšαžΈαž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŠαŸ‚αž›αž˜αžΆαž“αžšαž™αŸˆαž–αŸαž›αž–αžΈ 15 αž“αžΆαž‘αžΈαž‘αŸ… 2 αž˜αŸ‰αŸ„αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαžšαŸ†αžαžΆαž“ αž—αžΆαž‚αžšαž™αž“αŸƒαžŸαŸ†αžŽαžΎαž”αŸ’αžšαŸ‚αž”αŸ’αžšαž½αž› αž αžΎαž™αž›αž‘αŸ’αž’αž•αž›αž”αŸ’αžšαŸ‚αž”αŸ’αžšαž½αž›αž–αžΈ 300 αž‘αŸ… 600 αžŸαŸ†αžŽαžΎαž€αŸ’αž“αž»αž„αž˜αž½αž™αž“αžΆαž‘αžΈαŸ” αž…αŸ†αž“αž½αž“αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž–αžΈ 50 αž‘αŸ… 500 αŸ”

αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαžΌαž…αžŽαžΆαžŸαŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ:

mysql -e "SHOW ENGINE INNODB STATUS"

αž”αž„αŸ’αž αžΆαž‰αžαžΆαŸ–

Buffer pool hit rate 923 / 1000, young-making rate 29 / 1000 not 32 / 1000

αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž‚αžΊαž‡αžΆαž–αŸαž›αžœαŸαž›αžΆαž†αŸ’αž›αžΎαž™αžαž”αž‡αžΆαž˜αž’αŸ’αž™αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ†αžŽαžΎαŸ–

αžŸαŸ’αž›αžΆαž€

αž‡αžΆβ€‹αž˜αž’αŸ’αž™αž˜

αž˜αž’αŸ’αž™αž˜

90% αž”αž“αŸ’αž‘αžΆαžαŸ‹

95% αž”αž“αŸ’αž‘αžΆαžαŸ‹

99% αž”αž“αŸ’αž‘αžΆαžαŸ‹

αž“αžΆαž‘αžΈ

αž’αžαž·αž”αžšαž˜αžΆ

αž‘αž‘αž½αž›αž”αž»αž‚αŸ’αž‚αž›αž·αž€

37.64

12.57

62.28

128.5

497.57

5

4151.78

αž‘αž‘αž½αž›αž”αžΆαž“αžšαžŠαŸ’αž‹

17

7.57

30.14

58.71

193

3

2814.71

patch αž”αž»αž‚αŸ’αž‚αž›αž·αž€

161.42

83.29

308

492.57

1845.14

5

6639.4

αžŠαžΆαž€αŸ‹αž”αŸ’αžšαžΆαž€αŸ‹αžαŸ‚

167.21

86.93

315.34

501.07

1927.12

7

6722.44

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

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

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