рдорд╕реНрддрд┐рд╖реНрдХ + VPS 30 rubles рдХреЛ рд▓рд╛рдЧрд┐ =?

рдпреЛ рдзреЗрд░реИ рд░рд╛рдореНрд░реЛ рдЫ рдЬрдм рд╕рдмреИ рдЖрд╡рд╢реНрдпрдХ рд╕рд╛рдирд╛ рдЪреАрдЬрд╣рд░реВ рд╣рд╛рддрдорд╛ рд╣реБрдиреНрдЫрдиреН: рдПрдЙрдЯрд╛ рд░рд╛рдореНрд░реЛ рдХрд▓рдо рд░ рдиреЛрдЯрдкреНрдпрд╛рдб, рдПрдХ рддрд┐рдЦрд╛рд░рд┐рдПрдХреЛ рдкреЗрдиреНрд╕рд┐рд▓, рдПрдХ рдЖрд░рд╛рдорджрд╛рдпрдХ рдорд╛рдЙрд╕, рдПрдХ рдЬреЛрдбреА рдЕрддрд┐рд░рд┐рдХреНрдд рддрд╛рд░, рдЖрджрд┐ред рдпреА рдЕрд╕реНрдкрд╖реНрдЯ рдЪреАрдЬрд╣рд░реВрд▓реЗ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдЧрд░реНрджреИрди, рддрд░ рдЬреАрд╡рдирдорд╛ рдЖрд░рд╛рдо рдердкреНрдЫрдиреНред рдПрдЙрдЯреИ рдХрдерд╛ рд╡рд┐рднрд┐рдиреНрди рдореЛрдмрд╛рдЗрд▓ рд░ рдбреЗрд╕реНрдХрдЯрдк рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрд╕рдБрдЧ рдЫ: рд▓рд╛рдореЛ рд╕реНрдХреНрд░рд┐рдирд╕рдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рдЪрд┐рддреНрд░рдХреЛ рдЖрдХрд╛рд░ рдШрдЯрд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐, рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд┐рддреНрдд, рд╢рдмреНрджрдХреЛрд╢, рдЕрдиреБрд╡рд╛рджрдХрд╣рд░реВ, рдХрдиреНрднрд░реНрдЯрд░рд╣рд░реВ, рдЖрджрд┐ рдЧрдгрдирд╛ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ред рдХреЗ рддрдкрд╛рдИрд╕рдБрдЧ рдпрд╕реНрддреЛ рдЫ? VPS - рдЬреБрди рд╕рд╕реНрддреЛ рдЫ, рд╕рдзреИрдВ рд╣рд╛рддрдорд╛ рдЫ рд░ рдзреЗрд░реИ рдлрд╛рдЗрджрд╛рд╣рд░реВ рд▓реНрдпрд╛рдЙрдБрдЫ? рд╣реЛрдЗрди, рддрдкрд╛рдИрдХреЛ рдХрдореНрдкрдиреАрдорд╛ рднрдПрдХреЛ рд╡реНрдпрдХреНрддрд┐ рд╣реЛрдЗрди, рддрд░ рддрдкрд╛рдИрдХреЛ рдЖрдлреНрдиреИ, "рдкрдХреЗрдЯ"ред рд╣рд╛рдореАрд▓реЗ рд╕реЛрдЪреНрдпреМрдВ рдХрд┐ 2019 рдорд╛ рд╕рд╛рдиреЛ VPS рдмрд┐рдирд╛ рдпреЛ рдХреБрдиреИ рди рдХреБрдиреИ рд░реВрдкрдорд╛ рджреБ: рдЦреА рдерд┐рдпреЛ, рдЬрд╕реНрддреИ рд╡реНрдпрд╛рдЦреНрдпрд╛рдирдорд╛ рд╕рд╛рдорд╛рдиреНрдп рдлрд╛рдЙрдиреНрдЯреЗрди рдкреЗрди рдмрд┐рдирд╛ред рдХрд┐рди рджреБрдЦреА рд╣реБрдиреЗ ? рдЧрд░реНрдореА рдЫред рдЧрд░реНрдореА рдХрд╕реНрддреЛ рдЫ? рдЖрдИрдЯреА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрдХреЛ рд▓рд╛рдЧрд┐ рдЧрд░реНрдореА: рдШрд░рдорд╛ рдмрд╕реЗрд░, рдХреБрдиреИ рдкрдЫреБрддреЛ рдмрд┐рдирд╛ рдЖрдлреНрдиреЛ рдордирдкрд░реНрдиреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ рдХрд╛рдо рдЧрд░реНрджреИред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рд╣рд╛рдореАрд▓реЗ рд╕реЛрдЪреНрдпреМрдВ рд░ рдЧрд░реЗред

