SlideShare a Scribd company logo
1 of 19
SITE SPEED = SUCCESS!
 Optimizing WordPress from the server up


           Anthony Somerset
ABOUT
•   Anthony Somerset – Infrastructure Engineer, W3 EDGE
     • Manage W3 EDGE servers day to day
     • Build out Servers and infrastructure for new clients primarily on Amazon Web
       Services
     • Supporting existing users of W3 Total Cache plugin
     • Some work on the W3 Total Cache plugin
     • Motorsport Nut (the 4 wheel variety!)
ROADMAP
•   Configuring & Optimizing MySQL (Including general WP based optimizations)
•   Configuring PHP for efficient memory usage
•   Installing & Configuring APC – Common Caveats
•   W3 Total Cache recommended configuration
•   Questions?
OR
ROOT ACCESS REQUIRED!
•   You need a dedicated server or VPS to do 90% of the following stuff and root level access
•   I’m assuming you already have the Web Stack built whether that be LEMP, LAMP etc.
•   I’m assuming Linux is the OS being used! – Sorry no WAMP here please!
•   I’m assuming you are comfortable with SSH, command line, Vi/Nano etc.
•   Recommended Resources (just some of many)
     • http://www.if-not-true-then-false.com/2011/nginx-and-php-fpm-configuration-and-
       optimizing-tips-and-tricks/
     • https://www.digitalocean.com/community/articles/how-to-install-linux-nginx-mysql-
       php-lemp-stack-on-ubuntu-12-04
     • http://wiki.nginx.org/Wordpress
     • http://codex.wordpress.org/Nginx
MYSQL TUNING
•   The DB is often the first bottleneck in WordPress
•   Config file most commonly located in /etc/my.cnf
     • Debian/Ubuntu symlinks this to /etc/mysql/my.cnf
•   Most config options often don’t need a restart (they will have a matching set @@global.
    Query)
•   /etc/init.d/mysql reload does not work reliably on all systems – restart is safer


•   Useful Tools (direct download links to latest version):
     • Mysqltuner - http://sts.io/mysqltuner
     • Tuning-primer - http://sts.io/tuningprimer
MYSQL TUNING
•   Convert MyISAM tables to InnoDB
     • You lose default WP search (which was never that great)
     • Some alternative search plugins:
           • http://wordpress.org/extend/plugins/wordpress-sphinx-plugin/ - you need sphinx
             installed and running – the plugin can do this though
           • http://wordpress.org/extend/plugins/google-custom-search/ - requires no extra
             running software, but does need signing up for at Google
•   InnoDB scales better because it does row level locking instead of table level locking
     • This has greater impact for busier sites, lots of wp-admin traffic or lots of comments
     • InnoDB has better memory caching support than MyISAM – whole DB can be stored
       in RAM (if you have it available)
MYSQL TUNING
•   max_connections – make sure its set to the max number of DB connections you see at
    peak time + 20%
•   skip_name_resolve – can save up to 20% time on initial connection performance
     • Caveat – you cannot use hostnames in MySQL user permissions only IP’s
     • Doesn’t have any effect if you are using MySQL sockets (e.g. localhost) – which are
       faster than TCP anyway!
•   query_cache_size – don’t set to more than 128M the cost to clear it above that generally
    is worse than the performance gained by the larger cache
•   tmp_table_size, max_heap_table_size – set both to at least size of your largest table (if
    you have the ram)
•   innodb_buffer_pool_size – set this to the overall size of your InnoDB tables + 15%
MYSQL TUNING
•   innodb_file_per_table – great on multi disk Hardware RAID arrays (note, avoid RAID 5 or
    RAID 6 and variants for MySQL if you can RAID 10 is still fastest with least problems in
    event of a disk failure)
•   innodb_flush_method = O_DIRECT – great if you have Hardware raid and Battery backup
•   innodb_log_file_size = 1024M – stop MySQL before you make this change! Saves file
    descriptors being used for too many log files
•   innodb_log_buffer_size = 32M – set this adequately to avoid writing to disk too much but
    not so high that you could lose a large amount of data in the event of failure
•   Only enable the Slow log if you are actively debugging – leave it disabled otherwise
MYSQL TUNING - WORDPRESS
•   Delete Spam comments – don’t just leave them hanging around
•   Clear out old post/page revisions and limit number of created revisions -
    http://codex.wordpress.org/Editing_wp-config.php#Post_Revisions
•   Limit the auto-save interval, useful if you have lots of editors -
    http://codex.wordpress.org/Editing_wp-config.php#Modify_AutoSave_Interval
•   Clear out trash posts, can even be automated via wp_cron -
    http://codex.wordpress.org/Editing_wp-config.php#Empty_Trash
•   Use an alternative comment system – e.g. Disqus
•   If a single DB server cant cope then look at DB caching (W3TC) or DB replication
    (HyperDB or W3TC Enterprise)
TUNING PHP
•   Config files in various locations depending on the OS and may or may not use an included
    files based system
     • Debian/Ubuntu /etc/php5/…. And users/etc/php5/conf.d/
     • Red Hat/CentOS /etc/php.ini /etc/php.d/
•   Generally need to restart PHP service to activate changes (except when using
    apache/mod_php)
•   Using an Opcode Cache (like APC) is often where biggest gains are had.
•   Only enable/compile the minimum modules needed to run your site
•   Only do the required tasks in WordPress/PHP – e.g. don’t use WP plugins to do site
    backups – use a proper DB/File backup tool – if you use VaultPress – use the (S)FTP and
    MySQL connection options to reduce impact on the site code
TUNING PHP
•   Watch your memory usage – if you consistently need more than 128M memory_limit then
    look at what parts of your site/code is using large amounts of memory
•   Don’t extend max_execution_time – if something takes more than 30 seconds to process
    then something is wrong or should be done outside of the webserver process
•   Disable WP_Cron and switch it to a system cron task – wp-config.php:
    define('DISABLE_WP_CRON', true); - reduces number of PHP calls quite a bit and
    prevents race conditions in PHP on some busier sites – running it at regular defined
    intervals is more reliable and often more efficient
