рдЧреНрд░рд┐рдб рдкреНрд░рджрд░реНрд╢рди

рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ GridFS рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЗрдЦ рдирд╣реАрдВ рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ GridFS рдХреЗ рдмрд╛рд╣рд░ рдлрд╛рдЗрд▓реЗрдВ рдкрд░реЛрд╕рдирд╛ рдЬреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ GridFS рд╕реЗ рдлрд╛рдЗрд▓реЗрдВ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рдбрд┐рд╕реНрдХ рд╕реЗ 6 рдЧреБрдирд╛ рдзреАрдореА рд╣реИред
рд▓реЗрдХрд┐рди рдЙрд╕ рд▓реЗрдЦ рдореЗрдВ рдПрдХ рдЦрд╛рдореА рд╣реИ - рдкрд░реАрдХреНрд╖рдг рдореЗрдВ, рдкрд╣реБрдВрдЪ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреЛ nginx рдпрд╛ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕реНрддрд░ рдкрд░ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЧреНрд░рд┐рдбреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдВрддрд░рд╛рд▓ рджреЗрддрд╛ рд╣реИред рд╣рд╛рдВ рдФрд░ рддрд╛рдЬрд╛ рдЧреНрд░рд┐рдбрдПрдлрдПрдл рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ, 3 рд╕рд╛рд▓ рдмреАрдд рдЪреБрдХреЗ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЕрдкрдирд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

52 рд╣рдЬрд╛рд░ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ - рдореВрд╡реА рдкреЛрд╕реНрдЯрд░, 2GB рдХреА рдХреБрд▓ рдорд╛рддреНрд░рд╛, рдФрд╕рдд рддрд╕реНрд╡реАрд░ рдХрд╛ рд╡рдЬрди 40kb рд╣реИред Ext4 рдкрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ, GridFS рдореЗрдВ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБред
1 рдХреЛрд░ рдХреЗ рд╕рд╛рде 512MB рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиред Ubuntu рд╕рд░реНрд╡рд░ 12.04 LTS 64 рдмрд┐рдЯ, Nginx / 1.4.1 рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдорд╛рдирдХ рд╣реИрдВред
рдкрд░реАрдХреНрд╖рдг рдХрдо-рд▓рд╛рдЧрдд рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдкрд░рд┐рдгрд╛рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдВрдЧреЗред

рдлрд╝рд╛рдЗрд▓реЗрдВ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ:
1) рдирдЧреНрдиреЗрдХреНрд╕ - рд╕реНрдЯреЗрдЯрд┐рдХреНрд╕
2) рдирдЧреНрдиреЗрдХреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреАрд╡реЗрдВрдЯ
3) nginx (рд╕рдВрддреБрд▓рди) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 2 рдПрдХреНрд╕ рдЧреАрд╡реЗрдВрдЯ
4) рд╕реАрдзреЗ рдЬреАрд╡реЗрдВрдЯ
5) nginx (рдпреВрдирд┐рдХреНрд╕ рд╕реЙрдХреЗрдЯ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреАрд╡реЗрдВрдЯ
рдЕрдВрдХ 2-5 рдХреЗ рд▓рд┐рдП, Python + Gevent рдореЗрдВ рдПрдХ http рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдЧреНрд░рд┐рдбреНрд╕рдПрдлрдПрд╕ рд╕реЗ рдлрд╛рдЗрд▓реЗрдВ рджреЗрддрд╛ рдерд╛

рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рддрд░реАрдХреЗ:
1) ol, t2 - рдПрдХ url, 2 рдереНрд░реЗрдбреНрд╕ рддрдХ рдкрд╣реБрдВрдЪ
2) ol, t10 - рдПрдХ url, 10 рдзрд╛рдЧреЗ рддрдХ рдкрд╣реБрдВрдЪ
3) t2 - рд╡рд┐рднрд┐рдиреНрди url, 2 рдереНрд░реЗрдбреНрд╕ рддрдХ рдкрд╣реБрдВрдЪ
4) t10 - рд╡рд┐рднрд┐рдиреНрди url, 10 рдзрд╛рдЧреЗ рддрдХ рдкрд╣реБрдВрдЪ



рд╡рд┐рд╡рд░рдг:
* рд╕рднреА рдкрд░реАрдХреНрд╖рдг 3 рдмрд╛рд░ рдЪрд▓рд╛рдП рдЧрдП рдереЗ, рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдФрд╕рдд рдореВрд▓реНрдпред
* рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ url рддрдХ рдкрд╣реБрдБрдЪ рд▓рд┐рдВрдХ рдХреА рдПрдХ рд╣реА рд╕реВрдЪреА рдкрд░ рд╣реЛрддреА рд╣реИ, рд▓рд┐рдВрдХ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реЛрддрд╛ рд╣реИ (GridFS рдореЗрдВ, рдЦреЛрдЬ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╣реЛрддреА рд╣реИ)
* рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдкрд╣реБрдВрдЪ рдПрдХ url рддрдХ рдЬрд╛рддреА рд╣реИ, рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ 13.5 kb рд╣реИред
* рдЬрдм рднреВ-рднрд╛рдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрдВрддрд┐рдо рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдЙрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдПрдХ рдПрдХрд▓ url рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, GridFS рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкрд╛рдпрдерди рд╕реЗ рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреА рдЧрддрд┐ рдХреЛ рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИред
* "рдПрдХ рд▓рд┐рдВрдХ" рдкрд░реАрдХреНрд╖рдг рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЧреНрд░рд╛рд╣рдХ рдХреА рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЧреНрд░рд╛рд╣рдХ рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЗрд╕рдХреА рдХреНрд╖рдорддрд╛ рдиреНрдпреВрдирддрдо 1450 рдЕрдиреБрд░реЛрдз рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдмрдврд╝рддреЗ рдзрд╛рдЧреЗ, рдпрд╛ рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╕реЗ рд╣рдо рдиреНрдпрд╛рдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд░реНрд╡рд░ рдПрдХ рдЕрдбрд╝рдЪрди рдереА, рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓реА рдХрд┐ рдЧреНрд░рд┐рдбреНрд╕рдПрдлрдПрд╕ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдкрд╣рд▓реЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдЫреЛрдЯреЗ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ред

рдЕрдзрд┐рдХ рд╡рд┐рдЪрд╛рд░:
* Nginx-gridfs рдЖрдЬрд╝рдорд╛рдПрдБ
* uwsgi-gridfs
* рдЙрдкрдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╛рдЗрд▓ рдЕрдкрд▓реЛрдб
* рдЕрдиреНрдп рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ
* рдЕрдиреНрдп FS (ZFS рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЛ?)

рдореИрдВ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕рд░реНрд╡рд░ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рднреА рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред

рд▓рд┐рдкрд┐ рдХреЗ рд╕реНрд░реЛрдд

Source: https://habr.com/ru/post/In192390/


All Articles