рдорд╕реНрддрд┐рд╖реНрдХ + VPS 30 rubles рдХреЛ рд▓рд╛рдЧрд┐ =?
рдХрдореНрдпреБрдирд┐рдЬреНрдо рдЖрдпреЛ рдХрдорд░реЗрдбрд╣рд░реВ ред

рдЙрд╣рд╛рдБ рддреНрдпрд╕реНрддреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ - рддреАрд╕рдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореНрд░реЛ VPS

рд╣рд╛рдореАрд▓реЗ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдмрд╛рдЯ рдзреЗрд░реИ рд▓реЗрдЦрд╣рд░реВ рдкрдвреЗрдХрд╛ рдЫреМрдВ рдЬрд╕рд▓реЗ 3-4 рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ рд▓реЗрдЦреЗрдХрд╛ рдерд┐рдП рдХрд┐рди рд╕рд╕реНрддреЛ VPS рдЖрд╡рд╢реНрдпрдХ рдЫреИрдиред рдареАрдХ рдЫ, рддреНрдпреЛ рд╕рд╣рд┐ рдЫ, рддреНрдпрд╕рдкрдЫрд┐ VPS "рдПрдХ рдкреИрд╕рд╛рдХреЛ рд▓рд╛рдЧрд┐" рд╢реБрджреНрдз рдорд╛рд░реНрдХреЗрдЯрд┐рдЩ рдерд┐рдпреЛ рд░ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рдо рдЧрд░реНрдиреЗ рдЕрд╡рд╕рд░рд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрди рд╕рдХреНрджреИрдиред рддрд░ рд╕рдордп рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдБрджреИрдЫ, рднрд░реНрдЪреБрдЕрд▓ рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рд▓рд╛рдЧрдд рдХрдо рд░ рдХрдо рд╣реБрдБрджреИ рдЧрдЗрд░рд╣реЗрдХреЛ рдЫ, рд░ 30 rubles рдПрдХ рдорд╣рд┐рдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореА рдпреЛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реНрди рддрдпрд╛рд░ рдЫреМрдВ:

  • рдкреНрд░реЛрд╕реЗрд╕рд░: Intel Xeon 2 GHz (1 рдХреЛрд░)
  • рд▓рд┐рдирдХреНрд╕ рдкреНрд░рдгрд╛рд▓реА (рдбреЗрдмрд┐рдпрди, Ubuntu, CentOS рдмрд╛рдЯ рдЫрдиреМрдЯ рдЧрд░реНрди)
  • рез рд╕рдорд░реНрдкрд┐рдд IPv1 рдареЗрдЧрд╛рдирд╛
  • рджреНрд░реБрдд рдЙрджреНрдпрдо-рд╡рд░реНрдЧ SSD рдбреНрд░рд╛рдЗрднрд╣рд░реВрдорд╛ 10 GB рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг
  • рд░реНрдпрд╛рдо: релрезреи рдПрдордмреА
  • рдкреНрд░рддрд┐ рд╕реЗрдХреЗрдиреНрдб рдмрд┐рд▓рд┐рдЩ
  • рдЕрд╕реАрдорд┐рдд рдпрд╛рддрд╛рдпрд╛рдд

