рдЬреЗрд╡реНрд╣рд╛ рд╕рд░реНрд╡ рдЖрд╡рд╢реНрдпрдХ рдЫреЛрдЯреНрдпрд╛ рдЧреЛрд╖реНрдЯреА рд╣рд╛рддрд╛рдд рдЕрд╕рддрд╛рдд рддреЗрд╡реНрд╣рд╛ рддреЗ рдЦреВрдк рдЫрд╛рди рдЕрд╕рддреЗ: рдПрдХ рдЪрд╛рдВрдЧрд▓рд╛ рдкреЗрди рдЖрдгрд┐ рдиреЛрдЯрдкреЕрдб, рдПрдХ рдзрд╛рд░рджрд╛рд░ рдкреЗрдиреНрд╕рд┐рд▓, рдПрдХ рдЖрд░рд╛рдорджрд╛рдпрдХ рдорд╛рдЙрд╕, рджреЛрди рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд╛рдпрд░ рдЗ. рдпрд╛ рдЕрд╕реНрдкрд╖реНрдЯ рдЧреЛрд╖реНрдЯреА рд▓рдХреНрд╖ рд╡реЗрдзреВрди рдШреЗрдд рдирд╛рд╣реАрдд, рдкрд░рдВрддреБ рдЬреАрд╡рдирд╛рдд рдЖрд░рд╛рдо рджреЗрддрд╛рдд. рд╣реАрдЪ рдХрдерд╛ рд╡рд┐рд╡рд┐рдз рдореЛрдмрд╛рдЗрд▓ рдЖрдгрд┐ рдбреЗрд╕реНрдХрдЯреЙрдк рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреА рдЖрд╣реЗ: рд▓рд╛рдВрдм рд╕реНрдХреНрд░реАрдирд╢реЙрдЯрд╕рд╛рдареА, рдЪрд┐рддреНрд░рд╛рдЪрд╛ рдЖрдХрд╛рд░ рдХрдореА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд╡реИрдпрдХреНрддрд┐рдХ рдЖрд░реНрдерд┐рдХ рдЧрдгрдирд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд╢рдмреНрджрдХреЛрд╢, рдЕрдиреБрд╡рд╛рджрдХ, рдХрдиреНрд╡реНрд╣рд░реНрдЯрд░ рдЗ. рддреБрдЭреНрдпрд╛ рдХрдбреЗ рдЖрд╣реЗ рдХрд╛?
рд╕рд╛рдореНрдпрд╡рд╛рдж рдЖрд▓рд╛ рдЖрд╣реЗ рдХреЙрдореНрд░реЗрдбреНрд╕.
рддреЛ рддрд╕рд╛ рдЖрд╣реЗ - рдЖрдордЪрд╛ рд╡реНрд╣реАрдкреАрдПрд╕ рдлреЙрд░ рддреАрд╕
рдЖрдореНрд╣реА рд╕реНрдкрд░реНрдзрдХ рдЖрдгрд┐ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдЪреЗ рдмрд░реЗрдЪ рд▓реЗрдЦ рд╡рд╛рдЪрд▓реЗ рдЖрд╣реЗрдд рдЬреНрдпрд╛рдВрдиреА 3-4 рд╡рд░реНрд╖рд╛рдВрдкреВрд░реНрд╡реА рд▓рд┐рд╣рд┐рд▓реЗ рд╣реЛрддреЗ рдХреА рд╕реНрд╡рд╕реНрдд VPS рдХрд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╛рд╣реА. рдмрд░рдВ, рддреЗ рдмрд░реЛрдмрд░ рдЖрд╣реЗ, рдордЧ VPS тАЬрдПрдХ рдкреИрдиреАрд╕рд╛рдареАтАЭ рд╢реБрджреНрдз рд╡рд┐рдкрдгрди рд╣реЛрддреЗ рдЖрдгрд┐ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рдорд╛рдЪреНрдпрд╛ рд╕рдВрдзреА рджреЗрдК рд╢рдХрдд рдирд╡реНрд╣рддреЗ. рдкрд░рдВрддреБ рд╡реЗрд│ рдмрджрд▓рдд рдЖрд╣реЗ, рдЖрднрд╛рд╕реА рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреА рдХрд┐рдВрдордд рдХрдореА рдЖрдгрд┐ рдХрдореА рд╣реЛрдд рдЖрд╣реЗ рдЖрдгрд┐ рдорд╣рд┐рдиреНрдпрд╛рд▓рд╛ 30 рд░реВрдмрд▓рд╕рд╛рдареА рдЖрдореНрд╣реА рд╣реЗ рдСрдлрд░ рдХрд░рдгреНрдпрд╛рд╕ рддрдпрд╛рд░ рдЖрд╣реЛрдд:
- рдкреНрд░реЛрд╕реЗрд╕рд░: рдЗрдВрдЯреЗрд▓ Xeon 2 GHz (1 рдХреЛрд░)
- рд▓рд┐рдирдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо (рдирд┐рд╡рдбрдгреНрдпрд╛рд╕рд╛рдареА рдбреЗрдмрд┐рдпрди, рдЙрдмрдВрдЯреВ, рд╕реЗрдВрдЯреЛрд╕)
- 1 рд╕рдорд░реНрдкрд┐рдд IPv4 рдкрддреНрддрд╛
- рдЬрд▓рдж рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЭ-рдХреНрд▓рд╛рд╕ SSD рдбреНрд░рд╛рдЗрд╡реНрд╣рд╡рд░ 10 GB рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ
- рд░реЕрдо: 512 MB
- рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж рдмрд┐рд▓рд┐рдВрдЧ
- рдЕрдорд░реНрдпрд╛рджрд┐рдд рд░рд╣рджрд╛рд░реА
рдЯреЕрд░рд┐рдл рдЕрддрд┐рд░рд┐рдХреНрдд рддрд╛рдВрддреНрд░рд┐рдХ рдирд┐рд░реНрдмрдВрдзрд╛рдВрдЪреНрдпрд╛ рдЕрдзреАрди рдЖрд╣реЗ, рддрдкрд╢реАрд▓ рд╡рд░
рд╣рд╛ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рд╕рд░реНрд╡реНрд╣рд░ рдХреЛрдгрд╛рд╕рд╛рдареА рдпреЛрдЧреНрдп рдЖрд╣реЗ? рд╣реЛрдп рдЬрд╡рд│рдЬрд╡рд│ рдкреНрд░рддреНрдпреЗрдХрд╛рд╕рд╛рдареА: рдирд╡рд╢рд┐рдХреНрдпрд╛, рдЙрддреНрд╕рд╛рд╣реА, рдЕрдиреБрднрд╡реА рд╡рд┐рдХрд╛рд╕рдХ, DIY рдЪрд╛рд╣рддреЗ рдЖрдгрд┐ рдЕрдЧрджреА рдХрд╛рд╣реА рдХрдВрдкрдиреНрдпрд╛.
рд╣реЗ VPS рдХрд╢рд╛рд╕рд╛рдареА рдпреЛрдЧреНрдп рдЖрд╣реЗ?
рдЖрдореНтАНрд╣рд╛рд▓рд╛ рд╡рд╛рдЯрддреЗ рдХреА рд╣реЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╡рд╛рдкрд░рдгреНтАНрдпрд╛рдЪрд╛ рд╣рд╛рдмреНрд░рдЪреНтАНрдпрд╛ рд╡рд╛рдЪрдХрд╛рдВрдирд╛ рд╕реНтАНрд╡рдд:рдЪрд╛ рдорд╛рд░реНрдЧ рд╕рд╛рдкрдбреЗрд▓, рдкрд░рдВрддреБ рдЖрдореНтАНрд╣реА рдЖрдордЪреНтАНрдпрд╛ рд╕реНтАНрд╡рдд:рдЪреНтАНрдпрд╛ рдирд┐рд╡рдбреАрдЪреНтАНрдпрд╛ рдХрд▓реНрдкрдирд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдгреНтАНрдпрд╛рдЪреЗ рдард░рд╡рд▓реЗ - рдЬрд░ рдХреЛрдгрд╛рд▓рд╛ рдпрд╛рдЪреА рдЖрд╡рд╢реНтАНрдпрдХрддрд╛ рдЕрд╕реЗрд▓, рдкрд░рдВрддреБ рдкреБрд░реБрд╖рд╛рдВрдирд╛ рдорд╛рд╣рд┐рдд рдирд╕реЗрд▓ рддрд░?
- рддреБрдордЪреА рд╕рд╛рдзреА рд╡реЗрдмрд╕рд╛рдЗрдЯ, рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдУ, рдХреЛрдбрд╕рд╣ рд░реЗрдЭреНрдпреБрдореЗ рдЗ. рдареЗрд╡рд╛. рдЕрд░реНрдерд╛рдд, рддреБрдордЪреА рд╕реНрд╡рддрдГрдЪреА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдирд┐рдпреЛрдХреНрддреНрдпрд╛рд╡рд░ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЫрд╛рдк рдкрд╛рдбрддреЗ. рддреЗ рддреБрдордЪреНрдпрд╛ VPS рд╡рд░ рдареЗрд╡рд╛ рдЖрдгрд┐ рд╕рд╛рдЗрдЯрдЪреНрдпрд╛ рд╕реБрд░рдХреНрд╖рд┐рддрддреЗрд╕рд╛рдареА рдЖрдгрд┐ рд╕реНрдерд┐рд░рддреЗрд╕рд╛рдареА рд╕реНрд╡рдд: рдЬрдмрд╛рдмрджрд╛рд░ рд░рд╣рд╛, рдирд┐рдпрдорд┐рдд рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рджрд╛рддреНрдпрд╛рдВрдЪреЗ рдХрд░реНрдордЪрд╛рд░реА рдирд╛рд╣реА.
- рд╢реИрдХреНрд╖рдгрд┐рдХ рд╣реЗрддреВрдВрд╕рд╛рдареА VPS рд╡рд╛рдкрд░рд╛: рддреБрдордЪрд╛ рдкреНрд░рдХрд▓реНрдк рд╣реЛрд╕реНрдЯ рдХрд░рд╛, рд╕рд░реНрд╡реНрд╣рд░ рдЖрдгрд┐ рд╕рд░реНрд╡реНрд╣рд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдордЪреНрдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рд╛, DNS рд╕рд╣ рдкреНрд░рдпреЛрдЧ рдХрд░рд╛, рд▓рд╣рд╛рди рд╢реИрдХреНрд╖рдгрд┐рдХ рд╕рд╛рдЗрдЯрд╕рд╣ рдЯрд┐рдВрдХрд░ рдХрд░рд╛.
- рдЯреЗрд▓рд┐рдлреЛрдиреАрд╕рд╛рдареА. рдХрдзреАрдХрдзреА рд╡реИрдпрдХреНрддрд┐рдХ рдЙрджреНрдпреЛрдЬрдХ, рдлреНрд░реАрд▓рд╛рдВрд╕рд░ рдХрд┐рдВрд╡рд╛ рдЕрдЧрджреА рд▓рд╣рд╛рди рдХрдВрдкрдиреАрд▓рд╛ рдЖрдпрдкреА рдЯреЗрд▓рд┐рдлреЛрдиреАрдЪреА рдирд┐рддрд╛рдВрдд рдЧрд░рдЬ рдЕрд╕рддреЗ рдЖрдгрд┐ рдпрд╛ рдЯреЗрд▓реАрдлреЛрдиреАрдЪреЗ рдСрдкрд░реЗрдЯрд░ рдЦреВрдк рд▓реЛрднреА рдЕрд╕рддрд╛рдд. рд╣реЗ рд╕реЛрдкреЗ рдЖрд╣реЗ: рдЖрдореНрд╣реА рдЖрдордЪрд╛ рд╕рд░реНрд╡реНрд╣рд░ рдШреЗрддреЛ, рдЖрдпрдкреА рдЯреЗрд▓рд┐рдлреЛрдиреА рдСрдкрд░реЗрдЯрд░рдХрдбреВрди рдирдВрдмрд░ рдЦрд░реЗрджреА рдХрд░рддреЛ, рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдкреАрдмреАрдПрдХреНрд╕ рд╕реЗрдЯ рдХрд░рддреЛ рдЖрдгрд┐ рдЕрдВрддрд░реНрдЧрдд рдирдВрдмрд░ рддрдпрд╛рд░ рдХрд░рддреЛ (рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕). рдмрдЪрдд рдкреНрд░рдЪрдВрдб рдЖрд╣реЗ.
- рддреБрдордЪреНрдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдЪреА рдЪрд╛рдЪрдгреА рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡реНрд╣рд░ рд╡рд╛рдкрд░рд╛.
- DIY рдкреНрд░рдпреЛрдЧрд╛рдВрд╕рд╛рдареА рд╕рд░реНрд╡реНрд╣рд░ рд╡рд╛рдкрд░рд╛, рдЬреНрдпрд╛рдордзреНрдпреЗ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдиреНрд╕рд░рдЪрд╛ рдбреЗрдЯрд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдгреЗ рдЖрдгрд┐ рдЧреЛрд│рд╛ рдХрд░рдгреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ.
- рддреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдПрдХ рдЕрд╕рд╛рдорд╛рдиреНрдп рдорд╛рд░реНрдЧ рдореНрд╣рдгрдЬреЗ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдЯреНрд░реЗрдбрд┐рдВрдЧ рдЕрд╕рд┐рд╕реНрдЯрдВрдЯ, рдЯреНрд░реЗрдбрд┐рдВрдЧ рд░реЛрдмреЛрдЯ рдареЗрд╡рдгреЗ. рддреБрдореНрд╣реА рд╕рд░реНрд╡реНрд╣рд░рдЪреНрдпрд╛ рд╕реНрдерд┐рд░рддреЗрд╕рд╛рдареА рдЖрдгрд┐ рд╕реБрд░рдХреНрд╖рд┐рддрддреЗрд╕рд╛рдареА рдкреВрд░реНрдгрдкрдгреЗ рдЬрдмрд╛рдмрджрд╛рд░ рдЕрд╕рд╛рд▓, рдпрд╛рдЪрд╛ рдЕрд░реНрде рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реНрдЯреЙрдХ рдорд╛рд░реНрдХреЗрдЯрдордзреНрдпреЗ рдЯреНрд░реЗрдбрд┐рдВрдЧ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╕рд╛рдзрди рдорд┐рд│реЗрд▓. рдмрд░рдВ, рдЬрд░ рдХреЛрдгрд╛рд▓рд╛ рд╕реНрд╡рд╛рд░рд╕реНрдп рдЕрд╕реЗрд▓ рдХрд┐рдВрд╡рд╛ рдирд┐рдпреЛрдЬрди рдЕрд╕реЗрд▓ рддрд░ :)
рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдХреНрд╖реЗрддреНрд░рд╛рдд рдЕрд╢рд╛ VPS рд╕рд╛рдареА рдЕрд░реНрдЬ рдЖрд╣реЗрдд. рдЖрдзреАрдЪ рдирдореВрдж рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЯреЗрд▓рд┐рдлреЛрди рд╕реЗрд╡реЗрд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЖрдкрдг рдЕрдиреЗрдХ рдордиреЛрд░рдВрдЬрдХ рдЧреЛрд╖реНрдЯреА рдЕрдВрдорд▓рд╛рдд рдЖрдгреВ рд╢рдХрддрд╛. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде:
- рдЕрдВрддрд░рд╛рд╡рд░ рдкреНрд░рд╡рд╛рд╕ рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рдХрд░реНрдордЪрд╛рд░реНтАНрдпрд╛рдВрд╕рд╛рдареА рдкреНрд░рд╡реЗрд╢рдпреЛрдЧреНрдп рдЕрд╕реЗрд▓ рдЕрд╕реЗ рдЫреЛрдЯреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдгрд┐ рдорд╛рд╣рд┐рддреА рдареЗрд╡рд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, ftp рд╡рд╛рдкрд░реВрди. рд╣реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рддрд╛рдЬреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдгреЗ, рд╡рд┐рдХреНрд░реА рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рд▓реЛрдХрд╛рдВрд╕рд╛рдареА рдЕрджреНрдпрдпрд╛рд╡рдд рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди, рд╕рд╛рджрд░реАрдХрд░рдгреЗ рдЗрддреНрдпрд╛рджреАрдВрдЪреА рддреНрд╡рд░рд┐рдд рджреЗрд╡рд╛рдгрдШреЗрд╡рд╛рдг рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрдИрд▓.
- рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдХрд┐рдВрд╡рд╛ рдореАрдбрд┐рдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдХрд┐рдВрд╡рд╛ рдХреНрд▓рд╛рдпрдВрдЯрдирд╛ рддрд╛рддреНрдкреБрд░рддрд╛ рдкреНрд░рд╡реЗрд╢ рджреНрдпрд╛.
30 рд░реВрдмрд▓рд╕рд╛рдареА VPS рдЪрд╛рдЪрдгреА рдбреНрд░рд╛рдЗрд╡реНрд╣ - рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА рдкреВрд░реНрдг рдХреЗрд▓реЗ
30 рд░реВрдмрд▓ рдЗрддрдХреЗ рдХрдореА рдЖрд╣реЗрдд рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ рдкреИрд╕реЗ рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдЪрд╛рдЪрдгреАрд╕рд╛рдареА рдХрд╛рд░реНрдб рджреЗрдЦреАрд▓ рдХрд╛рдврд╛рдпрдЪреЗ рдирд╛рд╣реА. рдЖрдореНрд╣реА рдХрдзреАрдХрдзреА рдЦреВрдк рдЖрд│рд╢реА рдЕрд╕рддреЛ, рдкрд░рдВрддреБ рдпрд╛рд╡реЗрд│реА рдЖрдореНрд╣реА рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡рдХрд╛рд╣реА рдХреЗрд▓реЗ. рд╕рд░реНрд╡реНрд╣рд░рд▓рд╛ рдпреБрджреНрдзрд╛рдд рд▓рд╛рдБрдЪ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рдЖрдореНрд╣реА рд╕рд░реНрд╡ рддрдкрд╢реАрд▓ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдпрд╛ рдЯреЕрд░рд┐рдлрдордзреНрдпреЗ рд╕рд░реНрд╡реНрд╣рд░ рдХрд╛рдп рд╕рдХреНрд╖рдо рдЖрд╣реЗрдд рд╣реЗ рджрд░реНрд╢рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдЪрд╛рдЪрдгреА рдШреЗрддрд▓реА. рддреЗ рдЕрдзрд┐рдХ рдордиреЛрд░рдВрдЬрдХ рдмрдирд╡рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдЕрддреНрдпрдВрдд рдЬреЛрдбрд▓реЗ рдЖрдгрд┐ рдШрдирддрд╛ рдЖрдгрд┐ рд▓реЛрдбрдиреЗ рдЖрдореНрд╣реА рд╕реЗрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдореВрд▓реНрдпрд╛рдВрдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЕрд╕рд▓реНрдпрд╛рд╕ рд╣реЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдХрд╕реЗ рд╡рд╛рдЧреЗрд▓ рддреЗ рддрдкрд╛рд╕рд▓реЗ.
рд╣реЛрд╕реНрдЯ рдЕрдиреЗрдХ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирдЪреНрдпрд╛ рднрд╛рд░рд╛рдЦрд╛рд▓реА рд╣реЛрддрд╛ рдЬреНрдпрд╛рдиреЗ рдкреНрд░реЛрд╕реЗрд╕рд░рд╡рд░ рд╡рд┐рд╡рд┐рдз рдХрд╛рд░реНрдпреЗ рдХреЗрд▓реА рдЖрдгрд┐ рдбрд┐рд╕реНрдХ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рд╕рдХреНрд░рд┐рдпрдкрдгреЗ рд╡рд╛рдкрд░рд▓реА. рдкреНрд▓реЗрд╕рдореЗрдВрдЯрдЪреА рдЙрдЪреНрдЪ рдШрдирддрд╛ рдЖрдгрд┐ рд▓рдврд╛рдК рднрд╛рд░рд╛рд╢реА рддреБрд▓рдиреЗрдиреЗ рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рд╣реВрди рдЕрдзрд┐рдХ рд▓реЛрдбрдЪреЗ рдЕрдиреБрдХрд░рдг рдХрд░рдгреЗ рд╣реЗ рдзреНрдпреЗрдп рдЖрд╣реЗ.
рд╕реНрдерд┐рд░ рд▓реЛрдб рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЖрдореНрд╣реА 3 рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реНрдпрд╛ рдЬреНрдпрд╛рдВрдиреА sysbench рд╡рд╛рдкрд░реВрди рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдЧреЛрд│рд╛ рдХреЗрд▓реЗ, рдЬреНрдпрд╛рдЪреЗ рд╕рд░рд╛рд╕рд░реА рдкрд░рд┐рдгрд╛рдо рдЦрд╛рд▓реА рджрд┐рд▓реЗ рдЖрд╣реЗрдд рдЖрдгрд┐ 50 рдЖрднрд╛рд╕реА рдорд╢реАрди рдЬреНрдпрд╛рдВрдиреА рдЕрддрд┐рд░рд┐рдХреНрдд рднрд╛рд░ рддрдпрд╛рд░ рдХреЗрд▓рд╛. рд╕рд░реНрд╡ рдЪрд╛рдЪрдгреА рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдиреНрд╕рдордзреНрдпреЗ рд╕рдорд╛рди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╣реЛрддреЗ (1 рдХреЛрд░, рд░реЕрдо 512 рдЬреАрдмреА, рдПрд╕рдПрд╕рдбреА 10 рдЬреАрдмреА), рдорд╛рдирдХ рдбреЗрдмрд┐рдпрди 9.6 рдкреНрд░рддрд┐рдорд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореНрд╣рдгреВрди рдирд┐рд╡рдбрд▓реА рдЧреЗрд▓реА рд╣реЛрддреА, рдЬреА RUVDS рд╡рд░ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рдСрдлрд░ рдХреЗрд▓реА рдЬрд╛рддреЗ.
рднрд╛рд░ рдирд┐рд╕рд░реНрдЧрд╛рдд рдЖрдгрд┐ рд▓рдврд╛рдИрд╢реА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рдпреЗрдгрд╛рд░реНтАНрдпрд╛ рдкрд░рд┐рдорд╛рдгрд╛рдд рдирдХреНрдХрд▓ рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛:
- рдХрд╛рд╣реА рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди рдХрдореА рд▓реЛрдбрд╕рд╣ рд▓реЙрдиреНрдЪ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реНрдпрд╛
- рдХрд╛рд╣реА рдорд╢реАрдиреНрд╕ рдкреНрд░реЛрд╕реЗрд╕рд░рд╡рд░реАрд▓ рд▓реЛрдбрдЪреЗ рдЕрдиреБрдХрд░рдг рдХрд░рдгрд╛рд░реА рдЪрд╛рдЪрдгреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд╛рд▓рд╡рддрд╛рдд (рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╡рд╛рдкрд░реВрди
рддрд╛рдг ) - рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдиреНрд╕рдЪреНрдпрд╛ рдЙрд░реНрд╡рд░рд┐рдд рднрд╛рдЧрд╛рд╡рд░, рдЖрдореНрд╣реА рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд╛рд▓рд╡рд▓реА рдЬреНрдпрд╛рдиреЗ pv рд╡рд╛рдкрд░реВрди рдорд░реНрдпрд╛рджрд╛ рд╕реЗрдЯ рдХрд░реВрди рдкреВрд░реНрд╡-рддрдпрд╛рд░ рдбреЗрдЯрд╛рд╡рд░реВрди рдбрд┐рд╕реНрдХрд╡рд░ рдбреЗрдЯрд╛ рдХреЙрдкреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА dd рд╡рд╛рдкрд░рд▓рд╛ (рдЙрджрд╛рд╣рд░рдгреЗ рдкрд╛рд╣рд┐рд▓реА рдЬрд╛рдК рд╢рдХрддрд╛рдд.
рдпреЗрдереЗ ╨╕рдпреЗрдереЗ ).
рддрд╕реЗрдЪ, рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдард╡рдд рдЕрд╕реЗрд▓, рдЖрдордЪреНрдпрд╛рдХрдбреЗ рддреАрди рдорд╢реАрдиреНрд╕ рд╣реЛрддреНрдпрд╛ рдЬреНрдпрд╛ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдЧреЛрд│рд╛ рдХрд░рддрд╛рдд.
рдкреНрд░рддреНрдпреЗрдХ рдорд╢реАрдирд╡рд░, рдкреНрд░рддреНрдпреЗрдХ 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 рдЕрдкрдЧреНрд░реЗрдб
- apt-get рдкрд╛рдпрдерди-рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛
- pip install 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
рд▓рд╣рд╛рди рдЪрд╛рдЪрдгреА рдЖрдзрд╛рд░:
рдЯреЗрдмрд▓
рдкрдВрдХреНрддреА рдЧрдгрдирд╛
рдбреЗрдЯрд╛ рдЖрдХрд╛рд░ (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
рдкрд╛рдпрдердирдордзреНрдпреЗ рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ рдЪрд╛рдЪрдгреА рд╕реЗрд╡рд╛ рдЧреБрдбрдШреНрдпрд╛рд╡рд░ рд▓рд┐рд╣рд┐рд▓реЗрд▓реА рдЖрд╣реЗ; рддреА рдЪрд╛рд░ рдСрдкрд░реЗрд╢рдиреНрд╕ рдХрд░рддреЗ:
- getState: рд╕реНрдерд┐рддреА рдкрд░рдд рдХрд░рддреЗ
- getEmployee: рдбреЗрдЯрд╛рдмреЗрд╕рдордзреВрди рдХрд░реНрдордЪрд╛рд▒реНрдпрд╛рдВрдирд╛ (+рдкрдЧрд╛рд░, +рд╢реАрд░реНрд╖рдХреЗ) рдкрд░рдд рдХрд░рддреЛ
- patchEmployee: рдХрд░реНрдордЪрд╛рд░реА рдлреАрд▓реНрдб рдмрджрд▓рддреЗ
- 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')
рдЦрдмрд░рджрд╛рд░реА рдХреЛрдгрддреНрдпрд╛рд╣реА рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рд╣реА рд╕реЗрд╡рд╛ рдЙрджрд╛рд╣рд░рдг рдХрд┐рдВрд╡рд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ рдореНрд╣рдгреВрди рдШреЗрдК рдирдпреЗ!
рдЪрд╛рдВрдЧрд▓реЗ рдЬреБрдиреЗ рдЬреЗрдореАрдЯрд░ рд╡рд╛рдкрд░реВрди рдЪрд╛рдЪрдгреНрдпрд╛ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд. 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
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