•   Remember to set post_max_size and upload_max_filesize for your uploads
•   Set date.timezone – it will save a warning in your logs which could cause slow downs
    because of disk writes on busy servers (I have seen this happen!)
•   If using multiple webservers – then set session.save_handler to use Memcached or
    similar
INSTALLING APC
•   APC will generally give biggest gains in PHP (or any other opcode cache)
•   Debian (assuming using the DotDeb repositories)
     • apt-get install php5-apc
•   Red Hat/Centos (use EPEL/Remi for most up to date)
     • yum install php-pecl-apc
•   cPanel – use WHM or:
     • pecl install APC
CONFIGURING APC
extension = apc.so          apc.mmap_file_mask = "/tmp/apc.XXXXXX”
apc.enabled = 1             apc.slam_defense = 0
apc.shm_segments = 1        apc.file_update_protection = 2
apc.shm_size = 128M         apc.enable_cli = 0
apc.optimization = 0        apc.max_file_size = 10M
apc.num_files_hint = 4096   apc.stat = 0
apc.ttl = 3600              apc.write_lock = 1
apc.user_ttl = 3600         apc.report_autofilter = 0
apc.gc_ttl = 3600           apc.include_once_override = 0
apc.cache_by_default = 1    apc.coredump_unmap = 0
apc.filters = "”            apc.stat_ctime = 0
CONFIGURING APC - CAVEATS
•   apc.stat = setting to 0 means it wont check for file changes
     • Means you have to manually clear APC caches
     • But gives much much more scale to servers by saving on many file system calls
•   Make sure apc.shm_size is large enough for your cache
     • APC is known to show nasty errors or just plain white screen a site when it runs out
       of memory
•   In rare cases apc.mmap_file_mask set to the /tmp directory can cause an abnormally high
    number of disk writes setting it to /dev/zero tends to solve the issue
•   Set TTL’s too low and things don’t get cached for long enough – too high and you might
    hit a cache full error – setting it to zero means caches get flushed as soon as cache gets
    full (this is bad)
W3 TOTAL CACHE
•   The Defaults are only a fail safe – they will not give you the best overall performance
•   Best config for a single server is not the best for a multi server setup
•   Page Cache – Use Disk Enhanced for single servers, Memcached for multiple –
    Nginx/Apache Rewrites are generally much faster than PHP or Memcached but
    consistency needed when multiple servers in play
•   Minify – same applies here, Disk for single server, Memcached for multiple
•   DB – Avoid Disk if you can. Memcached works very well here for both single and multiple
    server setups – APC is better than file if you don’t have Memcached if you use Disk make
    sure your Disks are fast – and prefer no caching if your DB is faster than File caching
•   Object – APC is fastest here, use Memcached if you have to for multiple servers
•   CDN – Enable it! – origin pull is generally easiest and simplest to manage – make use of
    any available API’s if we support it (e.g. MaxCDN/NetDNA, Amazon CloudFront)
W3 TOTAL CACHE – BROWSER CACHE
•   Enable all the options under Browser Cache.
•   Do Not Process 404s – make sure that any plugins that require WordPress for static files
    have there files whitelisted – e.g. WordPress SEO by Yoast – sitemap feature requires
    whitelisting
•   Prevent caching of objects after settings change – this appends a query string to all static
    file URL’s allowing you to set very long expires times (the default in W3TC if expires
    enabled)
•   If using CDN, make sure to enable the set cookie domain option to make sure new users
    cant send cookies in requests to your CDN resources
•   eTags are often not needed for sites using single servers – leave them disabled unless
    you know they are needed, it reduces the http header response size.
W3 TOTAL CACHE – PAGE CACHE
•   Enabling cache 404 pages in page cache – this returns a 200 error which can have an
    adverse effect on SEO use at your peril! Better to make sure your 404 page is efficient in
    its WP calls and that you generally have no 404’s in the first place
•   Don't cache pages for logged in users – if you disable this beware of the admin bar
    appearing for logged out users – with a logged in users username! A good idea to disable
    the admin bar on the front end when you do this
•   Cache Feeds if you can – even if you redirect to FeedBurner or similar services, w3tc will
    purge the feed from its cache every time you update/publish a post
•   Use a sitemap plugin and prime your cache with the sitemap
QUESTIONS?

More Related Content

What's hot

WordPress Performance optimization
WordPress Performance optimizationWordPress Performance optimization
WordPress Performance optimizationBrecht Ryckaert
 
WordPress performance tuning
WordPress performance tuningWordPress performance tuning
WordPress performance tuningVladimír Smitka
 
Why it's dangerous to turn off automatic updates and here's how to do it
Why it's dangerous to turn off automatic updates and here's how to do itWhy it's dangerous to turn off automatic updates and here's how to do it
Why it's dangerous to turn off automatic updates and here's how to do itOnni Hakala
 
Use Xdebug to profile PHP
Use Xdebug to profile PHPUse Xdebug to profile PHP
Use Xdebug to profile PHPSeravo
 
High Performance WordPress
High Performance WordPressHigh Performance WordPress
High Performance WordPressvnsavage
 
Search in WordPress - how it works and howto customize it
Search in WordPress - how it works and howto customize itSearch in WordPress - how it works and howto customize it
Search in WordPress - how it works and howto customize itOtto Kekäläinen
 
Less and faster – Cache tips for WordPress developers
Less and faster – Cache tips for WordPress developersLess and faster – Cache tips for WordPress developers
Less and faster – Cache tips for WordPress developersSeravo
 
Professional WordPress Development with Vagrant - Andrea Cardinali - WordCam...
Professional WordPress Development with Vagrant - Andrea Cardinali -  WordCam...Professional WordPress Development with Vagrant - Andrea Cardinali -  WordCam...
Professional WordPress Development with Vagrant - Andrea Cardinali - WordCam...Andrea Cardinali
 
How to investigate and recover from a security breach in WordPress
How to investigate and recover from a security breach in WordPressHow to investigate and recover from a security breach in WordPress
How to investigate and recover from a security breach in WordPressOtto Kekäläinen
 