рдЯреНрдпрд╛рд░рд┐рдл рдердк рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рдкреНрд░рддрд┐рдмрдиреНрдзрд╣рд░реВрдХреЛ рдЕрдзреАрдирдорд╛ рдЫ, рд╡рд┐рд╡рд░рдгрд╣рд░реВ рдкреГрд╖реНрда рд╣рд╛рдореНрд░реЛ рд░рд╛рдореНрд░реЛ рдкреНрд░рд╕реНрддрд╛рд╡ - 30 rubles рдХреЛ рд▓рд╛рдЧрд┐ VPSред 

рдпреЛ рднрд░реНрдЪреБрдЕрд▓ рд╕рд░реНрднрд░ рдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рдЫ? рд╣реЛ рд▓рдЧрднрдЧ рд╕рдмреИрд▓рд╛рдИ: рд╢реБрд░реБрдЖрддреАрд╣рд░реВ, рдЙрддреНрд╕рд╛рд╣реАрд╣рд░реВ, рдЕрдиреБрднрд╡реА рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ, DIY рдкреНрд░рд╢рдВрд╕рдХрд╣рд░реВ рд░ рдХреЗрд╣реА рдХрдореНрдкрдиреАрд╣рд░реВ рдкрдирд┐ред

рдпреЛ VPS рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдЙрдкрдпреБрдХреНрдд рдЫ?

