Wordpress рдХреЛ рдЧрддрд┐ рджреЗрдирд╛

рдЫрд╡рд┐



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





рдЖрд░рдВрдн рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдкреЗрдЬрд╕реНрдкреАрдб рдХреЗ рдирдВрдЧреЗ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реЗ рдХреНрдпрд╛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ :



рдЫрд╡рд┐



100 рдореЗрдВ рд╕реЗ 76 рдХрд╛ рд╕реНрдХреЛрд░ рдХрд╛рдлреА рдХрдо рд╣реИред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рд╕рдВрдХреЗрддрдХ рдХрд┐рддрдирд╛ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб



nginx


рдпрджрд┐ рдЖрдк рдЕрднреА рддрдХ Nginx рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдПрдХ рд╕рд░рд▓ рдФрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрд╛рдпред рдкрд░реНрдорд▓рд┐рдВрдХ рд╕рдорд░реНрдерди рдФрд░ рд╕реНрдерд┐рд░ рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди:



server { server_name wp.com; root /var/www/wp; #   WP index index.php; location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ { access_log off; log_not_found off; expires max; #   } location / { try_files $uri $uri/ /index.php?$args; # permalinks } location ~ \.php$ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } }
      
      







Php рдХреИрд╢


рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдПрдкреАрд╕реА рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред рд╣рдо рдПрдкреАрд╕реА рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ (рдЬрд╡рд╛рдм рдореЗрдВ рд╣рдореЗрдВ рдПрдкреАрд╕реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓рддреА рд╣реИ):



 php -i | grep apc
      
      







5.5 рдХреЗ рдмрд╛рдж PHP рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд opCache рдореЙрдбреНрдпреВрд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ APC рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред



рдЯреНрдпреВрдирд┐рдВрдЧ рдореИрд╕реВрд░


рд╡рд░реНрдбрдкреНрд░реЗрд╕ InnoDB рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ (my.cnf рдлрд╝рд╛рдЗрд▓) рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдХреЗ MySQL рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ:



InnoDB рдмрдлрд░ рдХрд╛ рдЖрдХрд╛рд░ рдЙрдкрд▓рдмреНрдз рд░реИрдо рдореЗрдВ рдЖрдзрд╛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ:



 innodb_buffer_pool_size = 256M
      
      







MySQL рдХреИрд╢рд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛:



 query_cache_size = 32M query_cache_limit = 1M
      
      







Wordpress рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдиреНрдирдд MySQL рд╕реЗрдЯрдЕрдк ред



рдХреИрд╢рд┐рдВрдЧ



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



 ab -c 10 -n 500 http://wordpress/
      
      







рд╣рдореЗрдВ рд▓рдЧрднрдЧ 50ms рдХрд╛ рдФрд╕рдд рдЕрдиреБрд░реЛрдз рд╕рдордп рдорд┐рд▓рддрд╛ рд╣реИ:



 Total transferred: 4183000 bytes HTML transferred: 4074500 bytes Requests per second: 17.62 [#/sec] (mean) Time per request: 567.421 [ms] (mean) Time per request: 56.742 [ms] (mean, across all concurrent requests) Transfer rate: 143.98 [Kbytes/sec] received
      
      







рдХреНрд░реЛрдо 150ms рдХреА рдФрд╕рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЙрдореНрдореАрдж рджрд┐рдЦрд╛рддрд╛ рд╣реИ (рд╕рд░реНрд╡рд░ рдиреАрджрд░рд▓реИрдВрдб рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ):



рдЫрд╡рд┐



WP рд╕реБрдкрд░ рдХреИрд╢


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



рдЫрд╡рд┐



WP рд╕реБрдкрд░ рдХреИрд╢ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рд╣рдореЗрдВ рдФрд╕рдд рдХреНрд╡реЗрд░реА рд╕рдордп (!) рдореЗрдВ 25 рдЧреБрдирд╛ рдХреА рдХрдореА рдорд┐рд▓рддреА рд╣реИ:



 Total transferred: 4293500 bytes HTML transferred: 4146500 bytes Requests per second: 499.01 [#/sec] (mean) Time per request: 20.040 [ms] (mean) Time per request: 2.004 [ms] (mean, across all concurrent requests) Transfer rate: 4184.61 [Kbytes/sec] received
      
      







Chrome рдореЗрдВ рдФрд╕рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЕрдкреЗрдХреНрд╖рд╛ 3 рдЧреБрдирд╛ рдШрдЯ рдЧрдИ:



рдЫрд╡рд┐



WP рд╕реБрдкрд░ рдХреИрд╢ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░реНрд╡рд░ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рд╡рд╛рд░реНрдирд┐рд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЖрдкрдХреЛ рдЙрд╕ рд╕рдордп рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЕрдиреБрд░реЛрдз рдХреЛ рд▓рдЧрднрдЧ рдкрд░рд┐рдорд╛рдг рдХреЗ рдПрдХ рдХреНрд░рдо рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдорд╛рдзрд╛рди рд╕реНрд╡рдпрдВ рдХрдо рд▓рдЪреАрд▓рд╛ рд╣реИ (рдЧрддрд┐рд╢реАрд▓ рддрддреНрд╡реЛрдВ рдХреЗ рдмрд┐рдирд╛ рдмреНрд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓)ред



рд╢реИрд▓рд┐рдпрд╛рдБ, рд▓рд┐рдкрд┐рдпрд╛рдБ рдФрд░ рдЪрд┐рддреНрд░



рдиреНрдпреВрдирддрдо рдФрд░ рд╕рдВрдкреАрдбрд╝рди


CSS / JS minification рдЙрдирдХреЗ рдЖрдХрд╛рд░ рдХрд╛ 10 ... 15% рдмрдЪрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реНрдЯреИрдЯрд┐рдХреНрд╕ рдорд┐рдирд┐рдлрд┐рдХреЗрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, WP рдорд┐рдирд┐рдлрд╛рдЗ рдореЙрдбреНрдпреВрд▓ рд╣реИред рдбрд╛рдЙрдирд▓реЛрдб, рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдВ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред Gzip рдкрд╛рда рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдИ рдЧреБрдирд╛ рдХрдо рдХрд░ рджреЗрдЧрд╛ред Nginx'e рдореЗрдВ рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдореБрдбрд╝рддрд╛ рд╣реИ:



 server { ... gzip on; gzip_disable "msie6"; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript; ... }
      
      







рдЫрд╡рд┐ рдЕрдиреБрдХреВрд▓рди


рдЪрд┐рддреНрд░ рд╕рдордЧреНрд░ рдкреГрд╖реНрда рдЖрдХрд╛рд░ рдХрд╛ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рджреЛрд╖рд░рд╣рд┐рдд рдЫрд╡рд┐ рд╕рдВрдкреАрдбрд╝рди 30 ... 40% рдЙрдирдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрдЪрд╛ рд╕рдХрддрд╛ рд╣реИред EWWW рдЗрдореЗрдЬ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдореЙрдбреНрдпреВрд▓ рдРрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрдореЗрдЬрдореИрдЬрд┐рдХ рдФрд░ рдЬреАрдбреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреА рд╣реЛрдЧреА:



 apt-get install imagemagick php5-gd
      
      







рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рдФрд░ рдЕрдиреБрднрд╡ред







рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк



рд╣рдо рдкреЗрдЬ рдЬреЗрдирд░реЗрд╢рди рдЯрд╛рдЗрдо (рд╣рдо рд╡рд╛рд░реНрдирд┐рд╢ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВ) рд╕реЗ рд▓рдЧрднрдЧ 100 рдЧреБрдирд╛ рдирдВрдЧреЗ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЛ рдУрд╡рд░рдХреНрд▓реЙрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ рдФрд░ рдкреЗрдЬрд╕реНрдкреАрдб рд░реЗрдЯ рдХреЛ 76 рд╕реЗ рдмрдврд╝рд╛рдХрд░ 93 рдХрд░ рджрд┐рдпрд╛:



рдЫрд╡рд┐



рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг рдФрд░ рд╕рдВрд╕рд╛рдзрди



P3 рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдЖрдкрдХреЗ рд╡рд░реНрддрдорд╛рди рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреА рдХрдИ рдЕрдбрд╝рдЪрдиреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдПрдЧрд╛ред Wordpress рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдЖрдкрдХреЛ рд╕рдм рдХреБрдЫ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдпрд╛рдж рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред



рд╡реИрд╕реЗ, рд╕рд╛рддрдкреЗрд░рд╕реЗрдВрдЯрд░рдбрд╛рдЗрдиред рд╡рд░реНрдбрдкреНрд░реЗрд╕.рдХреЙрдо (рд╡рд░реНрдбрдкреНрд░реЗрд╕.рдХреЙрдо рдкрд░ рд╣реЛрд╕реНрдЯ) рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреЗрдЬрд╕реНрдкреАрдб рдкрд░ 100 рдореЗрдВ рд╕реЗ 83 рдЕрдВрдХ рд╣рд╛рд╕рд┐рд▓ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ - рдХреЛрдИ рдорд┐рдирд┐рдлрд┐рдХреЗрд╢рди рдирд╣реАрдВ рд╣реИ рдФрд░ рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдмрд╣реБрдд рдмрдбрд╝реА (350ms) рд╣реИред



рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдФрд░ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рддреНрд╡рд░рдг рдЙрдкрдХрд░рдг рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВред



All Articles