Мозок + VPS Π·Π° 30 Ρ€ΡƒΠ±Π»ΠΈ =?

ΠœΠ½ΠΎΠ³Ρƒ Π΅ ΡƒΠ±Π°Π²ΠΎ ΠΊΠΎΠ³Π° ситС ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ ситници сС ΠΏΡ€ΠΈ Ρ€Π°ΠΊΠ°: Π΄ΠΎΠ±Ρ€ΠΎ ΠΏΠ΅Π½ΠΊΠ°Π»ΠΎ ΠΈ Π±Π΅Π»Π΅ΠΆΠ½ΠΈΠΊ, наострСн ΠΌΠΎΠ»ΠΈΠ², ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π³Π»ΡƒΠ²Ρ‡Π΅, Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΆΠΈΡ†ΠΈ ΠΈΡ‚Π½. ОвиС Π½Π΅Π·Π°Π±Π΅Π»Π΅ΠΆΠ»ΠΈΠ²ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΡƒΠ²Π°Π°Ρ‚ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‚ΡƒΠΊΡƒ Π΄ΠΎΠ΄Π°Π²Π°Π°Ρ‚ удобност Π½Π° ΠΆΠΈΠ²ΠΎΡ‚ΠΎΡ‚. Π˜ΡΡ‚Π°Ρ‚Π° ΠΏΡ€ΠΈΠΊΠ°Π·Π½Π° Π΅ ΠΈ со Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΠΈ дСсктоп Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ: Π·Π° Π΄ΠΎΠ»Π³ΠΈ слики ΠΎΠ΄ Π΅ΠΊΡ€Π°Π½ΠΎΡ‚, Π·Π° Π½Π°ΠΌΠ°Π»ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°Ρ‚Π° Π½Π° слика, Π·Π° ΠΏΡ€Π΅ΡΠΌΠ΅Ρ‚ΡƒΠ²Π°ΡšΠ΅ Π»ΠΈΡ‡Π½ΠΈ финансии, Ρ€Π΅Ρ‡Π½ΠΈΡ†ΠΈ, ΠΏΡ€Π΅Π²Π΅Π΄ΡƒΠ²Π°Ρ‡ΠΈ, ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΎΡ€ΠΈ ΠΈΡ‚Π½. Π”Π°Π»ΠΈ имаш Π΅Π΄Π½ΠΎ? VPS - ΡˆΡ‚ΠΎ Π΅ Π΅Ρ„Ρ‚ΠΈΠ½ΠΎ, сСкогаш ΠΏΡ€ΠΈ Ρ€Π°ΠΊΠ° ΠΈ носи ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΡ€ΠΈΠ΄ΠΎΠ±ΠΈΠ²ΠΊΠΈ? НС, Π½Π΅ Ρ‚ΠΎΡ˜ ΡˆΡ‚ΠΎ Π³ΠΎ имаш Π²ΠΎ Π΄Ρ€ΡƒΡˆΡ‚Π²ΠΎ, Ρ‚ΡƒΠΊΡƒ Ρ‚Π²ΠΎΠ΅Ρ‚ΠΎ, β€žΡŸΠ΅Π±Π½ΠΎβ€œ. МислСвмС Π΄Π΅ΠΊΠ° Π±Π΅Π· ΠΌΠ°Π» VPS Π²ΠΎ 2019 Π³ΠΎΠ΄ΠΈΠ½Π° бСшС Π½Π΅ΠΊΠ°ΠΊΠΎ Ρ‚Π°ΠΆΠ½ΠΎ, исто ΠΊΠ°ΠΊΠΎ ΠΈ Π±Π΅Π· Π²ΠΎΠΎΠ±ΠΈΡ‡Π°Π΅Π½ΠΎΡ‚ΠΎ ΠΏΠ΅Π½ΠΊΠ°Π»ΠΎ Π½Π° ΠΏΡ€Π΅Π΄Π°Π²Π°ΡšΠ΅. Π—ΠΎΡˆΡ‚ΠΎ Π΄Π° сС Π±ΠΈΠ΄Π΅ Ρ‚Π°ΠΆΠ΅Π½? Π›Π΅Ρ‚ΠΎ Π΅. Како Π΅ Π»Π΅Ρ‚ΠΎΡ‚ΠΎ? Π›Π΅Ρ‚ΠΎ Π·Π° ИВ ΡΠΏΠ΅Ρ†ΠΈΡ˜Π°Π»ΠΈΡΡ‚: сСди Π΄ΠΎΠΌΠ°, Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° Ρ‚Π²ΠΎΠΈΡ‚Π΅ ΠΎΠΌΠΈΠ»Π΅Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²ΠΎ ТалСњС. Π’ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, размислувавмС ΠΈ Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΠ²ΠΌΠ΅ Ρ‚ΠΎΠ°.

