A crash course inscaling wordpress

Post on 28-Jan-2015

119 views 5 download

Tags:

description

WordPress.org's Andrew Nacin will join us again for a session where he shares some tips and ideas around scaling WordPress in the enterprise.

Transcript of A crash course inscaling wordpress

A Crash Course inScaling WordPress

A Crash Course inScaling WordPress

or: let me at leastshow you what is possible

(in 8 minutes)

A Crash Course inScaling WordPress

or: let me at leastshow you what is possible

(in 8 minutes)

A Crash Course inScaling WordPress

or: let me at leastshow you what is possible

(in 8 minutes)[and then I'll take questions]

• Andrew Nacin• Lead Developer for WordPress• Washington, D.C.

• Work for WP founder Matt Mullenweg(Don't work for Automattic or WP.com)

• Full time on WordPress (the project)and WordPress.org (the site)

WordPress can scale

(no, really!)

WordPress can scale

(and it's easy!)

nginx

nginx

nginx

nginx

nginx

nginx(with PHP-FPM)

• nginx is a web server (like Apache or IIS)• nginx is better• nginx is so much better it isn't even funny

• Well-tuned Apache can serve a few hundred requests a second

• nginx can serve 10,000 requests/sec and up

nginx can be a…

• request router/load balancer (layer 7)

• load balancer (layer 4)

• front end proxy (often proxying to Apache)

• web server (using PHP-FPM)

• cache (fastcgi_cache and proxy_cache)

nginx can be a…

• request router/load balancer (layer 7)

• load balancer (layer 4)

• front end proxy (often proxying to Apache)

• web server (using PHP-FPM)

• cache (fastcgi_cache and proxy_cache)

and it is all of these things for WP.com and WP.org

If you can't switch out Apache(because reasons)

Try to still still use nginxas a front-end proxy

and caching layer

At the PHP level:

Use the latest version of PHPfor security and performance

Turn on PHP opcode cache,also called a PHP accelerator

• APC (until PHP 5.5)• Zend Optimizer+ (PHP 5.5 and up)

Inside WordPress (Objects)

Enable object caching in WordPress• stores objects in a key-value store like

APC, Memcached, Redis, and WinCache– APC for one server, Memcached for multiple

• avoids database queries• improves speed and performance• lowers memory consumption

Inside WordPress (DB)

Have multiple database servers?Use HyperDB by Automattic.• splitting reads/writes• master/slave setups• DB failover• sharding• multiple databases• multiple datacenters (mind blown)

Inside WordPress (Debugging)

• Use the Debug Bar pluginby the WordPress core team

• It's like Firebug or the Web Inspector,but for WordPress

• Inspect queries, cache hits, performance• Watch for errors and deprecated notices• General debugging• Look for issues with themes and plugins

Inside WordPress (Page Caching)

• Temporarily Caching entire pages andserving those pages as fast as possible– nginx can do most of this for you

• Batcache by Automattic

(You may have also heard of W3 Total Cache & WP Super Cache)

At the hardware level:

(Solid-State Drives)SSDs

one server, 10,000 requests/sec

864,000,000requests a day

• nacin@wordpress.org

• Questions?