Battling the WSOD - A Tech Support Tale
Battling the WSOD - A Tech Support TaleBattling the WSOD - A Tech Support Tale
Battling the WSOD - A Tech Support TaleKayleigh Thorpe
 
Improve WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of codeImprove WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of codeDanilo Ercoli
 
Seravo.com: WordPress Security 101
Seravo.com: WordPress Security 101Seravo.com: WordPress Security 101
Seravo.com: WordPress Security 101Seravo
 
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...Otto Kekäläinen
 
WordPress Development Tools and Best Practices
WordPress Development Tools and Best PracticesWordPress Development Tools and Best Practices
WordPress Development Tools and Best PracticesDanilo Ercoli
 
Mobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPressMobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPressDanilo Ercoli
 
Automatic testing and quality assurance for WordPress plugins and themes
Automatic testing and quality assurance for WordPress plugins and themesAutomatic testing and quality assurance for WordPress plugins and themes
Automatic testing and quality assurance for WordPress plugins and themesOtto Kekäläinen
 
Introduction to-ict
Introduction to-ictIntroduction to-ict
Introduction to-ictKrish
 
Modern PHP Ch7 Provisioning Guide 導讀
Modern PHP Ch7 Provisioning Guide 導讀Modern PHP Ch7 Provisioning Guide 導讀
Modern PHP Ch7 Provisioning Guide 導讀Chen Cheng-Wei
 
WordPress Security - 12 WordPress Security Fundamentals
WordPress Security - 12 WordPress Security FundamentalsWordPress Security - 12 WordPress Security Fundamentals
WordPress Security - 12 WordPress Security Fundamentalsfindingsimple
 
WordPress.org & Optimizing Security for your WordPress sites
WordPress.org & Optimizing Security for your WordPress sitesWordPress.org & Optimizing Security for your WordPress sites
WordPress.org & Optimizing Security for your WordPress sitesGovLoop
 

What's hot (20)

WordPress Performance optimization
WordPress Performance optimizationWordPress Performance optimization
WordPress Performance optimization
 
WordPress performance tuning
WordPress performance tuningWordPress performance tuning
WordPress performance tuning
 
Why it's dangerous to turn off automatic updates and here's how to do it
Why it's dangerous to turn off automatic updates and here's how to do itWhy it's dangerous to turn off automatic updates and here's how to do it
Why it's dangerous to turn off automatic updates and here's how to do it
 
Use Xdebug to profile PHP
Use Xdebug to profile PHPUse Xdebug to profile PHP
Use Xdebug to profile PHP
 
High Performance WordPress
High Performance WordPressHigh Performance WordPress
High Performance WordPress
 
Search in WordPress - how it works and howto customize it
Search in WordPress - how it works and howto customize itSearch in WordPress - how it works and howto customize it
Search in WordPress - how it works and howto customize it
 
Less and faster – Cache tips for WordPress developers
Less and faster – Cache tips for WordPress developersLess and faster – Cache tips for WordPress developers
Less and faster – Cache tips for WordPress developers
 
Professional WordPress Development with Vagrant - Andrea Cardinali - WordCam...
Professional WordPress Development with Vagrant - Andrea Cardinali -  WordCam...Professional WordPress Development with Vagrant - Andrea Cardinali -  WordCam...
Professional WordPress Development with Vagrant - Andrea Cardinali - WordCam...
 
How to investigate and recover from a security breach in WordPress
How to investigate and recover from a security breach in WordPressHow to investigate and recover from a security breach in WordPress
How to investigate and recover from a security breach in WordPress
 
Battling the WSOD - A Tech Support Tale
Battling the WSOD - A Tech Support TaleBattling the WSOD - A Tech Support Tale
Battling the WSOD - A Tech Support Tale
 
Improve WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of codeImprove WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of code
 
Seravo.com: WordPress Security 101
Seravo.com: WordPress Security 101Seravo.com: WordPress Security 101
Seravo.com: WordPress Security 101
 
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
 
WordPress Development Tools and Best Practices
WordPress Development Tools and Best PracticesWordPress Development Tools and Best Practices
WordPress Development Tools and Best Practices
 
Mobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPressMobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPress
 
Automatic testing and quality assurance for WordPress plugins and themes
Automatic testing and quality assurance for WordPress plugins and themesAutomatic testing and quality assurance for WordPress plugins and themes
Automatic testing and quality assurance for WordPress plugins and themes
 
Introduction to-ict
Introduction to-ictIntroduction to-ict
Introduction to-ict
 
Modern PHP Ch7 Provisioning Guide 導讀
Modern PHP Ch7 Provisioning Guide 導讀Modern PHP Ch7 Provisioning Guide 導讀
Modern PHP Ch7 Provisioning Guide 導讀
 
WordPress Security - 12 WordPress Security Fundamentals
WordPress Security - 12 WordPress Security FundamentalsWordPress Security - 12 WordPress Security Fundamentals
WordPress Security - 12 WordPress Security Fundamentals
 
WordPress.org & Optimizing Security for your WordPress sites
WordPress.org & Optimizing Security for your WordPress sitesWordPress.org & Optimizing Security for your WordPress sites
WordPress.org & Optimizing Security for your WordPress sites
 

Viewers also liked

What is the Responsibility of Plugin Developers?
What is the Responsibility of Plugin Developers?What is the Responsibility of Plugin Developers?
What is the Responsibility of Plugin Developers?Takayuki Miyoshi
 
Future-proofing your WordPress site - WordCamp Sydney 2014
Future-proofing your WordPress site - WordCamp Sydney 2014Future-proofing your WordPress site - WordCamp Sydney 2014
Future-proofing your WordPress site - WordCamp Sydney 2014Jordan Gillman
 
I Can Haz More Performanz?
I Can Haz More Performanz?I Can Haz More Performanz?
I Can Haz More Performanz?Andy Melichar
 
Wordcamp Denver 2015 - Get Clear w Diane Whiddon
Wordcamp Denver 2015 - Get Clear w Diane WhiddonWordcamp Denver 2015 - Get Clear w Diane Whiddon
Wordcamp Denver 2015 - Get Clear w Diane WhiddonDiane Whiddon
 
A House with No Walls: Building a Site Structure for Tomorrow
A House with No Walls: Building a Site Structure for TomorrowA House with No Walls: Building a Site Structure for Tomorrow
A House with No Walls: Building a Site Structure for TomorrowGizmo Creative Factory, Inc.
 
Dificultad de determinar la partida arancelaria para la exportación de prenda...
Dificultad de determinar la partida arancelaria para la exportación de prenda...Dificultad de determinar la partida arancelaria para la exportación de prenda...
Dificultad de determinar la partida arancelaria para la exportación de prenda...Mitzi Linares Vizcarra
 
A Freelancer's Guide To Handling Difficult Clients
A Freelancer's Guide To Handling Difficult ClientsA Freelancer's Guide To Handling Difficult Clients
A Freelancer's Guide To Handling Difficult ClientsDamon Schopen
 
Goodbye Keyword Optimization, Hello Topical Optimization
Goodbye Keyword Optimization, Hello Topical OptimizationGoodbye Keyword Optimization, Hello Topical Optimization
Goodbye Keyword Optimization, Hello Topical OptimizationStoney deGeyter
 
Beginner's Guide to Creating an Epic Blog
Beginner's Guide to Creating an Epic BlogBeginner's Guide to Creating an Epic Blog
Beginner's Guide to Creating an Epic BlogStoney deGeyter
 
Ako zvýšiť návštevnosť na blogu - Fabulous by xKatka
Ako zvýšiť návštevnosť na blogu - Fabulous by xKatkaAko zvýšiť návštevnosť na blogu - Fabulous by xKatka
Ako zvýšiť návštevnosť na blogu - Fabulous by xKatkaKatarina Novotna
 
Choosing WordPress Plugins (WordCamp Raleigh 2016)
Choosing WordPress Plugins (WordCamp Raleigh 2016)Choosing WordPress Plugins (WordCamp Raleigh 2016)
Choosing WordPress Plugins (WordCamp Raleigh 2016)andisites
 
[Farag fouda] kebenaran_yang_hilang_sisi_kelam_pr(book_fi.org)
[Farag fouda] kebenaran_yang_hilang_sisi_kelam_pr(book_fi.org)[Farag fouda] kebenaran_yang_hilang_sisi_kelam_pr(book_fi.org)
[Farag fouda] kebenaran_yang_hilang_sisi_kelam_pr(book_fi.org)Andang Prasetya
 
How To See Through Your Business’s Blind Spots
How To See Through Your Business’s Blind Spots   How To See Through Your Business’s Blind Spots
How To See Through Your Business’s Blind Spots Rachel Magario, MBA
 
Tools to Automate & Elevate Your Marketing Efferts
Tools to Automate & Elevate Your Marketing Efferts Tools to Automate & Elevate Your Marketing Efferts
Tools to Automate & Elevate Your Marketing Efferts Sarah Kloth
 
Shortcut Your Way to Success: Essential WordPress Plugins for Podcasters
Shortcut Your Way to Success: Essential WordPress Plugins for PodcastersShortcut Your Way to Success: Essential WordPress Plugins for Podcasters
Shortcut Your Way to Success: Essential WordPress Plugins for PodcastersDustin Hartzler
 
Whistleblowing.jp (内部告発.jp)の構想(The concept of Whistleblowing.jp)
Whistleblowing.jp (内部告発.jp)の構想(The concept of Whistleblowing.jp)Whistleblowing.jp (内部告発.jp)の構想(The concept of Whistleblowing.jp)
Whistleblowing.jp (内部告発.jp)の構想(The concept of Whistleblowing.jp)真行 八田
 

Viewers also liked (20)

What is the Responsibility of Plugin Developers?
What is the Responsibility of Plugin Developers?What is the Responsibility of Plugin Developers?
What is the Responsibility of Plugin Developers?
 
Future-proofing your WordPress site - WordCamp Sydney 2014
Future-proofing your WordPress site - WordCamp Sydney 2014Future-proofing your WordPress site - WordCamp Sydney 2014
Future-proofing your WordPress site - WordCamp Sydney 2014
 
I Can Haz More Performanz?
I Can Haz More Performanz?I Can Haz More Performanz?
I Can Haz More Performanz?
 
Wordcamp Denver 2015 - Get Clear w Diane Whiddon
Wordcamp Denver 2015 - Get Clear w Diane WhiddonWordcamp Denver 2015 - Get Clear w Diane Whiddon
Wordcamp Denver 2015 - Get Clear w Diane Whiddon
 
A House with No Walls: Building a Site Structure for Tomorrow
A House with No Walls: Building a Site Structure for TomorrowA House with No Walls: Building a Site Structure for Tomorrow
A House with No Walls: Building a Site Structure for Tomorrow
 
Dificultad de determinar la partida arancelaria para la exportación de prenda...
Dificultad de determinar la partida arancelaria para la exportación de prenda...Dificultad de determinar la partida arancelaria para la exportación de prenda...
Dificultad de determinar la partida arancelaria para la exportación de prenda...
 
My christmas
My christmasMy christmas
My christmas
 
A Freelancer's Guide To Handling Difficult Clients
A Freelancer's Guide To Handling Difficult ClientsA Freelancer's Guide To Handling Difficult Clients
A Freelancer's Guide To Handling Difficult Clients
 
Goodbye Keyword Optimization, Hello Topical Optimization
Goodbye Keyword Optimization, Hello Topical OptimizationGoodbye Keyword Optimization, Hello Topical Optimization
Goodbye Keyword Optimization, Hello Topical Optimization
 
Economia
EconomiaEconomia
Economia
 
Beginner's Guide to Creating an Epic Blog
Beginner's Guide to Creating an Epic BlogBeginner's Guide to Creating an Epic Blog
Beginner's Guide to Creating an Epic Blog
 
Ako zvýšiť návštevnosť na blogu - Fabulous by xKatka
Ako zvýšiť návštevnosť na blogu - Fabulous by xKatkaAko zvýšiť návštevnosť na blogu - Fabulous by xKatka
Ako zvýšiť návštevnosť na blogu - Fabulous by xKatka
 
Akeda bagus
Akeda bagusAkeda bagus
Akeda bagus
 
Common Sense Seo
Common Sense SeoCommon Sense Seo
Common Sense Seo
 
Choosing WordPress Plugins (WordCamp Raleigh 2016)
Choosing WordPress Plugins (WordCamp Raleigh 2016)Choosing WordPress Plugins (WordCamp Raleigh 2016)
Choosing WordPress Plugins (WordCamp Raleigh 2016)
 
[Farag fouda] kebenaran_yang_hilang_sisi_kelam_pr(book_fi.org)
[Farag fouda] kebenaran_yang_hilang_sisi_kelam_pr(book_fi.org)[Farag fouda] kebenaran_yang_hilang_sisi_kelam_pr(book_fi.org)
[Farag fouda] kebenaran_yang_hilang_sisi_kelam_pr(book_fi.org)
 
How To See Through Your Business’s Blind Spots
How To See Through Your Business’s Blind Spots   How To See Through Your Business’s Blind Spots
How To See Through Your Business’s Blind Spots
 
Tools to Automate & Elevate Your Marketing Efferts
Tools to Automate & Elevate Your Marketing Efferts Tools to Automate & Elevate Your Marketing Efferts
Tools to Automate & Elevate Your Marketing Efferts
 
Shortcut Your Way to Success: Essential WordPress Plugins for Podcasters
Shortcut Your Way to Success: Essential WordPress Plugins for PodcastersShortcut Your Way to Success: Essential WordPress Plugins for Podcasters
Shortcut Your Way to Success: Essential WordPress Plugins for Podcasters
 
Whistleblowing.jp (内部告発.jp)の構想(The concept of Whistleblowing.jp)
Whistleblowing.jp (内部告発.jp)の構想(The concept of Whistleblowing.jp)Whistleblowing.jp (内部告発.jp)の構想(The concept of Whistleblowing.jp)
Whistleblowing.jp (内部告発.jp)の構想(The concept of Whistleblowing.jp)
 

Similar to Anthony Somerset - Site Speed = Success!

Site Speed = Success – Optimising WordPress from the Server Up - Presented by...
Site Speed = Success – Optimising WordPress from the Server Up - Presented by...Site Speed = Success – Optimising WordPress from the Server Up - Presented by...
Site Speed = Success – Optimising WordPress from the Server Up - Presented by...WordCamp Harare
 
WordCamp Harare 2016 - Site Speed = Success
WordCamp Harare 2016 - Site Speed = SuccessWordCamp Harare 2016 - Site Speed = Success
WordCamp Harare 2016 - Site Speed = SuccessAnthony Somerset
 
High Performance Wordpress
High Performance WordpressHigh Performance Wordpress
High Performance WordpressGareth Davies
 
Caching and tuning fun for high scalability @ phpBenelux 2011
Caching and tuning fun for high scalability @ phpBenelux 2011Caching and tuning fun for high scalability @ phpBenelux 2011
Caching and tuning fun for high scalability @ phpBenelux 2011Wim Godden
 
Caching and tuning fun for high scalability
Caching and tuning fun for high scalabilityCaching and tuning fun for high scalability
Caching and tuning fun for high scalabilityWim Godden
 
Memcache and Drupal - Vaibhav Jain
Memcache and Drupal - Vaibhav JainMemcache and Drupal - Vaibhav Jain
Memcache and Drupal - Vaibhav JainDrupal Camp Delhi
 
Designing enterprise drupal
Designing enterprise drupalDesigning enterprise drupal
Designing enterprise drupalJason Burnett
 
Caching and tuning fun for high scalability
Caching and tuning fun for high scalabilityCaching and tuning fun for high scalability
Caching and tuning fun for high scalabilityWim Godden
 
Caching and tuning fun for high scalability @ FrOSCon 2011
Caching and tuning fun for high scalability @ FrOSCon 2011Caching and tuning fun for high scalability @ FrOSCon 2011
Caching and tuning fun for high scalability @ FrOSCon 2011Wim Godden
 
Improving Website Performance with Memecached Webinar | Achieve Internet
Improving Website Performance with Memecached Webinar | Achieve InternetImproving Website Performance with Memecached Webinar | Achieve Internet
Improving Website Performance with Memecached Webinar | Achieve InternetAchieve Internet
 
Improving Website Performance with Memecached Webinar | Achieve Internet
Improving Website Performance with Memecached Webinar | Achieve InternetImproving Website Performance with Memecached Webinar | Achieve Internet
Improving Website Performance with Memecached Webinar | Achieve InternetAchieve Internet
 
Pure Speed Drupal 4 Gov talk
Pure Speed Drupal 4 Gov talkPure Speed Drupal 4 Gov talk
Pure Speed Drupal 4 Gov talkBryan Ollendyke
 
Speeding Up The Snail
Speeding Up The SnailSpeeding Up The Snail
Speeding Up The SnailMarcus Deglos
 
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…Atwix
 
Lonestar php scalingmagento
Lonestar php scalingmagentoLonestar php scalingmagento
Lonestar php scalingmagentoMathew Beane
 
High Performance Web Sites
High Performance Web SitesHigh Performance Web Sites
High Performance Web SitesRavi Raj
 
Caching and tuning fun for high scalability @ PHPTour
Caching and tuning fun for high scalability @ PHPTourCaching and tuning fun for high scalability @ PHPTour
Caching and tuning fun for high scalability @ PHPTourWim Godden
 

Similar to Anthony Somerset - Site Speed = Success! (20)

Site Speed = Success – Optimising WordPress from the Server Up - Presented by...
Site Speed = Success – Optimising WordPress from the Server Up - Presented by...Site Speed = Success – Optimising WordPress from the Server Up - Presented by...
Site Speed = Success – Optimising WordPress from the Server Up - Presented by...
 
WordCamp Harare 2016 - Site Speed = Success
WordCamp Harare 2016 - Site Speed = SuccessWordCamp Harare 2016 - Site Speed = Success
WordCamp Harare 2016 - Site Speed = Success
 
High Performance Wordpress
High Performance WordpressHigh Performance Wordpress
High Performance Wordpress
 
Caching and tuning fun for high scalability @ phpBenelux 2011
Caching and tuning fun for high scalability @ phpBenelux 2011Caching and tuning fun for high scalability @ phpBenelux 2011
Caching and tuning fun for high scalability @ phpBenelux 2011
 
Caching and tuning fun for high scalability
Caching and tuning fun for high scalabilityCaching and tuning fun for high scalability
Caching and tuning fun for high scalability
 
Memcache and Drupal - Vaibhav Jain
Memcache and Drupal - Vaibhav JainMemcache and Drupal - Vaibhav Jain
Memcache and Drupal - Vaibhav Jain
 
Drupal performance
Drupal performanceDrupal performance
Drupal performance
 
Designing enterprise drupal
Designing enterprise drupalDesigning enterprise drupal
Designing enterprise drupal
 
Caching and tuning fun for high scalability
Caching and tuning fun for high scalabilityCaching and tuning fun for high scalability
Caching and tuning fun for high scalability
 
Caching and tuning fun for high scalability @ FrOSCon 2011
Caching and tuning fun for high scalability @ FrOSCon 2011Caching and tuning fun for high scalability @ FrOSCon 2011
Caching and tuning fun for high scalability @ FrOSCon 2011
 
Improving Website Performance with Memecached Webinar | Achieve Internet
Improving Website Performance with Memecached Webinar | Achieve InternetImproving Website Performance with Memecached Webinar | Achieve Internet
Improving Website Performance with Memecached Webinar | Achieve Internet
 
Improving Website Performance with Memecached Webinar | Achieve Internet
Improving Website Performance with Memecached Webinar | Achieve InternetImproving Website Performance with Memecached Webinar | Achieve Internet
Improving Website Performance with Memecached Webinar | Achieve Internet
 
Pure Speed Drupal 4 Gov talk
Pure Speed Drupal 4 Gov talkPure Speed Drupal 4 Gov talk
Pure Speed Drupal 4 Gov talk
 
Speeding Up The Snail
Speeding Up The SnailSpeeding Up The Snail
Speeding Up The Snail
 
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
 
Lonestar php scalingmagento
Lonestar php scalingmagentoLonestar php scalingmagento
Lonestar php scalingmagento
 
High Performance Web Sites
High Performance Web SitesHigh Performance Web Sites
High Performance Web Sites
 
Running MySQL on Linux
Running MySQL on LinuxRunning MySQL on Linux
Running MySQL on Linux
 
Caching and tuning fun for high scalability @ PHPTour
Caching and tuning fun for high scalability @ PHPTourCaching and tuning fun for high scalability @ PHPTour
Caching and tuning fun for high scalability @ PHPTour
 
Mysql ppt
Mysql pptMysql ppt
Mysql ppt
 

More from WordCamp Cape Town

Wordcamp 2012 riaan knoetze - how to hijack a themeshop
Wordcamp 2012   riaan knoetze - how to hijack a themeshopWordcamp 2012   riaan knoetze - how to hijack a themeshop
Wordcamp 2012 riaan knoetze - how to hijack a themeshopWordCamp Cape Town
 
Byron Rode - Optimizing WordPress on the frontend
Byron Rode - Optimizing WordPress on the frontendByron Rode - Optimizing WordPress on the frontend
Byron Rode - Optimizing WordPress on the frontendWordCamp Cape Town
 
Neil Pursey - Is Social Media affecting SEO
Neil Pursey - Is Social Media affecting SEONeil Pursey - Is Social Media affecting SEO
Neil Pursey - Is Social Media affecting SEOWordCamp Cape Town
 
Steve Barnet - Device lab - 3min pitch
Steve Barnet - Device lab - 3min pitchSteve Barnet - Device lab - 3min pitch
Steve Barnet - Device lab - 3min pitchWordCamp Cape Town
 
WordPress as a CMS – Why and How
WordPress as a CMS – Why and HowWordPress as a CMS – Why and How
WordPress as a CMS – Why and HowWordCamp Cape Town
 
Neil pursey Yoast’s SEO plugin for WordPress
Neil pursey Yoast’s SEO plugin for WordPressNeil pursey Yoast’s SEO plugin for WordPress
Neil pursey Yoast’s SEO plugin for WordPressWordCamp Cape Town
 
Matt geri (mobile as publishing platform)
Matt geri (mobile as publishing platform)Matt geri (mobile as publishing platform)
Matt geri (mobile as publishing platform)WordCamp Cape Town
 
Jess green (get the wordpress relationship working)
Jess green (get the wordpress relationship working)Jess green (get the wordpress relationship working)
Jess green (get the wordpress relationship working)WordCamp Cape Town
 
Fred roed (what a 60’s rock n’ roll band can teach us about online publishing)
Fred roed (what a 60’s rock n’ roll band can teach us about online publishing)Fred roed (what a 60’s rock n’ roll band can teach us about online publishing)
Fred roed (what a 60’s rock n’ roll band can teach us about online publishing)WordCamp Cape Town
 
Ashley Shaw (Scaling WordPress)
Ashley Shaw (Scaling WordPress)Ashley Shaw (Scaling WordPress)
Ashley Shaw (Scaling WordPress)WordCamp Cape Town
 
Rafiq phillips (seo fundamentalism)
Rafiq phillips (seo fundamentalism)Rafiq phillips (seo fundamentalism)
Rafiq phillips (seo fundamentalism)WordCamp Cape Town
 

More from WordCamp Cape Town (15)

Wordcamp 2012 riaan knoetze - how to hijack a themeshop
Wordcamp 2012   riaan knoetze - how to hijack a themeshopWordcamp 2012   riaan knoetze - how to hijack a themeshop
Wordcamp 2012 riaan knoetze - how to hijack a themeshop
 
Byron Rode - Optimizing WordPress on the frontend
Byron Rode - Optimizing WordPress on the frontendByron Rode - Optimizing WordPress on the frontend
Byron Rode - Optimizing WordPress on the frontend
 
Fred Roed - Cause
Fred Roed - CauseFred Roed - Cause
Fred Roed - Cause
 
Neil Pursey - Is Social Media affecting SEO
Neil Pursey - Is Social Media affecting SEONeil Pursey - Is Social Media affecting SEO
Neil Pursey - Is Social Media affecting SEO
 
Steve Barnet - Device lab - 3min pitch
Steve Barnet - Device lab - 3min pitchSteve Barnet - Device lab - 3min pitch
Steve Barnet - Device lab - 3min pitch
 
WordPress as a CMS – Why and How
WordPress as a CMS – Why and HowWordPress as a CMS – Why and How
WordPress as a CMS – Why and How
 
Neil pursey Yoast’s SEO plugin for WordPress
Neil pursey Yoast’s SEO plugin for WordPressNeil pursey Yoast’s SEO plugin for WordPress
Neil pursey Yoast’s SEO plugin for WordPress
 
Making money with WordPress
Making money with WordPressMaking money with WordPress
Making money with WordPress
 
The future of WordPress
The future of WordPressThe future of WordPress
The future of WordPress
 
Matt geri (mobile as publishing platform)
Matt geri (mobile as publishing platform)Matt geri (mobile as publishing platform)
Matt geri (mobile as publishing platform)
 
Jess green (get the wordpress relationship working)
Jess green (get the wordpress relationship working)Jess green (get the wordpress relationship working)
Jess green (get the wordpress relationship working)
 
Fred roed (what a 60’s rock n’ roll band can teach us about online publishing)
Fred roed (what a 60’s rock n’ roll band can teach us about online publishing)Fred roed (what a 60’s rock n’ roll band can teach us about online publishing)
Fred roed (what a 60’s rock n’ roll band can teach us about online publishing)
 
Ashley Shaw (Scaling WordPress)
Ashley Shaw (Scaling WordPress)Ashley Shaw (Scaling WordPress)
Ashley Shaw (Scaling WordPress)
 
David Perel About Obox
David Perel About OboxDavid Perel About Obox
David Perel About Obox
 
Rafiq phillips (seo fundamentalism)
Rafiq phillips (seo fundamentalism)Rafiq phillips (seo fundamentalism)
Rafiq phillips (seo fundamentalism)
 

Recently uploaded

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 

Recently uploaded (20)

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 

Anthony Somerset - Site Speed = Success!

  • 1. SITE SPEED = SUCCESS! Optimizing WordPress from the server up Anthony Somerset
  • 2. ABOUT • Anthony Somerset – Infrastructure Engineer, W3 EDGE • Manage W3 EDGE servers day to day • Build out Servers and infrastructure for new clients primarily on Amazon Web Services • Supporting existing users of W3 Total Cache plugin • Some work on the W3 Total Cache plugin • Motorsport Nut (the 4 wheel variety!)
  • 3. ROADMAP • Configuring & Optimizing MySQL (Including general WP based optimizations) • Configuring PHP for efficient memory usage • Installing & Configuring APC – Common Caveats • W3 Total Cache recommended configuration • Questions?
  • 4. OR
  • 5. ROOT ACCESS REQUIRED! • You need a dedicated server or VPS to do 90% of the following stuff and root level access • I’m assuming you already have the Web Stack built whether that be LEMP, LAMP etc. • I’m assuming Linux is the OS being used! – Sorry no WAMP here please! • I’m assuming you are comfortable with SSH, command line, Vi/Nano etc. • Recommended Resources (just some of many) • http://www.if-not-true-then-false.com/2011/nginx-and-php-fpm-configuration-and- optimizing-tips-and-tricks/ • https://www.digitalocean.com/community/articles/how-to-install-linux-nginx-mysql- php-lemp-stack-on-ubuntu-12-04 • http://wiki.nginx.org/Wordpress • http://codex.wordpress.org/Nginx
  • 6. MYSQL TUNING • The DB is often the first bottleneck in WordPress • Config file most commonly located in /etc/my.cnf • Debian/Ubuntu symlinks this to /etc/mysql/my.cnf • Most config options often don’t need a restart (they will have a matching set @@global. Query) • /etc/init.d/mysql reload does not work reliably on all systems – restart is safer • Useful Tools (direct download links to latest version): • Mysqltuner - http://sts.io/mysqltuner • Tuning-primer - http://sts.io/tuningprimer
  • 7. MYSQL TUNING • Convert MyISAM tables to InnoDB • You lose default WP search (which was never that great) • Some alternative search plugins: • http://wordpress.org/extend/plugins/wordpress-sphinx-plugin/ - you need sphinx installed and running – the plugin can do this though • http://wordpress.org/extend/plugins/google-custom-search/ - requires no extra running software, but does need signing up for at Google • InnoDB scales better because it does row level locking instead of table level locking • This has greater impact for busier sites, lots of wp-admin traffic or lots of comments • InnoDB has better memory caching support than MyISAM – whole DB can be stored in RAM (if you have it available)
  • 8. MYSQL TUNING • max_connections – make sure its set to the max number of DB connections you see at peak time + 20% • skip_name_resolve – can save up to 20% time on initial connection performance • Caveat – you cannot use hostnames in MySQL user permissions only IP’s • Doesn’t have any effect if you are using MySQL sockets (e.g. localhost) – which are faster than TCP anyway! • query_cache_size – don’t set to more than 128M the cost to clear it above that generally is worse than the performance gained by the larger cache • tmp_table_size, max_heap_table_size – set both to at least size of your largest table (if you have the ram) • innodb_buffer_pool_size – set this to the overall size of your InnoDB tables + 15%
  • 9. MYSQL TUNING • innodb_file_per_table – great on multi disk Hardware RAID arrays (note, avoid RAID 5 or RAID 6 and variants for MySQL if you can RAID 10 is still fastest with least problems in event of a disk failure) • innodb_flush_method = O_DIRECT – great if you have Hardware raid and Battery backup • innodb_log_file_size = 1024M – stop MySQL before you make this change! Saves file descriptors being used for too many log files • innodb_log_buffer_size = 32M – set this adequately to avoid writing to disk too much but not so high that you could lose a large amount of data in the event of failure • Only enable the Slow log if you are actively debugging – leave it disabled otherwise
  • 10. MYSQL TUNING - WORDPRESS • Delete Spam comments – don’t just leave them hanging around • Clear out old post/page revisions and limit number of created revisions - http://codex.wordpress.org/Editing_wp-config.php#Post_Revisions • Limit the auto-save interval, useful if you have lots of editors - http://codex.wordpress.org/Editing_wp-config.php#Modify_AutoSave_Interval • Clear out trash posts, can even be automated via wp_cron - http://codex.wordpress.org/Editing_wp-config.php#Empty_Trash • Use an alternative comment system – e.g. Disqus • If a single DB server cant cope then look at DB caching (W3TC) or DB replication (HyperDB or W3TC Enterprise)
  • 11. TUNING PHP • Config files in various locations depending on the OS and may or may not use an included files based system • Debian/Ubuntu /etc/php5/…. And users/etc/php5/conf.d/ • Red Hat/CentOS /etc/php.ini /etc/php.d/ • Generally need to restart PHP service to activate changes (except when using apache/mod_php) • Using an Opcode Cache (like APC) is often where biggest gains are had. • Only enable/compile the minimum modules needed to run your site • Only do the required tasks in WordPress/PHP – e.g. don’t use WP plugins to do site backups – use a proper DB/File backup tool – if you use VaultPress – use the (S)FTP and MySQL connection options to reduce impact on the site code
  • 12. TUNING PHP • Watch your memory usage – if you consistently need more than 128M memory_limit then look at what parts of your site/code is using large amounts of memory • Don’t extend max_execution_time – if something takes more than 30 seconds to process then something is wrong or should be done outside of the webserver process • Disable WP_Cron and switch it to a system cron task – wp-config.php: define('DISABLE_WP_CRON', true); - reduces number of PHP calls quite a bit and prevents race conditions in PHP on some busier sites – running it at regular defined intervals is more reliable and often more efficient • Remember to set post_max_size and upload_max_filesize for your uploads • Set date.timezone – it will save a warning in your logs which could cause slow downs because of disk writes on busy servers (I have seen this happen!) • If using multiple webservers – then set session.save_handler to use Memcached or similar
  • 13. INSTALLING APC • APC will generally give biggest gains in PHP (or any other opcode cache) • Debian (assuming using the DotDeb repositories) • apt-get install php5-apc • Red Hat/Centos (use EPEL/Remi for most up to date) • yum install php-pecl-apc • cPanel – use WHM or: • pecl install APC
  • 14. CONFIGURING APC extension = apc.so apc.mmap_file_mask = "/tmp/apc.XXXXXX” apc.enabled = 1 apc.slam_defense = 0 apc.shm_segments = 1 apc.file_update_protection = 2 apc.shm_size = 128M apc.enable_cli = 0 apc.optimization = 0 apc.max_file_size = 10M apc.num_files_hint = 4096 apc.stat = 0 apc.ttl = 3600 apc.write_lock = 1 apc.user_ttl = 3600 apc.report_autofilter = 0 apc.gc_ttl = 3600 apc.include_once_override = 0 apc.cache_by_default = 1 apc.coredump_unmap = 0 apc.filters = "” apc.stat_ctime = 0
  • 15. CONFIGURING APC - CAVEATS • apc.stat = setting to 0 means it wont check for file changes • Means you have to manually clear APC caches • But gives much much more scale to servers by saving on many file system calls • Make sure apc.shm_size is large enough for your cache • APC is known to show nasty errors or just plain white screen a site when it runs out of memory • In rare cases apc.mmap_file_mask set to the /tmp directory can cause an abnormally high number of disk writes setting it to /dev/zero tends to solve the issue • Set TTL’s too low and things don’t get cached for long enough – too high and you might hit a cache full error – setting it to zero means caches get flushed as soon as cache gets full (this is bad)
  • 16. W3 TOTAL CACHE • The Defaults are only a fail safe – they will not give you the best overall performance • Best config for a single server is not the best for a multi server setup • Page Cache – Use Disk Enhanced for single servers, Memcached for multiple – Nginx/Apache Rewrites are generally much faster than PHP or Memcached but consistency needed when multiple servers in play • Minify – same applies here, Disk for single server, Memcached for multiple • DB – Avoid Disk if you can. Memcached works very well here for both single and multiple server setups – APC is better than file if you don’t have Memcached if you use Disk make sure your Disks are fast – and prefer no caching if your DB is faster than File caching • Object – APC is fastest here, use Memcached if you have to for multiple servers • CDN – Enable it! – origin pull is generally easiest and simplest to manage – make use of any available API’s if we support it (e.g. MaxCDN/NetDNA, Amazon CloudFront)
  • 17. W3 TOTAL CACHE – BROWSER CACHE • Enable all the options under Browser Cache. • Do Not Process 404s – make sure that any plugins that require WordPress for static files have there files whitelisted – e.g. WordPress SEO by Yoast – sitemap feature requires whitelisting • Prevent caching of objects after settings change – this appends a query string to all static file URL’s allowing you to set very long expires times (the default in W3TC if expires enabled) • If using CDN, make sure to enable the set cookie domain option to make sure new users cant send cookies in requests to your CDN resources • eTags are often not needed for sites using single servers – leave them disabled unless you know they are needed, it reduces the http header response size.
  • 18. W3 TOTAL CACHE – PAGE CACHE • Enabling cache 404 pages in page cache – this returns a 200 error which can have an adverse effect on SEO use at your peril! Better to make sure your 404 page is efficient in its WP calls and that you generally have no 404’s in the first place • Don't cache pages for logged in users – if you disable this beware of the admin bar appearing for logged out users – with a logged in users username! A good idea to disable the admin bar on the front end when you do this • Cache Feeds if you can – even if you redirect to FeedBurner or similar services, w3tc will purge the feed from its cache every time you update/publish a post • Use a sitemap plugin and prime your cache with the sitemap