Мозг + VPS Π·Π° 30 Ρ€ΡƒΠ±Π»Π΅ΠΉ =?

Как приятно, ΠΊΠΎΠ³Π΄Π° всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΌΠ΅Π»ΠΎΡ‡ΠΈ ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ: Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΈΡˆΡƒΡ‰Π°Ρ Ρ€ΡƒΡ‡ΠΊΠ° ΠΈ Π±Π»ΠΎΠΊΠ½ΠΎΡ‚, Π·Π°Ρ‚ΠΎΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊΠ°Ρ€Π°Π½Π΄Π°Ρˆ, удобная ΠΌΡ‹ΡˆΠΊΠ°, ΠΏΠ°Ρ€Π° Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ² ΠΈ Ρ‚.Π΄. Π­Ρ‚ΠΈ Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Π΅ ΡˆΡ‚ΡƒΠΊΠΈ Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π½Π° сСбя внимания, Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ ΠΆΠΈΠ·Π½ΠΈ ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π°. Вакая ΠΆΠ΅ история с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ дСсктопными прилоТСниями: для Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ΠΎΠ², для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, для подсчёта Π»ΠΈΡ‡Π½Ρ‹Ρ… финансов, словари, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠΈ, ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΎΡ€Ρ‹ ΠΈ Ρ‚.Π΄. А Π΅ΡΡ‚ΡŒ Π»ΠΈ Ρƒ вас Ρ‚Π°ΠΊΠΎΠΉ VPS β€” ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ стоит Π½Π΅Π΄ΠΎΡ€ΠΎΠ³ΠΎ, всСгда ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ ΠΈ приносит ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·Ρ‹? НСт, Π½Π΅ Ρ‚ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρƒ вас Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π° свой, Β«ΠΊΠ°Ρ€ΠΌΠ°Π½Π½Ρ‹ΠΉΒ». ΠœΡ‹ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π»ΠΈ, Ρ‡Ρ‚ΠΎ Π±Π΅Π· нСбольшого VPS Π² 2019 Π³ΠΎΠ΄Ρƒ ΠΊΠ°ΠΊ-Ρ‚ΠΎ грустно, прямо ΠΊΠ°ΠΊ Π±Π΅Π· ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠΉ Π°Π²Ρ‚ΠΎΡ€ΡƒΡ‡ΠΊΠΈ Π½Π° Π»Π΅ΠΊΡ†ΠΈΠΈ. А Ρ‡Π΅Π³ΠΎ Π³Ρ€ΡƒΡΡ‚ΠΈΡ‚ΡŒ? Π›Π΅Ρ‚ΠΎ ΠΆΠ΅. Ну ΠΊΠ°ΠΊ Π»Π΅Ρ‚ΠΎ. Π›Π΅Ρ‚ΠΎ Π°ΠΉΡ‚ΠΈΡˆΠ½ΠΈΠΊΠ°: ΡΠΈΠ΄Π΅Ρ‚ΡŒ Π΄ΠΎΠΌΠ°, ΠΏΠΈΠ»ΠΈΡ‚ΡŒ Π»ΡŽΠ±ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π±Π΅Π·ΠΎ всякого соТалСния. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, ΠΏΠΎΠ΄ΡƒΠΌΠ°Π»ΠΈ ΠΈ сдСлали.

Мозг + VPS Π·Π° 30 Ρ€ΡƒΠ±Π»Π΅ΠΉ =?
ΠšΠΎΠΌΠΌΡƒΠ½ΠΈΠ·ΠΌ наступил, Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰ΠΈ

Он Ρ‚Π°ΠΊΠΎΠΉ свой β€” наш VPS Π·Π° Ρ‚Ρ€ΠΈΠ΄Ρ†Π°Ρ‚ΠΊΡƒ