рд╣рд╛рдореАрд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рдХрд┐ Habr рдХрд╛ рдкрд╛рдардХрд╣рд░реВрд▓реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдкрдорд╛ рдпреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдЖрдлреНрдиреИ рддрд░рд┐рдХрд╛ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреЗрдЫрдиреН, рддрд░ рд╣рд╛рдореАрд▓реЗ рд╡рд┐рдЪрд╛рд░рд╣рд░реВрдХреЛ рдЖрдлреНрдиреИ рдЪрдпрди рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНтАНрдпреМрдВ - рдпрджрд┐ рдХрд╕реИрд▓рд╛рдИ рдпреЛ рдЖрд╡рд╢реНрдпрдХ рдЫ, рддрд░ рдкреБрд░реБрд╖рд╣рд░реВрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫреИрди?

  • рдЖрдлреНрдиреЛ рд╕рд░рд▓ рд╡реЗрдмрд╕рд╛рдЗрдЯ, рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ, рдХреЛрдб рд╕рдВрдЧ рдкреБрдирдГрд╕реБрд░реБ, рдЖрджрд┐ рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реНред рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рддрдкрд╛рдИрдВрдХреЛ рдЖрдлреНрдиреИ рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рд╡реЗрдмрд╕рд╛рдЗрдЯрд▓реЗ рд░реЛрдЬрдЧрд╛рд░рджрд╛рддрд╛рдорд╛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рдкрд╛рд░реНрдЫред рдпрд╕рд▓рд╛рдИ рдЖрдлреНрдиреЛ VPS рдорд╛ рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реН рд░ рд╕рд╛рдЗрдЯрдХреЛ рд╕реБрд░рдХреНрд╖рд╛ рд░ рд╕реНрдерд┐рд░рддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдЖрдлреИрдВ рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рд╣реБрдиреБрд╣реЛрд╕реН, рд░ рдирд┐рдпрдорд┐рдд рд╣реЛрд╕реНрдЯрд┐рдЩ рдкреНрд░рджрд╛рдпрдХрд╣рд░реВрдХреЛ рдХрд░реНрдордЪрд╛рд░реАрджреНрд╡рд╛рд░рд╛ рд╣реЛрдЗрдиред
  • рд╢реИрдХреНрд╖рд┐рдХ рдЙрджреНрджреЗрд╢реНрдпрдХрд╛ рд▓рд╛рдЧрд┐ VPS рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН: рддрдкрд╛рдИрдВрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реЛрд╕реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╕рд░реНрднрд░ рд░ рд╕рд░реНрднрд░ рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдордХрд╛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдЕрдзреНрдпрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН, DNS рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╕рд╛рдиреЛ рд╢реИрдХреНрд╖рд┐рдХ рд╕рд╛рдЗрдЯрдХреЛ рд╕рд╛рде рдЯрд┐рдВрдХрд░ред
  • рдЯреЗрд▓рд┐рдлреЛрдирдХреЛ рд▓рд╛рдЧрд┐ред рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЙрджреНрдпрдореА, рдлреНрд░реАрд▓рд╛рдиреНрд╕рд░ рд╡рд╛ рдзреЗрд░реИ рд╕рд╛рдиреЛ рдХрдореНрдкрдиреАрд▓рд╛рдИ рдЖрдИрдкреА рдЯреЗрд▓рд┐рдлреЛрдиреАрдХреЛ рд╕рдЦреНрдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реБрдиреНрдЫ, рд░ рдпреЛ рдзреЗрд░реИ рдЯреЗрд▓рд┐рдлреЛрдиреАрдХреЛ рдЕрдкрд░реЗрдЯрд░рд╣рд░реВ рдзреЗрд░реИ рд▓реЛрднреА рд╣реБрдиреНрдЫрдиреНред рдпреЛ рд╕рд░рд▓ рдЫ: рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рд╕рд░реНрднрд░ рд▓рд┐рдиреНрдЫреМрдВ, рдЖрдИрдкреА рдЯреЗрд▓рд┐рдлреЛрдиреА рдЕрдкрд░реЗрдЯрд░рдмрд╛рдЯ рдирдореНрдмрд░ рдЦрд░рд┐рдж рдЧрд░реНрдЫреМрдВ, рднрд░реНрдЪреБрдЕрд▓ PBX рд╕реЗрдЯрдЕрдк рдЧрд░реНрдЫреМрдВ рд░ рдЖрдиреНрддрд░рд┐рдХ рдирдореНрдмрд░рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдЫреМрдВ (рдЖрд╡рд╢реНрдпрдХ рднрдПрдорд╛)ред рдмрдЪрдд рдареВрд▓реЛ рдЫред
  • рддрдкрд╛рдЗрдБрдХреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрди рд╕рд░реНрднрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
  • рд╕реНрдорд╛рд░реНрдЯ рдЧреГрд╣ рдкреНрд░рдгрд╛рд▓реА рд╕реЗрдиреНрд╕рд░рд╣рд░реВрдмрд╛рдЯ рдбреЗрдЯрд╛ рдирд┐рдпрдиреНрддреНрд░рдг рд░ рд╕рдЩреНрдХрд▓рди рд╕рд╣рд┐рдд DIY рдкреНрд░рдпреЛрдЧрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рд╕рд░реНрднрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
  • рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдПрдЙрдЯрд╛ рдЕрд╕рд╛рдорд╛рдиреНрдп рддрд░рд┐рдХрд╛ рд╕рд░реНрднрд░рдорд╛ рднрд░реНрдЪреБрдЕрд▓ рдПрдХреНрд╕рдЪреЗрдиреНрдЬ рдЯреНрд░реЗрдбрд┐рдЩ рд╕рд╣рд╛рдпрдХ, рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рд░реЛрдмреЛрдЯ рд░рд╛рдЦреНрдиреБ рд╣реЛред рддрдкрд╛рдИрдВ рд╕рд░реНрднрд░рдХреЛ рд╕реНрдерд┐рд░рддрд╛ рд░ рд╕реБрд░рдХреНрд╖рд╛рдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рд╣реБрдиреБрд╣реБрдиреЗрдЫ, рдЬрд╕рдХреЛ рдорддрд▓рдм рддрдкрд╛рдИрдВрд▓реЗ рд╕реНрдЯрдХ рдмрдЬрд╛рд░рд╣рд░реВрдорд╛ рд╡реНрдпрд╛рдкрд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рдпрдиреНрддреНрд░рд┐рдд рдЙрдкрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реБрдиреЗрдЫред рдЦреИрд░, рдпрджрд┐ рдХрд╕реИрд▓рд╛рдИ рдЪрд╛рд╕реЛ рд╡рд╛ рдпреЛрдЬрдирд╛ рдЫ :)