Мозок + VPS Π·Π° 30 Ρ€ΡƒΠ±Π»ΠΈ =?
ΠŸΡ€ΠΈΡΡ‚ΠΈΠ³Π½Π° ΠΊΠΎΠΌΡƒΠ½ΠΈΠ·ΠΌΠΎΡ‚, Π΄Ρ€ΡƒΠ³Π°Ρ€ΠΈ.

Вој Π΅ Ρ‚Π°ΠΊΠΎΠ² - Π½Π°ΡˆΠΈΠΎΡ‚ VPS Π·Π° триСсСт

ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Π²ΠΌΠ΅ ΠΌΠ½ΠΎΠ³Ρƒ написи ΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΈ ΠΈ корисници ΠΊΠΎΠΈ ΠΏΠΈΡˆΡƒΠ²Π°Π° ΠΏΡ€Π΅Π΄ 3-4 Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π·Π° Ρ‚ΠΎΠ° Π·ΠΎΡˆΡ‚ΠΎ Π½Π΅ Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π΅Π½ Π΅Π²Ρ‚ΠΈΠ½ VPS. Па, Ρ‚ΠΎΠ° Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ, Ρ‚ΠΎΠ³Π°Ρˆ VPS β€žΠ·Π° Π΅Π΄Π΅Π½ Π΄Π΅Π½Π°Ρ€β€œ бСшС чист ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³ ΠΈ Π½Π΅ моТСшС Π΄Π° ΠΏΠΎΠ½ΡƒΠ΄ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΈ моТности Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°. Но, Π²Ρ€Π΅ΠΌΠΈΡšΠ°Ρ‚Π° сС ΠΌΠ΅Π½ΡƒΠ²Π°Π°Ρ‚, Ρ†Π΅Π½Π°Ρ‚Π° Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΈΡ‚Π΅ рСсурси станува сè ΠΏΠΎΠΌΠ°Π»Π° ΠΈ ΠΏΠΎΠΌΠ°Π»Π°, Π° Π·Π° 30 Ρ€ΡƒΠ±Π»ΠΈ мСсСчно смС ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ Π΄Π° Π³ΠΎ ΠΏΠΎΠ½ΡƒΠ΄ΠΈΠΌΠ΅ ΠΎΠ²Π°:

  • ΠŸΡ€ΠΎΡ†Π΅ΡΠΎΡ€: Intel Xeon 2 GHz (1 Ρ˜Π°Π΄Ρ€ΠΎ)
  • Линукс систСм (Π”Π΅Π±ΠΈΠ°Π½, Π£Π±ΡƒΠ½Ρ‚Ρƒ, CentOS Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅)
  • 1 посвСтСна IPv4 адрСса
  • 10 GB ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π½Π° Π±Ρ€Π·ΠΈ SSD-дискови ΠΎΠ΄ класата Π½Π° ΠΏΡ€Π΅Ρ‚ΠΏΡ€ΠΈΡ˜Π°Ρ‚ΠΈΠ΅Ρ‚ΠΎ
  • RAM ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°: 512 MB
  • Наплата Π²ΠΎ сСкунда
  • НСограничСн ΡΠΎΠΎΠ±Ρ€Π°ΡœΠ°Ρ˜

Π’Π°Ρ€ΠΈΡ„Π°Ρ‚Π° Π΅ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΡ‡ΠΊΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ°, Π΄Π΅Ρ‚Π°Π»ΠΈ Π·Π° страница Π½Π°ΡˆΠ°Ρ‚Π° ΠΊΡƒΠ» ΠΏΠΎΠ½ΡƒΠ΄Π° - VPS Π·Π° 30 Ρ€ΡƒΠ±Π»ΠΈ. 