ΠœΡ‹ Π½Π°Ρ‡ΠΈΡ‚Π°Π»ΠΈΡΡŒ статСй ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ 3-4 Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ писали ΠΎ Ρ‚ΠΎΠΌ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ Π½Π΅Π΄ΠΎΡ€ΠΎΠ³ΠΎΠΉ VPS. Ну ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Ρ‚ΠΎΠ³Π΄Π° VPS Β«Π·Π° ΠΊΠΎΠΏΠ΅ΠΉΠΊΠΈΒ» Π±Ρ‹Π» чистой Π²ΠΎΠ΄Ρ‹ ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³ΠΎΠΌ ΠΈ Π½Π΅ ΠΌΠΎΠ³ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ возмоТности. Но Π²Ρ€Π΅ΠΌΠ΅Π½Π° ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ, ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… рСсурсов становится всё Π½ΠΈΠΆΠ΅ ΠΈ Π·Π° 30 Ρ€ΡƒΠ±Π»Π΅ΠΉ Π² мСсяц ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ:

  • ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€: Intel Xeon 2 Π“Π“Ρ† (1 ядро)
  • БистСма Linux (Debian, Ubuntu, CentOS Π½Π° Π²Ρ‹Π±ΠΎΡ€)
  • 1 Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ IPv4-адрСс
  • 10 Π“Π± для хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° быстрых SSD-дисках ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ класса
  • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ ΠΏΠ°ΠΌΡΡ‚ΡŒ: 512 Мб
  • ΠŸΠΎΡΠ΅ΠΊΡƒΠ½Π΄Π½Π°Ρ тарификация
  • Π‘Π΅Π·Π»ΠΈΠΌΠΈΡ‚Π½Ρ‹ΠΉ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ

На Ρ‚Π°Ρ€ΠΈΡ„ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ тСхничСскиС ограничСния, подробности Π½Π° страницС нашСго классного прСдлоТСния β€” VPS Π·Π° 30 Ρ€ΡƒΠ±Π»Π΅ΠΉ.Β 

ΠšΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр? Π”Π° ΠΏΠΎΡ‡Ρ‚ΠΈ всСм: Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ, энтузиастам, ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, DIY-Ρ„Π°Π½Π°Ρ‚Π°ΠΌ ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ компаниям.

Для Ρ‡Π΅Π³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ‚Π°ΠΊΠΎΠΉ VPS?

ΠœΡ‹ Π΄ΡƒΠΌΠ°Π΅ΠΌ, Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ Π₯Π°Π±Ρ€Π° Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π°ΠΉΠ΄ΡƒΡ‚ свой способ примСнСния Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π½ΠΎ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈ свою ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΊΡƒ ΠΈΠ΄Π΅ΠΉ β€” Π° Ρ‚ΠΎ Π²Π΄Ρ€ΡƒΠ³ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ Π½Π°Π΄ΠΎ, Π° ΠΌΡƒΠΆΠΈΠΊΠΈ ΠΈ Π½Π΅ Π·Π½Π°ΡŽΡ‚?

  • Π Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ свой нСслоТный сайт, ΠΏΠΎΡ€Ρ‚Ρ„ΠΎΠ»ΠΈΠΎ, Ρ€Π΅Π·ΡŽΠΌΠ΅ с ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΠΏΡ€ΠΎΡ‡. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, собствСнный ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹ΠΉ сайт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° работодатСля ΠΏΠΎΠ·ΠΈΡ‚ΠΈΠ²Π½ΠΎΠ΅ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅. РазмСститС Π΅Π³ΠΎ Π½Π° своём VPS ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°ΠΉΡ‚Π΅ Π·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ сайта ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π° Π½Π΅ силами сотрудников ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… хостингов.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ VPS для ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ: Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ особСнности функционирования сСрвСра ΠΈ сСрвСрной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с DNS, ΠΏΠΎΠΊΠΎΠ²Ρ‹Ρ€ΡΡ‚ΡŒ малСнький ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ сайт.
  • Для Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΈΠΈ. Иногда ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŽ, фрилансСру ΠΈΠ»ΠΈ ΠΎΡ‡Π΅Π½ΡŒ нСбольшой ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΊΡ€Π°ΠΉΠ½Π΅ Π½ΡƒΠΆΠ½Π° IP-тСлСфония, Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ этой самой Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΈΠΈ вСсьма ΠΆΠ°Π΄Π½Ρ‹Π΅. Всё просто: Π±Π΅Ρ€Ρ‘ΠΌ свой сСрвСр, ΠΏΠΎΠΊΡƒΠΏΠ°Π΅ΠΌ Π½ΠΎΠΌΠ΅Ρ€ Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° IP-Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΈΠΈ, настраиваСм Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ АВБ ΠΈ создаём Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€Π° (ΠΏΡ€ΠΈ нСобходимости). Экономия колоссальная.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сСрвСр для тСстирования своих ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сСрвСр для DIY-экспСримСнтов, Π² Ρ‚ΠΎΠΌ числС для управлСния ΠΈ сбора Π΄Π°Π½Π½Ρ‹Ρ… с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² систСмы ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°.
  • НСобычный способ примСнСния β€” Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π° сСрвСрС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ° Π±ΠΈΡ€ΠΆΠ΅Π²ΠΎΠΉ Ρ‚ΠΎΡ€Π³ΠΎΠ²Π»ΠΈ, Ρ‚ΠΎΡ€Π³ΠΎΠ²ΠΎΠ³ΠΎ Ρ€ΠΎΠ±ΠΎΡ‚Π°. Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π·Π° ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ сСрвСра, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΠΎΠ΄ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ инструмСнт для Ρ‚ΠΎΡ€Π³ΠΎΠ² Π½Π° Ρ„ΠΎΠ½Π΄ΠΎΠ²Ρ‹ Ρ€Ρ‹Π½ΠΊΠ°Ρ…. Ну Π²Π΄Ρ€ΡƒΠ³ ΠΊΡ‚ΠΎ увлСкаСтся ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚ πŸ™‚

Π•ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΌΡƒ VPS ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ Π² ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ сфСрС. ΠšΡ€ΠΎΠΌΠ΅ ΡƒΠΆΠ΅ Π½Π°Π·Π²Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠ³ΠΎ сСрвиса, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько интСрСсных ΡˆΡ‚ΡƒΠΊ. НапримСр:

  • Π Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ нСбольшиС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ доступны ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ€ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΌ сотрудникам Π½Π° расстоянии, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ftp. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΡ‡Π΅Π½ΡŒ быстро ΠΎΠ±ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ свСТСй Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΎΠΉ, ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ конфигурациями для ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ½ΠΈΠΊΠΎΠ², ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ Ρ‚.Π΄.
  • Π”Π°Π²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ доступ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ для дСмонстрации ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΈΠ»ΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°.

ВСст-Π΄Ρ€Π°ΠΉΠ² VPS Π·Π° 30 Ρ€ΡƒΠ±Π»Π΅ΠΉ β€” сдСлали Π·Π° вас

30 Ρ€ΡƒΠ±Π»Π΅ΠΉ это Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ°Π»ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Π½Π΅ΠΎΡ…ΠΎΡ‚Π° Π΄ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΡ‚Π΅ΡΡ‚ΠΈΡ‚ΡŒ. ΠœΡ‹ ΠΈΠ½ΠΎΠ³Π΄Π° Ρ‚ΠΎΠΆΠ΅ Ρ‚Π°ΠΊΠΈΠ΅ Π»Π΅Π½ΠΈΠ²Ρ‹Π΅, Π½ΠΎ Π² этот Ρ€Π°Π· сдСлали всё Π·Π° вас. ΠŸΠ΅Ρ€Π΅Π΄ запуском сСрвСров Π² Π±ΠΎΠΉ ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Π»ΠΈ тСст, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ всС Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Π½Π° Ρ‡Ρ‚ΠΎ способны сСрвСры Π½Π° Π΄Π°Π½Π½ΠΎΠΌ Ρ‚Π°Ρ€ΠΈΡ„Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ интСрСснСС, ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ экстрима ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ сСбя ΠΏΠΎΠ²Π΅Π΄Ρ‘Ρ‚ эта конфигурация, Ссли ΠΏΠ»ΠΎΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ установлСнныС Π½Π°ΠΌΠΈ значСния.Β 

Π₯ост находился ΠΏΠΎΠ΄ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ количСства Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ выполняли Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° процСссорС ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ использовали Π΄ΠΈΡΠΊΠΎΠ²ΡƒΡŽ подсистСму. ЦСль β€” ΡΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΠ»ΠΎΡ‚Π½ΠΎΡΡ‚ΡŒ размСщСния ΠΈ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΠΌΡƒΡŽ ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ, Ρ‡Π΅ΠΌ боСвая.