рдХрд░реНрдкреЛрд░реЗрдЯ рдХреНрд╖реЗрддреНрд░рдорд╛ рддреНрдпрд╕реНрддрд╛ VPS рдХреЛ рд▓рд╛рдЧреА рдЖрд╡реЗрджрдирд╣рд░реВ рдЫрдиреНред рдкрд╣рд┐рд▓реЗ рдиреИ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдПрдХреЛ рдЯреЗрд▓рд┐рдлреЛрди рд╕реЗрд╡рд╛рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рддрдкрд╛рдИрдВ рдзреЗрд░реИ рд░реЛрдЪрдХ рдХреБрд░рд╛рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐:

  • рд╕рд╛рдирд╛ рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВ рд░ рдЬрд╛рдирдХрд╛рд░реА рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реН рдЬреБрди рдЯрд╛рдврд╛рдорд╛ рдпрд╛рддреНрд░рд╛ рдЧрд░реНрдиреЗ рдХрд░реНрдордЪрд╛рд░реАрд╣рд░реВрд▓рд╛рдИ рдкрд╣реБрдБрдЪрдпреЛрдЧреНрдп рд╣реБрдиреЗрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, ftp рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ред рдпрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдзреЗрд░реИ рдЪрд╛рдБрдбреИ рддрд╛рдЬрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╣рд░реВ, рдмрд┐рдХреНрд░реА рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд╣рд░реВ, рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдгрд╣рд░реВ, рдЖрджрд┐ рдЖрджрд╛рди рдкреНрд░рджрд╛рди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫред
  • рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╡рд╛ рдорд┐рдбрд┐рдпрд╛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрд▓рд╛рдИ рдЕрд╕реНрдерд╛рдпреА рдкрд╣реБрдБрдЪ рджрд┐рдиреБрд╣реЛрд╕реНред

рейреж rubles рдХреЛ рд▓рд╛рдЧрд┐ VPS рдЯреЗрд╕реНрдЯ рдбреНрд░рд╛рдЗрдн - рддрдкрд╛рдИрдВрдХреЛ рд▓рд╛рдЧрд┐ рдЧрд░рд┐рдпреЛ

30 rubles рдпрддрд┐ рдереЛрд░реИ рдЫ рдХрд┐ рддрдкрд╛рдИрдВ рднреБрдХреНрддрд╛рди рдЧрд░реНрди рд░ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрди рдХрд╛рд░реНрдб рдирд┐рдХрд╛рд▓реНрди рдкрдирд┐ рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдиред рд╣рд╛рдореА рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рдзреЗрд░реИ рдЕрд▓реНрдЫреА рдкрдирд┐ рдЫреМрдВ, рддрд░ рдпрд╕ рдкрдЯрдХ рд╣рд╛рдореАрд▓реЗ рддрдкрд╛рдИрдВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдмреИ рдЧрд░реНрдпреМрдВред рд╕рд░реНрднрд░рд╣рд░реВ рдпреБрджреНрдзрдорд╛ рд╕реБрд░реВ рдЧрд░реНрдиреБ рдЕрдШрд┐, рд╣рд╛рдореАрд▓реЗ рд╕рдмреИ рд╡рд┐рд╡рд░рдгрд╣рд░реВ рдЬрд╛рдБрдЪ рдЧрд░реНрди рд░ рдпрд╕ рдЯреНрдпрд╛рд░рд┐рдлрдорд╛ рд╕рд░реНрднрд░рд╣рд░реВ рдХреЗ рд╕рдХреНрд╖рдо рдЫрдиреН рднрдиреЗрд░ рджреЗрдЦрд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрдпреМрдВред рдпрд╕рд▓рд╛рдИ рдердк рдЪрд╛рдЦрд▓рд╛рдЧреНрджреЛ рдмрдирд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓реЗ рдЪрд░рдо рдердкреНрдпреМрдВ рд░ рдЬрд╛рдБрдЪ рдЧрд░реНрдпреМрдВ рдХрд┐ рдпреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд▓реЗ рдХрд╕рд░реА рд╡реНрдпрд╡рд╣рд╛рд░ рдЧрд░реНрдЫ рдпрджрд┐ рдШрдирддреНрд╡ рд░ рд▓реЛрдбрд▓реЗ рд╣рд╛рдореАрд▓реЗ рд╕реЗрдЯ рдЧрд░реЗрдХрд╛ рдорд╛рдирд╣рд░реВ рдирд╛рдШреНрдпреЛред 