Π—Π° ΠΊΠΎΠ³ΠΎ Π΅ ΠΏΠΎΠ³ΠΎΠ΄Π΅Π½ овој Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π΅Π½ сСрвСр? Π”Π° Π·Π° рСчиси ситС: ΠΏΠΎΡ‡Π΅Ρ‚Π½ΠΈΡ†ΠΈ, Π΅Π½Ρ‚ΡƒΠ·ΠΈΡ˜Π°ΡΡ‚ΠΈ, искусни ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ, Ρ™ΡƒΠ±ΠΈΡ‚Π΅Π»ΠΈ Π½Π° DIY, ΠΏΠ° Π΄ΡƒΡ€ΠΈ ΠΈ Π½Π΅ΠΊΠΎΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.

Π—Π° ΡˆΡ‚ΠΎ Π΅ ΠΏΠΎΠ³ΠΎΠ΄Π΅Π½ овој VPS?

Π‘ΠΌΠ΅Ρ‚Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Π₯Π°Π±Ρ€ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ‚ΠΈΠ²Π½ΠΎ ќС Π½Π°Ρ˜Π΄Π°Ρ‚ свој Π½Π°Ρ‡ΠΈΠ½ Π΄Π° ја користат ΠΎΠ²Π°Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°, Π½ΠΎ Ρ€Π΅ΡˆΠΈΠ²ΠΌΠ΅ Π΄Π° собСрСмС сопствСн ΠΈΠ·Π±ΠΎΡ€ Π½Π° ΠΈΠ΄Π΅ΠΈ - ΡˆΡ‚ΠΎ Π°ΠΊΠΎ Π½Π΅ΠΊΠΎΠΌΡƒ ΠΌΡƒ Ρ‚Ρ€Π΅Π±Π°, Π° ΠΌΠ°ΠΆΠΈΡ‚Π΅ Π½Π΅ Π·Π½Π°Π°Ρ‚?

  • ΠŸΠΎΡΡ‚Π°Π²Π΅Ρ‚Π΅ ја Π²Π°ΡˆΠ°Ρ‚Π° Сдноставна Π²Π΅Π±-страница, ΠΏΠΎΡ€Ρ‚Ρ„ΠΎΠ»ΠΈΠΎ, Π±ΠΈΠΎΠ³Ρ€Π°Ρ„ΠΈΡ˜Π° со ΠΊΠΎΠ΄, ΠΈΡ‚Π½. Π‘Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°, Π²Π°ΡˆΠ°Ρ‚Π° сопствСна Π΄ΠΈΠ·Π°Ρ˜Π½ΠΈΡ€Π°Π½Π° Π²Π΅Π±-страница остава ΠΏΠΎΠ·ΠΈΡ‚ΠΈΠ²Π΅Π½ Π²ΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΠΊ кај Ρ€Π°Π±ΠΎΡ‚ΠΎΠ΄Π°Π²Π΅Ρ†ΠΎΡ‚. Π‘Ρ‚Π°Π²Π΅Ρ‚Π΅ Π³ΠΎ Π½Π° Π²Π°ΡˆΠΈΠΎΡ‚ VPS ΠΈ Π±ΠΈΠ΄Π΅Ρ‚Π΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€Π½ΠΈ Π·Π° бСзбСдноста ΠΈ стабилноста Π½Π° страницата сами, Π° Π½Π΅ ΠΎΠ΄ пСрсоналот Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π½ΠΈΡ‚Π΅ хостинг ΠΏΡ€ΠΎΠ²Π°Ρ˜Π΄Π΅Ρ€ΠΈ.
  • ΠšΠΎΡ€ΠΈΡΡ‚Π΅Ρ‚Π΅ VPS Π·Π° Π΅Π΄ΡƒΠΊΠ°Ρ‚ΠΈΠ²Π½ΠΈ Ρ†Π΅Π»ΠΈ: Ρ…ΠΎΡΡ‚ΠΈΡ€Π°Ρ˜Ρ‚Π΅ Π³ΠΎ Π²Π°ΡˆΠΈΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΏΡ€ΠΎΡƒΡ‡Π΅Ρ‚Π΅ Π³ΠΈ карактСристикитС Π½Π° сСрвСрот ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΈΠΎΡ‚ систСм Π½Π° сСрвСрот, Π΅ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Ρ˜Ρ‚Π΅ со DNS, нСскопосник со ΠΌΠ°Π»Π° Π΅Π΄ΡƒΠΊΠ°Ρ‚ΠΈΠ²Π½Π° страница.
  • Π—Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΈΡ˜Π°. ПонСкогаш Π½Π° ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»Π΅Π½ ΠΏΡ€Π΅Ρ‚ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ‡, Ρ…ΠΎΠ½ΠΎΡ€Π°Ρ€Π΅Ρ† ΠΈΠ»ΠΈ Π½Π° ΠΌΠ½ΠΎΠ³Ρƒ ΠΌΠ°Π»Π° компанија ΠΎΡ‡Π°Ρ˜Π½ΠΎ ΠΌΡƒ Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π° IP Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΈΡ˜Π°, Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° ΠΎΠ²Π°Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΈΡ˜Π° сС ΠΌΠ½ΠΎΠ³Ρƒ Π°Π»Ρ‡Π½ΠΈ. Едноставно Π΅: Π³ΠΎ Π·Π΅ΠΌΠ°ΠΌΠ΅ Π½Π°ΡˆΠΈΠΎΡ‚ сСрвСр, ΠΊΡƒΠΏΡƒΠ²Π°ΠΌΠ΅ Π±Ρ€ΠΎΡ˜ ΠΎΠ΄ IP тСлСфонски ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, поставувамС Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π° PBX ΠΈ создавамС Π²Π½Π°Ρ‚Ρ€Π΅ΡˆΠ½ΠΈ Π±Ρ€ΠΎΠ΅Π²ΠΈ (Π°ΠΊΠΎ Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ). Π—Π°ΡˆΡ‚Π΅Π΄ΠΈΡ‚Π΅ сС колосални.
  • ΠšΠΎΡ€ΠΈΡΡ‚Π΅Ρ‚Π΅ Π³ΠΎ сСрвСрот Π·Π° Π΄Π° Π³ΠΈ тСстиратС Π²Π°ΡˆΠΈΡ‚Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ.
  • ΠšΠΎΡ€ΠΈΡΡ‚Π΅Ρ‚Π΅ Π³ΠΎ сСрвСрот Π·Π° СкспСримСнти β€žΠΠ°ΠΏΡ€Π°Π²Π΅Ρ‚Π΅ ΡΠ°ΠΌΠΈβ€œ, Π²ΠΊΠ»ΡƒΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°ΡšΠ΅ ΠΈ ΡΠΎΠ±ΠΈΡ€Π°ΡšΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΎΠ΄ сСнзори Π½Π° систСмот Π·Π° ΠΏΠ°ΠΌΠ΅Ρ‚Π½ΠΈ Π΄ΠΎΠΌΠΎΠ²ΠΈ.
  • НСвообичаСн Π½Π°Ρ‡ΠΈΠ½ Π΄Π° сС користи Π΅ Π΄Π° сС постави асистСнт Π·Π° Ρ‚Ρ€Π³ΡƒΠ²Π°ΡšΠ΅ со Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π° Ρ€Π°Π·ΠΌΠ΅Π½Π°, Ρ€ΠΎΠ±ΠΎΡ‚ Π·Π° Ρ‚Ρ€Π³ΡƒΠ²Π°ΡšΠ΅, Π½Π° сСрвСрот. Π’ΠΈΠ΅ ќС Π±ΠΈΠ΄Π΅Ρ‚Π΅ цСлосно ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€Π½ΠΈ Π·Π° стабилноста ΠΈ бСзбСдноста Π½Π° сСрвСрот, ΡˆΡ‚ΠΎ Π·Π½Π°Ρ‡ΠΈ Π΄Π΅ΠΊΠ° ќС Π΄ΠΎΠ±ΠΈΠ΅Ρ‚Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Π½ инструмСнт Π·Π° Ρ‚Ρ€Π³ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π±Π΅Ρ€Π·ΠΈΡ‚Π΅. Па, Π°ΠΊΠΎ нСкој Π΅ заинтСрСсиран ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€Π° :)

ΠŸΠΎΡΡ‚ΠΎΡ˜Π°Ρ‚ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π·Π° Ρ‚Π°ΠΊΠΎΠ² VPS Π²ΠΎ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ‚Π° сфСра. ΠŸΠΎΠΊΡ€Π°Ρ˜ вСќС спомСнатата тСлСфонска услуга, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Ρ‚Π΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ интСрСсни Ρ€Π°Π±ΠΎΡ‚ΠΈ. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

  • ΠŸΠΎΡΡ‚Π°Π²Π΅Ρ‚Π΅ ΠΌΠ°Π»ΠΈ Π±Π°Π·ΠΈ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠΈ ќС Π±ΠΈΠ΄Π°Ρ‚ достапни Π·Π° Π²Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΈ ΠΏΠ°Ρ‚ΡƒΠ²Π°Π°Ρ‚ Π½Π° Π΄Π°Π»Π΅Ρ‡ΠΈΠ½Π°, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ ftp. Ова ќС Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ ΠΌΠ½ΠΎΠ³Ρƒ Π±Ρ€Π·ΠΎ Π΄Π° Ρ€Π°Π·ΠΌΠ΅Π½ΡƒΠ²Π°Ρ‚Π΅ свСТи Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ, Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π·Π° ΠΏΡ€ΠΎΠ΄Π°Π²Π°Ρ‡ΠΈΡ‚Π΅, ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈΡ‚Π½.
  • Π”Π°Ρ˜Ρ‚Π΅ ΠΈΠΌ ΠΏΡ€ΠΈΠ²Ρ€Π΅ΠΌΠ΅Π½ пристап Π½Π° корисницитС ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π·Π° Π΄Π° дСмонстрираат софтвСр ΠΈΠ»ΠΈ ΠΌΠ΅Π΄ΠΈΡƒΠΌΠΈ.

VPS тСст возСњС Π·Π° 30 Ρ€ΡƒΠ±Π»ΠΈ - Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ Π·Π° вас

30 Ρ€ΡƒΠ±Π»ΠΈ сС Ρ‚ΠΎΠ»ΠΊΡƒ ΠΌΠ°Π»ΠΊΡƒ ΡˆΡ‚ΠΎ Π½Π΅ сакатС Π½ΠΈ Π΄Π° ΠΈΠ·Π²Π°Π΄ΠΈΡ‚Π΅ ΠΊΠ°Ρ€Ρ‚ΠΈΡ‡ΠΊΠ° Π·Π° Π΄Π° ΠΏΠ»Π°Ρ‚ΠΈΡ‚Π΅ ΠΈ тСстиратС. И Π½ΠΈΠ΅ понСкогаш смС Ρ‚ΠΎΠ»ΠΊΡƒ ΠΌΡ€Π·Π»ΠΈΠ²ΠΈ, Π½ΠΎ овој ΠΏΠ°Ρ‚ Π½Π°ΠΏΡ€Π°Π²ΠΈΠ²ΠΌΠ΅ сС Π·Π° вас. ΠŸΡ€Π΅Π΄ Π΄Π° Π³ΠΈ лансирамС сСрвСритС Π²ΠΎ Π±ΠΈΡ‚ΠΊΠ°, спровСдовмС тСст Π·Π° Π΄Π° Π³ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌΠ΅ ситС Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΈ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌΠ΅ ΡˆΡ‚ΠΎ сС способни сСрвСритС ΠΏΠΎ ΠΎΠ²Π°Π° Ρ‚Π°Ρ€ΠΈΡ„Π°. Π—Π° Π΄Π° Π±ΠΈΠ΄Π΅ поинтСрСсно, Π΄ΠΎΠ΄Π°Π΄ΠΎΠ²ΠΌΠ΅ СкстрСмни ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ²ΠΌΠ΅ ΠΊΠ°ΠΊΠΎ ќС сС однСсува ΠΎΠ²Π°Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π° Π΄ΠΎΠΊΠΎΠ»ΠΊΡƒ густината ΠΈ ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π³ΠΈ Π½Π°Π΄ΠΌΠΈΠ½Π°Ρ‚ врСдноститС ΡˆΡ‚ΠΎ Π³ΠΈ поставивмС. 

Π”ΠΎΠΌΠ°ΡœΠΈΠ½ΠΎΡ‚ бСшС ΠΏΠΎΠ΄ ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌ Π±Ρ€ΠΎΡ˜ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΈ машини ΠΊΠΎΠΈ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° процСсорот ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π³ΠΎ користСа потсистСмот Π½Π° дискот. Π¦Π΅Π»Ρ‚Π° Π΅ Π΄Π° сС симулира висока густина Π½Π° поставСност ΠΈ ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ спорСдливо ΠΈΠ»ΠΈ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠΎ ΠΎΠ΄ Π±ΠΎΡ€Π±Π΅Π½ΠΎ.

ΠŸΠΎΠΊΡ€Π°Ρ˜ ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½ΠΎΡ‚ΠΎ ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅, инсталиравмС 3 Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΈ машини ΠΊΠΎΠΈ собираа синтСтички ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ со помош Π½Π° sysbench, Ρ‡ΠΈΠΈ просСчни Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ сС Π΄Π°Π΄Π΅Π½ΠΈ ΠΏΠΎΠ΄ΠΎΠ»Ρƒ ΠΈ 50 Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΈ машини ΠΊΠΎΠΈ создадоа Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅. Π‘ΠΈΡ‚Π΅ тСст Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΈ машини ΠΈΠΌΠ°Π° иста ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π° (1 Ρ˜Π°Π΄Ρ€ΠΎ, RAM 512 GB, SSD 10 GB), стандардната слика Π½Π° debian 9.6 бСшС ΠΈΠ·Π±Ρ€Π°Π½Π° ΠΊΠ°ΠΊΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ систСм, кој ΠΈΠΌ сС Π½ΡƒΠ΄ΠΈ Π½Π° корисницитС Π½Π° RUVDS.

Π’ΠΎΠ²Π°Ρ€ΠΎΡ‚ бСшС симулиран ΠΏΠΎ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° ΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π° спорСдливи со Π±ΠΎΡ€Π±Π°:

  • НСкои Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΈ машини Π±Π΅Π° лансирани со ΠΌΠ°Π»ΠΎ ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅
  • НСкои машини ΠΈΠ·Π²Ρ€ΡˆΠΈΡ˜Π° тСст скрипта која Π³ΠΎ симулира ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° процСсорот (ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ ја Π°Π»Π°Ρ‚ΠΊΠ°Ρ‚Π° стрСсот)
  • На прСостанатиот Π΄Π΅Π» ΠΎΠ΄ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΈΡ‚Π΅ машини, ΠΈΠ·Π²Ρ€ΡˆΠΈΠ²ΠΌΠ΅ скрипта ΡˆΡ‚ΠΎ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡˆΠ΅ dd Π·Π° ΠΊΠΎΠΏΠΈΡ€Π°ΡšΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΎΠ΄ ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π½Π° диск со ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ΅ поставСно ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ pv (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²ΠΈΠ΄Π°Ρ‚ Ρ‚ΡƒΠΊΠ° ΠΈ Ρ‚ΡƒΠΊΠ°).

Π˜ΡΡ‚ΠΎ Ρ‚Π°ΠΊΠ°, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС ΡΠ΅ΡœΠ°Π²Π°Ρ‚Π΅, ΠΈΠΌΠ°Π²ΠΌΠ΅ Ρ‚Ρ€ΠΈ машини ΠΊΠΎΠΈ собираа синтСтички ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ.

На сСкоја машина, скрипта сС ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡˆΠ΅ Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½ΠΎ Π½Π° сСкои 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 Π½Π°Π΄Π³Ρ€Π°Π΄Π±Π°
  • apt-get ΠΈΠ½ΡΡ‚Π°Π»ΠΈΡ€Π°Ρ˜ python-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

ΠΎΠ΄Π΄ 

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. Π²ΠΌΠ΅Ρ‚Π½Π΅Ρ‚Π΅ ΠŸΠ»Π°Ρ‚Π°: Π²ΠΌΠ΅Ρ‚Π½ΡƒΠ²Π° ΠΏΠ»Π°Ρ‚Π°

Π˜Π·Π²ΠΎΡ€ Π½Π° услуга (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% Π›ΠΈΠ½ΠΈΡ˜Π°

Мин

Max

Π·Π΅ΠΌΠΈ Π²Ρ€Π°Π±ΠΎΡ‚Π΅Π½

37.64

12.57

62.28

128.5

497.57

5

4151.78

getState

17

7.57

30.14

58.71

193

3

2814.71

Π·Π°ΠΊΡ€ΠΏΠΈΠ’Ρ€Π°Π±ΠΎΡ‚Π΅Π½

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

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€