Помимо постоянной Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ поставили 3 Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‰ΠΈΠ΅ синтСтичСскиС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ sysbench, усрСднСнныС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ Π½ΠΈΠΆΠ΅, ΠΈ 50 Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ создавали Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ. ВсС тСстовыС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΈΠΌΠ΅Π»ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ (1 ядро, RAM 512 Π“Π±, SSD 10Π“Π±), Π² качСствС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Π²Ρ‹Π±Ρ€Π°Π½ стандартный ΠΎΠ±Ρ€Π°Π· debian 9.6, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдлагаСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π° RUVDS.

Нагрузку ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΏΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Ρƒ ΠΈ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π΅ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΠΌΡƒΡŽ с Π±ΠΎΠ΅Π²ΠΎΠΉ:

  • Π§Π°ΡΡ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин Π±Ρ‹Π»ΠΈ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ с Π½ΠΈΠ·ΠΊΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ
  • Π§Π°ΡΡ‚ΡŒ машин Β«ΠΊΡ€ΡƒΡ‚ΠΈΠ»ΠΈΒ» тСстовый сцСнарий, ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° процСссор (с использованиСм ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ stress)
  • На ΠΎΡΡ‚Π°Π²ΡˆΠ΅ΠΉΡΡ части Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΎΠΊ ΠΌΡ‹ запустили сцСнарий, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ dd для копирования Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π°Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° диск с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pv (ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ здСсь ΠΈ здСсь).

Π•Ρ‰Ρ‘, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρƒ нас Π±Ρ‹Π»ΠΈ Ρ‚Ρ€ΠΈ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‰ΠΈΠ΅ синтСтичСскиС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ.

На ΠΊΠ°ΠΆΠ΄ΠΎΠΉ машинС цикличСски Ρ€Π°Π· Π² 15 ΠΌΠΈΠ½ΡƒΡ‚ выполнялся скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСт стандартныС тСсты sysbench для процСссора, памяти ΠΈ диска.

CΠΊΡ€ΠΈΠΏΡ‚ 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 install python-pip
  • pip install 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

ВСстовая Π±Π°Π·Π° малСнького объСма:

TableΒ 

RowsCountΒ 

Data size (MB)

Index size (KB)

departmentsΒ 

9

0.02

16.00

dept_empΒ 

331143Β 

11.52

5648.00

dept_managerΒ 

24Β 

0.02

16.00

employeesΒ 

299379Β 

14.52

0.00

salariesΒ 

2838426Β 

95.63

0.00Β 

titlesΒ 

442783Β 

19.56

0.00

ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ тСстовый сСрвис написан Π½Π° ΠΊΠΎΠ»Π΅Π½ΠΊΠ΅ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅, ΠΎΠ½ выполняСт Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

  1. getState: Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ статус
  2. getEmployee: Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ· Π±Π°Π·Ρ‹ employee (+salaries, +titles)
  3. patchEmployee: измСняСт поля employee
  4. insertSalary: выполняСт вставку salary

Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊ сСрвиса (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

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ усрСднСнныС значСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° запросы:

Label

Average

Median

90% Line

95% Line

99% Line

Min

Max

getEmployee

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

patchEmployee

161.42

83.29

308

492.57

1845.14

5

6639.4

putSalary

167.21

86.93

315.34

501.07

1927.12

7

6722.44

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ слоТно ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ синтСтичСским Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ ΡΡƒΠ΄ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, насколько ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹ΠΉ VPS ΠΏΠΎΠ΄ ваши ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ, пСрСчислСнныС способы ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚Π΅ΠΌΠΈ кСйсами, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π½Π°ΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π² Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ.Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ наш список явно Π½Π΅ ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ. ΠŸΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ Π²Π°ΠΌ самим ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΈ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сСрвСр Π·Π° 30 Ρ€ΡƒΠ±Π»Π΅ΠΉ Π½Π° Π²Π°ΡˆΠΈΡ… Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… прилоТСниях ΠΈ Π·Π°Π΄Π°Ρ‡Π°Ρ… ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π² коммСнтариях свои Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ для Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