рд╣реЛрд╕реНрдЯ рдзреЗрд░реИ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВрдХреЛ рд▓реЛрдб рдЕрдиреНрддрд░реНрдЧрдд рдерд┐рдпреЛ рдЬрд╕рд▓реЗ рдкреНрд░реЛрд╕реЗрд╕рд░рдорд╛ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдпреЛ рд░ рд╕рдХреНрд░рд┐рдп рд░реВрдкрдорд╛ рдбрд┐рд╕реНрдХ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдпреЛред рд▓рдХреНрд╖реНрдп рднрдиреЗрдХреЛ рдкреНрд▓реЗрд╕рдореЗрдиреНрдЯрдХреЛ рдЙрдЪреНрдЪ рдШрдирддреНрд╡ рд░ рд▓рдбрд╛рдИрд╕рдБрдЧ рддреБрд▓рдирд╛ рдЧрд░реНрди рдорд┐рд▓реНрдиреЗ рд╡рд╛ рддреНрдпреЛрднрдиреНрджрд╛ рдареВрд▓реЛ рд▓реЛрдбрдХреЛ рдирдХреНрдХрд▓ рдЧрд░реНрдиреБ рд╣реЛред

рд╕реНрдерд┐рд░ рд▓реЛрдбрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╣рд╛рдореАрд▓реЗ 3 рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдпреМрдВ рдЬрд╕рд▓реЗ sysbench рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рд╕рдЩреНрдХрд▓рди рдЧрд░реНтАНрдпреЛ, рдЬрд╕рдХреЛ рдФрд╕рдд рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рддрд▓ рджрд┐рдЗрдпреЛ, рд░ 50 рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВ рдЬрд╕рд▓реЗ рдердк рд▓реЛрдб рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНтАНрдпреЛред рд╕рдмреИ рдкрд░реАрдХреНрд╖рдг рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВрдорд╛ рд╕рдорд╛рди рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдерд┐рдпреЛ (1 рдХреЛрд░, RAM 512 GB, SSD 10 GB), рдорд╛рдирдХ рдбреЗрдмрд┐рдпрди 9.6 рдЫрд╡рд┐ рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдордХреЛ рд░реВрдкрдорд╛ рдЪрдпрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рдЬреБрди RUVDS рдорд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫред

рд▓реЛрдб рдкреНрд░рдХреГрддрд┐ рд░ рд▓рдбрд╛рдИ рдХреЛ рддреБрд▓рдирд╛ рдорд╛ рдкрд░рд┐рдорд╛рдг рдорд╛ рдирдХреНрдХрд▓ рдерд┐рдпреЛ:

  • рдХреЗрд╣реА рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВ рдХрдо рд▓реЛрдбрдХреЛ рд╕рд╛рде рд╕реБрд░реВ рдЧрд░рд┐рдпреЛ
  • рдХреЗрд╣рд┐ рдореЗрд╢рд┐рдирд╣рд░реВрд▓реЗ рдкреНрд░реЛрд╕реЗрд╕рд░рдорд╛ рд▓реЛрдб рд╕рд┐рдореБрд▓реЗрдЯ рдЧрд░реНрджреИ рдкрд░реАрдХреНрд╖рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдП (рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рддрдирд╛рд╡)
  • рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВрдХреЛ рдмрд╛рдБрдХреА рднрд╛рдЧрдорд╛, рд╣рд╛рдореАрд▓реЗ pv рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реАрдорд╛ рд╕реЗрдЯрдХреЛ рд╕рд╛рде рдбрд┐рд╕реНрдХрдорд╛ рдкреВрд░реНрд╡-рддрдпрд╛рд░ рдбрд╛рдЯрд╛рдмрд╛рдЯ рдбрд╛рдЯрд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрди dd рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдпреМрдВ (рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рджреЗрдЦреНрди рд╕рдХрд┐рдиреНрдЫред рдпрд╣рд╛рдБ ╨╕ рдпрд╣рд╛рдБ).

рд╕рд╛рдереИ, рддрдкрд╛рдИрд▓рд╛рдИ рд╕рдореНрдЭрдирд╛ рдЕрдиреБрд╕рд╛рд░, рд╣рд╛рдореАрд╕рдБрдЧ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдиреЗ рддреАрдирд╡рдЯрд╛ рдореЗрд╕рд┐рдирд╣рд░реВ рдерд┐рдПред

рдкреНрд░рддреНрдпреЗрдХ рдореЗрд╕рд┐рдирдорд╛, рдкреНрд░рддреНрдпреЗрдХ 15 рдорд┐рдиреЗрдЯрдорд╛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрдХреНрд░реАрдп рд░реВрдкрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рдЬрд╕рд▓реЗ рдкреНрд░реЛрд╕реЗрд╕рд░, рдореЗрдореЛрд░реА рд░ рдбрд┐рд╕реНрдХрдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рдирдХ sysbench рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЪрд▓рд╛рдЙрдБрдЫред

Script 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 upgrade
  • apt-get python-pip рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН
  • pip рд╕реНрдерд╛рдкрдирд╛ mysql-connector-python-rf

рдорд╛рд░рд┐рдпрд╛рдбреАрдмреА рд╕реНрдерд╛рдкрдирд╛ рдЧрд░рд┐рдпреЛ, рдХрд╕рд░реА рдЧрд░реНрдиреЗ рдпрд╣рд╛рдБ:

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

рд╕рд╛рдиреЛ рдкрд░реАрдХреНрд╖рдг рдЖрдзрд╛рд░:

рддрд╛рд▓рд┐рдХрд╛ 

рдкрдЩреНрдХреНрддрд┐ рдЧрдгрдирд╛ 

рдбрд╛рдЯрд╛ рд╕рд╛рдЗрдЬ (рдПрдордмреА)

рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдЖрдХрд╛рд░ (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

рдкрд╛рдЗрдерди рдорд╛ рдШреБрдБрдбрд╛ рдорд╛ рдПрдХ рдЖрджрд┐рдо рдкрд░реАрдХреНрд╖рдг рд╕реЗрд╡рд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ; рдпрд╕рд▓реЗ рдЪрд╛рд░ рдЕрдкрд░реЗрд╢рди рдЧрд░реНрджрдЫ:

  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

рддрд▓ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдФрд╕рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордпрд╣рд░реВ рдЫрдиреН:

рд▓реЗрдмрд▓

рдФрд╕рдд

рдореЗрдбрд┐рдпрди

репреж% рд░реЗрдЦрд╛

репреж% рд░реЗрдЦрд╛

репреж% рд░реЗрдЦрд╛

рдиреНрдпреВрдирддрдо

рдЕрдзрд┐рдХрддрдо

рдХрд░реНрдордЪрд╛рд░реА рдкрд╛рдЙрдиреБрд╣реЛрд╕реН

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 rubles рдХреЛ рд▓рд╛рдЧрд┐ рд╕рд░реНрднрд░ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрди рд░ рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВрдорд╛ рдпреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдХреЛ рд▓рд╛рдЧрд┐ рддрдкрд╛рдЗрдБрдХрд╛ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рд╕реБрдЭрд╛рд╡ рджрд┐рди рдЖрдордиреНрддреНрд░рд┐рдд рдЧрд░реНрджрдЫреМрдВред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди