SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
Launch with Confidence!
Improving Website
Performance and Scalability
with Memcached
Presented by: Shawn Smiley [Lead Architect]
About Me 
•  Shawn S. Smiley
•  Lead Architect at
Achieve Internet
•  15+ years experience
in Internet software
and hosting 
•  5+ years with Drupal
•  Recently married

LinkedIn: www.linkedin.com/in/shawnsmiley/"
Twitter: @shawnsmiley"

3	
  
Agenda
About Achieve
§  At a Glance
§  Key Clients
§  Achieve Services
Intro to Caching
§  How it Works?
What is Memcached?
When and Why You Should Use It?
§  Performance and Stats
Minimal Setup
§  Components of a Memcache Solution 
§  PECL Memcache vs Memcached
§  Commands
Verifying and Troubleshooting
§  Minimal Install Verification
Distributed Configurations
§  When to Use It
§  Types
§  Configuration
§  Tuning Tips
Are There Alternatives?
Conclusion
Q&A

4	
  
Achieve at a Glance
legal name
 Achieve Internet, Inc."

founded
 1998"

headquarters
 1767 Grand Avenue, Suite #2 | San Diego, CA 92109 | U.S.A."

leadership
 Ron Huber, Chief Executive Officer"

mission
 Achieve leverages best-in-class Open Source web application development experience, and tools to create
optimized platforms for enterprise clients. "

primary
contact info
 800.618.8777 | info@achieveinternet.com"


Achieve is a 
leading software development company that leverages Drupal to develop advanced
enterprise web and mobile solutions for an array of clients in varying verticals. Achieve has a
singular goal: To help you launch your advanced digital platforms with confidence. 


Our ethos is “it’s not magic, it’s excellence,” and our all-star developers deliver on that promise
with every new project we take on by consistently exceeding client expectations. 


5	
  
Key Clients: Media & Entertainment

clients!

6	
  
Additional Key Clients

clients!

7	
  
Achieve Services
Achieve builds custom enterprise IT management systems to solve the most complex business challenges. 
Application
Development!

Achieve makes integration easy so you can focus on what is most important to your business – your customers. 
Platform !
Integration!

Optimize the performance of your web site or application to increase productivity and streamline operations.  
Infrastructure
Services!

Achieve has vast experience in creating global web solutions that far out perform the competition.  
Globalization
Services!

‘Going Mobile’ is no longer an option. With Achieve you won’t have to compromise design for utility.
Mobility & End User
Services!

8	
  
Intro to Caching

9	
  
Intro to Caching
•  A cache is a system that stores the results of some
processing for repeated later use.
•  Example in Drupal is the page cache.
•  Utilized via the cache_set() and cache_get() Drupal API
calls.
•  Caches in Drupal are Key/Value pairs.
10	
  
Intro to Caching: How it Works? 
REQUEST

CACHE_
GET()

CHECK CACHE

RETURN
CACHED
DATA

11	
  

QUERY CACHE
Intro to Caching: How it Works? 
REQUEST

CACHE_
GET()

CHECK CACHE

QUERY CACHE

GENERATE
DATA

RETURN
CACHED
DATA

CACHE_SET()

12	
  

SAVE CACHE
What is Memcached?

13	
  
What is Memcached?
•  “Memcached is an in-memory key-value store for small
chunks of arbitrary data (strings, objects) from results of
database calls, API calls, or page rendering.” –
memcached.org
•  A system to cache data in RAM rather than in database.
•  Replaces Drupal’s default database cache. 
•  Just one component of your high performance scalable
architecture.

14	
  
When & Why Should You Use It?

15	
  
Why Use Memcached?
•  Improves cache read/write performance
•  Reduces the number of database queries
•  Reduces database load
•  Can improve page load performance*
•  Allows distributing the cache load to separate servers
•  Moves the threshold for performance degradation to a higher
number of concurrent users.
* By itself, Memcache.d won’t provide a significant performance improve on low traffic sites. The page load performance
boost comes mostly from offloading work from your database server so that the system can handle more requests.

16	
  
Performance Stats
•  Performance & Scalability
•  Cache read performance: 4X Faster
•  Cache write performance: 60X Faster

•  Actual statistics* (Drupal core vs. Memcached)
•  1000 Cache write operations: 12 seconds vs. 0.2 seconds
•  1000 Cache read operations: 0.4 seconds vs. 0.1 seconds
•  DB queries: 3028 vs. 13

* Cache Read/Write stats are for performing 2,000 operations (1,000 write, 1,000 read)
* Your results will vary, tests performed on a single AWS instance with default D7 install

17	
  
Performance Stats
Caching	
  Performance	
  Comparison:	
  2,000	
  Opera&ons	
  

Execu&on	
  &me	
  (seconds)	
  

12	
  

Core	
  DB	
  
Memcache	
  

1	
  

0.0833333	
  
Cache	
  Set	
  

Cache	
  Get	
  

18	
  
Performance Degradation Threshold

NOTE:	
  This	
  is	
  an	
  idealized	
  graph	
  of	
  the	
  average	
  change	
  in	
  response	
  Jme	
  across	
  	
  
several	
  projecs.	
  
19	
  
When to (or not) use Memcached
•  Use Memcached when:
•  Significant portion of site traffic is authenticated users or when
static page caching isn’t an option.
•  Have adequate server resources to allocate to Memcached
without negatively impacting other services.
•  Have enough traffic to make a difference.

•  Don’t use Memcached when:
•  Site is completely anonymous traffic 
• 

Static caching is better for this (such as Varnish or Boost)

•  Low traffic sites that are not straining server resources 
• 

Probably won’t see any noticeable benefit and have increased the
complexity of the system.

•  Severely resource constrained single server hosting
• 

Can negatively impact performance/scalability in this case.

20	
  
Setup

21	
  
Components of Memcached Solution
•  Memcached Daemon (v 1.4.x)
•  PHP Extension
•  PECL Memcache (> 3.x) 
•  PECL Memcache.d (> 2.x)
•  TIP: Use the setting “memcache_extension” to select
which library to use if you have both installed.

•  Memcache Module

•  Drupal 8, Drupal 7.9+, Pressflow 6, or Drupal
6 with core patch
22	
  
PECL Memcache vs. Memcached
PECL Memcache

PECL Memcached

Stable, not as frequently updated

Newer, more features

Easy to install

More complicated install with multiple
dependencies

Lower PHP memory footprint in some
cases.

Can be slightly faster in some cases

Slightly better for single server
Memcached daemon installations.

Slightly better for distributed or
clustered Memcached daemon
installations.
Igbinary support

* Generally, we default to PECL Memcache unless a project can take
advantage of the additional features provided by PECL Memcached.

23	
  
Minimal Install: Commands (Ubuntu)
•  Enable apt multiverse repositories
•  sudo apt-get install php-pear build-essential
•  sudo apt-get install memcached
•  sudo apt-get install php5-memcache
•  drush dl memcache devel


24	
  
Minimal Install: Daemon Configuration
/etc/memcached.conf (or /etc/default/memcached)
•  Configuration file for the memcached daemon
•  Important settings:
•  -m 64
• 

Amount of memory in MB to allocate.

•  -p 11211
• 

TCP/IP Port to listen for cache requests on.

•  -l 127.0.0.1
• 

IP Address to listen for cache requests on.


25	
  
Determining Memcached size
•  Look at the data size of all cache* tables in your DB.
•  Use this handy query to get the total size:
SELECT count(*) TABLES,
sum(table_rows) ROWS,
concat(round(sum(data_length)/(1024*1024),2),'MB') DATA,
concat(round(sum(index_length)/(1024*1024),2),'MB') idx,
concat(round(sum(data_length+index_length)/(1024*1024),2),'MB') total_size
FROM information_schema.TABLES
WHERE TABLE_SCHEMA=’dbname' AND TABLE_NAME LIKE "cache%"

•  Total memory allocated to Memcached should be at least
the size returned in the “DATA” column. 
•  I usually like to add at least 50% to this size to start with.

26	
  
Note about Memcached security
•  Basically there are no security controls in Memcached.
•  Any user or application that can establish a TCP
connection to the Memcached daemon can access all
data stored within Memcached.
•  Security Best Practices:
•  Always set the daemon to listen on a specific IP address/
network interface.
•  Use 127.0.0.1 if there is only 1 Memcached server and it is
running on the same server as the web server.
•  Use iptables or other firewall to restrict access to the
Memcached TCP/IP Port(s).

27	
  
Minimal Install: Drupal Settings.php
// Required minimum settings.
$conf['cache_backends'][] = 'sites/all/modules/contrib/memcache/memcache.inc';
$conf['cache_default_class'] = 'MemCacheDrupal';
$conf['cache_class_cache_form'] = 'DrupalDatabaseCache';

// Optional, but recommended settings.
$conf['memcache_key_prefix'] = 'ai_'; // Remember about 250 byte key size limit.
$conf['lock_inc'] = 'sites/all/modules/contrib/memcache/memcache-lock.inc';
$conf['memcache_stampede_protection'] = TRUE;

// The following are required only if Memcached is on a different server.
$conf['memcache_servers’] = array(’10.11.12.13:11211' => 'default');
$conf['memcache_bins’] = array('cache' => 'default');

// Only if both PECL Memcache and Memcached are installed.
$conf['memcache_extension'] = 'Memcache'; 

28	
  
Minimal Install: Drupal Configuration
Drupal Performance Settings

29	
  
Verifying & Troubleshooting

30	
  
Minimal Install: Verifying
•  Memcache Admin Module
•  Adds configuration page at Configuration => Memcached
•  Enable the option “Show Memcache statistics” to see a log of
all Memcached calls on each page.

•  Devel Module
•  Enable the Query Logging option.

•  Memcache Admin UIs:
•  https://code.google.com/p/phpmemcacheadmin/
•  http://livebookmark.net/journal/2008/05/21/memcachephpstats-like-apcphp/ 




31	
  
Minimal Install: Verifying - Memcache
•  Enable the module “Memcache Admin”
•  Config page at Configuration => Memcache
•  Enable the option “Show Memcache statistics” to see a log of
all Memcached calls on each page.


32	
  
Minimal Install: Verifying - Devel
•  In Devel Settings, enable “Display query log”
•  Reload pages, you’ll see a list of all queries executed
•  Ensure there are no calls to any “cache*” tables (other than
cache_form)
•  Ensure there are no calls to the “semaphore” table (lock.inc)

33	
  
Minimal Install: Verifying – Admin UIs
Demo
•  Drupal Memcache Statistics
•  memcache.php
•  Memcache Admin

34	
  
Distributed Configurations

35	
  
Distributed Install: Overview
•  When to use

•  Types of distributed installs

•  Configuration Steps

36	
  
Distributed Install: When To Use It
•  High traffic sites making more cache requests than a
single instance can efficiently handle. 
•  The default config of a Memcached daemon will support up
to 1,024 simultaneous connection requests.

•  Large caches where it makes sense to separate out
cache data by type or update frequency (e.g. cache_menu
is usually pretty static whereas the default cache could
be constantly changing)
•  I start looking at this as an option when the memory
allocation for Memcached starts getting over 128MB.
37	
  
Distributed Install: Types
•  Multi-server/Clustered
•  Distributes cache load across multiple Memcached servers.
•  Allows for handling larger numbers of cache operations.
Useful for high traffic sites.
•  NOTE: Caches are not replicated between multiple servers by
default.

•  Multi-bin
•  Segments different types of caches to different servers.
•  Useful for very large caches with varying characteristics (e.g.
segmenting mostly read-only caches from caches that are
frequently updated)

•  Hybrid
•  You can combine both of the above approaches (e.g. have
multiple bins with each bin spread across multiple servers).
38	
  
Distributed Install: Configuration
•  Server configuration is same as the basic install, just on
multiple servers.
•  Make sure the Memcached daemon is configured to listen on
each servers external IP address (not 127.0.0.1).
•  All daemons within a cluster should be configured with the
same memory allocation.
•  You can have multiple Memcached daemons running on a
single server. Just use different ports.



39	
  
Distributed Install: Configuration
Additional settings needed in the site settings.php file
// Must be exactly the same on all web servers.
$conf['memcache_servers' = array(
'10.11.12.13:11211' => 'default',
'10.11.12.14:11211' => 'default',
'10.11.12.15:11211' => 'my_readonly_bin',
);
$conf['memcache_bins’] = array(
'cache' => 'default', // must specify if setting this variable.
'cache_bootstrap' => 'my_readonly_bin',
'cache_menu' => 'my_readonly_bin',
'cache_path' => 'my_readonly_bin',
);
// If using PECL Memcached.
$conf['memcache_options'] = array(
Memcached::OPT_DISTRIBUTION => Memcached::DISTRIBUTION_CONSISTENT,
);

40	
  
Tuning Tips
•  Watch the “Available Memory”, “Evictions” (==0), and
“reclaimed” (==0) stats to determine if memory allocation
needs to be adjusted.
•  Watch “Max Connection Errors” (==0), “Accepting
Connections” (==1), “Connection Yields” (==0), and
“Listen Disabled Number” (==0) to determine when you
need to move from a single memcached server to
multiple servers.
Tip: See this page for a description of various stat counters:
http://www.pal-blog.de/entwicklung/perl/memcached-statistics-statscommand.html

41	
  
Alternatives

42	
  
Are There Alternatives?
Redis (https://drupal.org/project/redis)
•  Great for persistent or replicated caches.
•  Supports additional caching options such as structured data
caching.
•  More efficient support for selective cache delete/expiration.
•  Nice comparison to Memcache: 

http://noblogdeffound.blogspot.com/2013/04/memcachedvs-redis-comparison-name.html


MongoDB Cache (https://drupal.org/project/mongodb)
•  Great for extremely large caches or when a large amount of
data must be stored in a single cache key.




43	
  
Conclusion 
By adding Memcached to our hosting solution we:
•  Reduced the number of database queries.
•  Reduced the load on our database servers.
•  Reduced the amount of time the site spends accessing
cached data.
•  Reduced the rendering time for page requests.
•  Improved the overall scalability of the site.

44	
  
Thank You
Shawn Smiley!
§  Lead Engineer"
§  shawn.smiley@achieveinternet.com"
§  Drupal: shawn_smiley"
§  800.618.8777"
Connect with Achieve
If you have any further questions or would like to get in touch with
Achieve you can do so on these various channels:
info@achieveinternet.com
linkedin.com/company/Achieve-Internet
plus.google.com/101805819007866218919
@AchieveInternet
facebook.com/pages/Achieve-Internet

46	
  
Q & A

47	
  

Mais conteúdo relacionado

Mais procurados

Joomla! Performance on Steroids
Joomla! Performance on SteroidsJoomla! Performance on Steroids
Joomla! Performance on SteroidsSiteGround.com
 
WordCamp RVA 2011 - Performance & Tuning
WordCamp RVA 2011 - Performance & TuningWordCamp RVA 2011 - Performance & Tuning
WordCamp RVA 2011 - Performance & TuningTimothy Wood
 
Piecing Together the WordPress Puzzle
Piecing Together the WordPress PuzzlePiecing Together the WordPress Puzzle
Piecing Together the WordPress PuzzleBusiness Vitality LLC
 
High performance WordPress
High performance WordPressHigh performance WordPress
High performance WordPressMikel King
 
Simple Site Speed Improvements (SMX 2010)
Simple Site Speed Improvements (SMX 2010)Simple Site Speed Improvements (SMX 2010)
Simple Site Speed Improvements (SMX 2010)Ralf Schwoebel
 
How to reduce database load using Memcache
How to reduce database load using MemcacheHow to reduce database load using Memcache
How to reduce database load using Memcachevaluebound
 
Wordpress optimization
Wordpress optimizationWordpress optimization
Wordpress optimizationAlmog Baku
 
Building faster websites: web performance with WordPress
Building faster websites: web performance with WordPressBuilding faster websites: web performance with WordPress
Building faster websites: web performance with WordPressJohannes Siipola
 
Magento Performance Optimization 101
Magento Performance Optimization 101Magento Performance Optimization 101
Magento Performance Optimization 101Angus Li
 
Caching: A Guided Tour - 10/12/2010
Caching: A Guided Tour - 10/12/2010Caching: A Guided Tour - 10/12/2010
Caching: A Guided Tour - 10/12/2010Jason Ragsdale
 
Tulsa tech fest 2010 - web speed and scalability
Tulsa tech fest 2010  - web speed and scalabilityTulsa tech fest 2010  - web speed and scalability
Tulsa tech fest 2010 - web speed and scalabilityJason Ragsdale
 
WordCamp Harare 2016 - Site Speed = Success
WordCamp Harare 2016 - Site Speed = SuccessWordCamp Harare 2016 - Site Speed = Success
WordCamp Harare 2016 - Site Speed = SuccessAnthony Somerset
 
Methods and Best Practices for High Performance eCommerce
Methods and Best Practices for High Performance eCommerceMethods and Best Practices for High Performance eCommerce
Methods and Best Practices for High Performance eCommercedmitriysoroka
 
WordPress at Peak Performance (Radio Edit)
WordPress at Peak Performance (Radio Edit)WordPress at Peak Performance (Radio Edit)
WordPress at Peak Performance (Radio Edit)jaredwsmith
 

Mais procurados (19)

Joomla! Performance on Steroids
Joomla! Performance on SteroidsJoomla! Performance on Steroids
Joomla! Performance on Steroids
 
WordCamp RVA 2011 - Performance & Tuning
WordCamp RVA 2011 - Performance & TuningWordCamp RVA 2011 - Performance & Tuning
WordCamp RVA 2011 - Performance & Tuning
 
23 Ways To Speed Up WordPress
23 Ways To Speed Up WordPress23 Ways To Speed Up WordPress
23 Ways To Speed Up WordPress
 
Piecing Together the WordPress Puzzle
Piecing Together the WordPress PuzzlePiecing Together the WordPress Puzzle
Piecing Together the WordPress Puzzle
 
High performance WordPress
High performance WordPressHigh performance WordPress
High performance WordPress
 
Caching 101
Caching 101Caching 101
Caching 101
 
Simple Site Speed Improvements (SMX 2010)
Simple Site Speed Improvements (SMX 2010)Simple Site Speed Improvements (SMX 2010)
Simple Site Speed Improvements (SMX 2010)
 
5 Reasons to Upgrade Ehcache to BigMemory Go
5 Reasons to Upgrade Ehcache to BigMemory Go5 Reasons to Upgrade Ehcache to BigMemory Go
5 Reasons to Upgrade Ehcache to BigMemory Go
 
How to reduce database load using Memcache
How to reduce database load using MemcacheHow to reduce database load using Memcache
How to reduce database load using Memcache
 
Wordpress optimization
Wordpress optimizationWordpress optimization
Wordpress optimization
 
Building faster websites: web performance with WordPress
Building faster websites: web performance with WordPressBuilding faster websites: web performance with WordPress
Building faster websites: web performance with WordPress
 
Magento Performance Optimization 101
Magento Performance Optimization 101Magento Performance Optimization 101
Magento Performance Optimization 101
 
Caching: A Guided Tour - 10/12/2010
Caching: A Guided Tour - 10/12/2010Caching: A Guided Tour - 10/12/2010
Caching: A Guided Tour - 10/12/2010
 
Tulsa tech fest 2010 - web speed and scalability
Tulsa tech fest 2010  - web speed and scalabilityTulsa tech fest 2010  - web speed and scalability
Tulsa tech fest 2010 - web speed and scalability
 
WordCamp Harare 2016 - Site Speed = Success
WordCamp Harare 2016 - Site Speed = SuccessWordCamp Harare 2016 - Site Speed = Success
WordCamp Harare 2016 - Site Speed = Success
 
Methods and Best Practices for High Performance eCommerce
Methods and Best Practices for High Performance eCommerceMethods and Best Practices for High Performance eCommerce
Methods and Best Practices for High Performance eCommerce
 
Varnish Cache
Varnish CacheVarnish Cache
Varnish Cache
 
WordPress at Peak Performance (Radio Edit)
WordPress at Peak Performance (Radio Edit)WordPress at Peak Performance (Radio Edit)
WordPress at Peak Performance (Radio Edit)
 
Servlets
ServletsServlets
Servlets
 

Semelhante a Improving Website Performance and Scalability with Memcached

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
 
Emc sql server 2012 overview
Emc sql server 2012 overviewEmc sql server 2012 overview
Emc sql server 2012 overviewsolarisyougood
 
Midwest PHP - Scaling Magento
Midwest PHP - Scaling MagentoMidwest PHP - Scaling Magento
Midwest PHP - Scaling MagentoMathew Beane
 
Cloud computing 3702
Cloud computing 3702Cloud computing 3702
Cloud computing 3702Jess Coburn
 
MagentoECG-UsingRedisasaCacheBackendinMagento
MagentoECG-UsingRedisasaCacheBackendinMagentoMagentoECG-UsingRedisasaCacheBackendinMagento
MagentoECG-UsingRedisasaCacheBackendinMagentoKirill Morozov
 
patchVantage Cloud Starter Pack
patchVantage Cloud Starter Pack patchVantage Cloud Starter Pack
patchVantage Cloud Starter Pack David McNish
 
Phpworld.2015 scaling magento
Phpworld.2015 scaling magentoPhpworld.2015 scaling magento
Phpworld.2015 scaling magentoMathew Beane
 
12 Things about Oracle WebLogic Server 12c
12 Things	 about Oracle WebLogic Server 12c12 Things	 about Oracle WebLogic Server 12c
12 Things about Oracle WebLogic Server 12cGuatemala User Group
 
Cloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudCloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudEberhard Wolff
 
Zendcon scaling magento
Zendcon scaling magentoZendcon scaling magento
Zendcon scaling magentoMathew Beane
 
Cognos Performance Tuning Tips & Tricks
Cognos Performance Tuning Tips & TricksCognos Performance Tuning Tips & Tricks
Cognos Performance Tuning Tips & TricksSenturus
 
Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...
Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...
Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...IBM Systems UKI
 
MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014Ryusuke Kajiyama
 
Presentation architecting a cloud infrastructure
Presentation   architecting a cloud infrastructurePresentation   architecting a cloud infrastructure
Presentation architecting a cloud infrastructurexKinAnx
 
Presentation architecting a cloud infrastructure
Presentation   architecting a cloud infrastructurePresentation   architecting a cloud infrastructure
Presentation architecting a cloud infrastructuresolarisyourep
 
Drupal performance optimization Best Practices
Drupal performance optimization Best PracticesDrupal performance optimization Best Practices
Drupal performance optimization Best PracticesRatnesh kumar, CSM
 
Virtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - VarrowVirtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - VarrowAndrew Miller
 
Optimizing Magento Performance with Zend Server
Optimizing Magento Performance with Zend ServerOptimizing Magento Performance with Zend Server
Optimizing Magento Performance with Zend Servervarien
 
Drupal performance and scalability
Drupal performance and scalabilityDrupal performance and scalability
Drupal performance and scalabilityTwinbit
 

Semelhante a Improving Website Performance and Scalability with Memcached (20)

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
 
Emc sql server 2012 overview
Emc sql server 2012 overviewEmc sql server 2012 overview
Emc sql server 2012 overview
 
ASP.NET MVC Zero to Hero
ASP.NET MVC Zero to HeroASP.NET MVC Zero to Hero
ASP.NET MVC Zero to Hero
 
Midwest PHP - Scaling Magento
Midwest PHP - Scaling MagentoMidwest PHP - Scaling Magento
Midwest PHP - Scaling Magento
 
Cloud computing 3702
Cloud computing 3702Cloud computing 3702
Cloud computing 3702
 
MagentoECG-UsingRedisasaCacheBackendinMagento
MagentoECG-UsingRedisasaCacheBackendinMagentoMagentoECG-UsingRedisasaCacheBackendinMagento
MagentoECG-UsingRedisasaCacheBackendinMagento
 
patchVantage Cloud Starter Pack
patchVantage Cloud Starter Pack patchVantage Cloud Starter Pack
patchVantage Cloud Starter Pack
 
Phpworld.2015 scaling magento
Phpworld.2015 scaling magentoPhpworld.2015 scaling magento
Phpworld.2015 scaling magento
 
12 Things about Oracle WebLogic Server 12c
12 Things	 about Oracle WebLogic Server 12c12 Things	 about Oracle WebLogic Server 12c
12 Things about Oracle WebLogic Server 12c
 
Cloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudCloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and Cloud
 
Zendcon scaling magento
Zendcon scaling magentoZendcon scaling magento
Zendcon scaling magento
 
Cognos Performance Tuning Tips & Tricks
Cognos Performance Tuning Tips & TricksCognos Performance Tuning Tips & Tricks
Cognos Performance Tuning Tips & Tricks
 
Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...
Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...
Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...
 
MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014
 
Presentation architecting a cloud infrastructure
Presentation   architecting a cloud infrastructurePresentation   architecting a cloud infrastructure
Presentation architecting a cloud infrastructure
 
Presentation architecting a cloud infrastructure
Presentation   architecting a cloud infrastructurePresentation   architecting a cloud infrastructure
Presentation architecting a cloud infrastructure
 
Drupal performance optimization Best Practices
Drupal performance optimization Best PracticesDrupal performance optimization Best Practices
Drupal performance optimization Best Practices
 
Virtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - VarrowVirtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - Varrow
 
Optimizing Magento Performance with Zend Server
Optimizing Magento Performance with Zend ServerOptimizing Magento Performance with Zend Server
Optimizing Magento Performance with Zend Server
 
Drupal performance and scalability
Drupal performance and scalabilityDrupal performance and scalability
Drupal performance and scalability
 

Mais de Acquia

Acquia_Adcetera Webinar_Marketing Automation.pdf
Acquia_Adcetera Webinar_Marketing Automation.pdfAcquia_Adcetera Webinar_Marketing Automation.pdf
Acquia_Adcetera Webinar_Marketing Automation.pdfAcquia
 
Acquia Webinar Deck - 9_13 .pdf
Acquia Webinar Deck - 9_13 .pdfAcquia Webinar Deck - 9_13 .pdf
Acquia Webinar Deck - 9_13 .pdfAcquia
 
Taking Your Multi-Site Management at Scale to the Next Level
Taking Your Multi-Site Management at Scale to the Next LevelTaking Your Multi-Site Management at Scale to the Next Level
Taking Your Multi-Site Management at Scale to the Next LevelAcquia
 
CDP for Retail Webinar with Appnovation - Q2 2022.pdf
CDP for Retail Webinar with Appnovation - Q2 2022.pdfCDP for Retail Webinar with Appnovation - Q2 2022.pdf
CDP for Retail Webinar with Appnovation - Q2 2022.pdfAcquia
 
May Partner Bootcamp 2022
May Partner Bootcamp 2022May Partner Bootcamp 2022
May Partner Bootcamp 2022Acquia
 
April Partner Bootcamp 2022
April Partner Bootcamp 2022April Partner Bootcamp 2022
April Partner Bootcamp 2022Acquia
 
How to Unify Brand Experience: A Hootsuite Story
How to Unify Brand Experience: A Hootsuite Story How to Unify Brand Experience: A Hootsuite Story
How to Unify Brand Experience: A Hootsuite Story Acquia
 
Using Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CX
Using Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CXUsing Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CX
Using Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CXAcquia
 
Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development WorkflowImprove Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development WorkflowAcquia
 
September Partner Bootcamp
September Partner BootcampSeptember Partner Bootcamp
September Partner BootcampAcquia
 
August partner bootcamp
August partner bootcampAugust partner bootcamp
August partner bootcampAcquia
 
July 2021 Partner Bootcamp
July  2021 Partner BootcampJuly  2021 Partner Bootcamp
July 2021 Partner BootcampAcquia
 
May Partner Bootcamp
May Partner BootcampMay Partner Bootcamp
May Partner BootcampAcquia
 
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASYDRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASYAcquia
 
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead MachineWork While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead MachineAcquia
 
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B LeadsAcquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B LeadsAcquia
 
April partner bootcamp deck cookieless future
April partner bootcamp deck  cookieless futureApril partner bootcamp deck  cookieless future
April partner bootcamp deck cookieless futureAcquia
 
How to enhance cx through personalised, automated solutions
How to enhance cx through personalised, automated solutionsHow to enhance cx through personalised, automated solutions
How to enhance cx through personalised, automated solutionsAcquia
 
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...Acquia
 
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021Acquia
 

Mais de Acquia (20)

Acquia_Adcetera Webinar_Marketing Automation.pdf
Acquia_Adcetera Webinar_Marketing Automation.pdfAcquia_Adcetera Webinar_Marketing Automation.pdf
Acquia_Adcetera Webinar_Marketing Automation.pdf
 
Acquia Webinar Deck - 9_13 .pdf
Acquia Webinar Deck - 9_13 .pdfAcquia Webinar Deck - 9_13 .pdf
Acquia Webinar Deck - 9_13 .pdf
 
Taking Your Multi-Site Management at Scale to the Next Level
Taking Your Multi-Site Management at Scale to the Next LevelTaking Your Multi-Site Management at Scale to the Next Level
Taking Your Multi-Site Management at Scale to the Next Level
 
CDP for Retail Webinar with Appnovation - Q2 2022.pdf
CDP for Retail Webinar with Appnovation - Q2 2022.pdfCDP for Retail Webinar with Appnovation - Q2 2022.pdf
CDP for Retail Webinar with Appnovation - Q2 2022.pdf
 
May Partner Bootcamp 2022
May Partner Bootcamp 2022May Partner Bootcamp 2022
May Partner Bootcamp 2022
 
April Partner Bootcamp 2022
April Partner Bootcamp 2022April Partner Bootcamp 2022
April Partner Bootcamp 2022
 
How to Unify Brand Experience: A Hootsuite Story
How to Unify Brand Experience: A Hootsuite Story How to Unify Brand Experience: A Hootsuite Story
How to Unify Brand Experience: A Hootsuite Story
 
Using Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CX
Using Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CXUsing Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CX
Using Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CX
 
Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development WorkflowImprove Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
 
September Partner Bootcamp
September Partner BootcampSeptember Partner Bootcamp
September Partner Bootcamp
 
August partner bootcamp
August partner bootcampAugust partner bootcamp
August partner bootcamp
 
July 2021 Partner Bootcamp
July  2021 Partner BootcampJuly  2021 Partner Bootcamp
July 2021 Partner Bootcamp
 
May Partner Bootcamp
May Partner BootcampMay Partner Bootcamp
May Partner Bootcamp
 
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASYDRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
 
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead MachineWork While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
 
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B LeadsAcquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
 
April partner bootcamp deck cookieless future
April partner bootcamp deck  cookieless futureApril partner bootcamp deck  cookieless future
April partner bootcamp deck cookieless future
 
How to enhance cx through personalised, automated solutions
How to enhance cx through personalised, automated solutionsHow to enhance cx through personalised, automated solutions
How to enhance cx through personalised, automated solutions
 
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
 
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
 

Último

Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 

Último (20)

Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 

Improving Website Performance and Scalability with Memcached

  • 1. Launch with Confidence! Improving Website Performance and Scalability with Memcached Presented by: Shawn Smiley [Lead Architect]
  • 2. About Me •  Shawn S. Smiley •  Lead Architect at Achieve Internet •  15+ years experience in Internet software and hosting •  5+ years with Drupal •  Recently married LinkedIn: www.linkedin.com/in/shawnsmiley/" Twitter: @shawnsmiley" 3  
  • 3. Agenda About Achieve §  At a Glance §  Key Clients §  Achieve Services Intro to Caching §  How it Works? What is Memcached? When and Why You Should Use It? §  Performance and Stats Minimal Setup §  Components of a Memcache Solution §  PECL Memcache vs Memcached §  Commands Verifying and Troubleshooting §  Minimal Install Verification Distributed Configurations §  When to Use It §  Types §  Configuration §  Tuning Tips Are There Alternatives? Conclusion Q&A 4  
  • 4. Achieve at a Glance legal name Achieve Internet, Inc." founded 1998" headquarters 1767 Grand Avenue, Suite #2 | San Diego, CA 92109 | U.S.A." leadership Ron Huber, Chief Executive Officer" mission Achieve leverages best-in-class Open Source web application development experience, and tools to create optimized platforms for enterprise clients. " primary contact info 800.618.8777 | info@achieveinternet.com" Achieve is a leading software development company that leverages Drupal to develop advanced enterprise web and mobile solutions for an array of clients in varying verticals. Achieve has a singular goal: To help you launch your advanced digital platforms with confidence. Our ethos is “it’s not magic, it’s excellence,” and our all-star developers deliver on that promise with every new project we take on by consistently exceeding client expectations. 5  
  • 5. Key Clients: Media & Entertainment clients! 6  
  • 7. Achieve Services Achieve builds custom enterprise IT management systems to solve the most complex business challenges. Application Development! Achieve makes integration easy so you can focus on what is most important to your business – your customers. Platform ! Integration! Optimize the performance of your web site or application to increase productivity and streamline operations.  Infrastructure Services! Achieve has vast experience in creating global web solutions that far out perform the competition.   Globalization Services! ‘Going Mobile’ is no longer an option. With Achieve you won’t have to compromise design for utility. Mobility & End User Services! 8  
  • 9. Intro to Caching •  A cache is a system that stores the results of some processing for repeated later use. •  Example in Drupal is the page cache. •  Utilized via the cache_set() and cache_get() Drupal API calls. •  Caches in Drupal are Key/Value pairs. 10  
  • 10. Intro to Caching: How it Works? REQUEST CACHE_ GET() CHECK CACHE RETURN CACHED DATA 11   QUERY CACHE
  • 11. Intro to Caching: How it Works? REQUEST CACHE_ GET() CHECK CACHE QUERY CACHE GENERATE DATA RETURN CACHED DATA CACHE_SET() 12   SAVE CACHE
  • 13. What is Memcached? •  “Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.” – memcached.org •  A system to cache data in RAM rather than in database. •  Replaces Drupal’s default database cache. •  Just one component of your high performance scalable architecture. 14  
  • 14. When & Why Should You Use It? 15  
  • 15. Why Use Memcached? •  Improves cache read/write performance •  Reduces the number of database queries •  Reduces database load •  Can improve page load performance* •  Allows distributing the cache load to separate servers •  Moves the threshold for performance degradation to a higher number of concurrent users. * By itself, Memcache.d won’t provide a significant performance improve on low traffic sites. The page load performance boost comes mostly from offloading work from your database server so that the system can handle more requests. 16  
  • 16. Performance Stats •  Performance & Scalability •  Cache read performance: 4X Faster •  Cache write performance: 60X Faster •  Actual statistics* (Drupal core vs. Memcached) •  1000 Cache write operations: 12 seconds vs. 0.2 seconds •  1000 Cache read operations: 0.4 seconds vs. 0.1 seconds •  DB queries: 3028 vs. 13 * Cache Read/Write stats are for performing 2,000 operations (1,000 write, 1,000 read) * Your results will vary, tests performed on a single AWS instance with default D7 install 17  
  • 17. Performance Stats Caching  Performance  Comparison:  2,000  Opera&ons   Execu&on  &me  (seconds)   12   Core  DB   Memcache   1   0.0833333   Cache  Set   Cache  Get   18  
  • 18. Performance Degradation Threshold NOTE:  This  is  an  idealized  graph  of  the  average  change  in  response  Jme  across     several  projecs.   19  
  • 19. When to (or not) use Memcached •  Use Memcached when: •  Significant portion of site traffic is authenticated users or when static page caching isn’t an option. •  Have adequate server resources to allocate to Memcached without negatively impacting other services. •  Have enough traffic to make a difference. •  Don’t use Memcached when: •  Site is completely anonymous traffic •  Static caching is better for this (such as Varnish or Boost) •  Low traffic sites that are not straining server resources •  Probably won’t see any noticeable benefit and have increased the complexity of the system. •  Severely resource constrained single server hosting •  Can negatively impact performance/scalability in this case. 20  
  • 21. Components of Memcached Solution •  Memcached Daemon (v 1.4.x) •  PHP Extension •  PECL Memcache (> 3.x) •  PECL Memcache.d (> 2.x) •  TIP: Use the setting “memcache_extension” to select which library to use if you have both installed. •  Memcache Module •  Drupal 8, Drupal 7.9+, Pressflow 6, or Drupal 6 with core patch 22  
  • 22. PECL Memcache vs. Memcached PECL Memcache PECL Memcached Stable, not as frequently updated Newer, more features Easy to install More complicated install with multiple dependencies Lower PHP memory footprint in some cases. Can be slightly faster in some cases Slightly better for single server Memcached daemon installations. Slightly better for distributed or clustered Memcached daemon installations. Igbinary support * Generally, we default to PECL Memcache unless a project can take advantage of the additional features provided by PECL Memcached. 23  
  • 23. Minimal Install: Commands (Ubuntu) •  Enable apt multiverse repositories •  sudo apt-get install php-pear build-essential •  sudo apt-get install memcached •  sudo apt-get install php5-memcache •  drush dl memcache devel 24  
  • 24. Minimal Install: Daemon Configuration /etc/memcached.conf (or /etc/default/memcached) •  Configuration file for the memcached daemon •  Important settings: •  -m 64 •  Amount of memory in MB to allocate. •  -p 11211 •  TCP/IP Port to listen for cache requests on. •  -l 127.0.0.1 •  IP Address to listen for cache requests on. 25  
  • 25. Determining Memcached size •  Look at the data size of all cache* tables in your DB. •  Use this handy query to get the total size: SELECT count(*) TABLES, sum(table_rows) ROWS, concat(round(sum(data_length)/(1024*1024),2),'MB') DATA, concat(round(sum(index_length)/(1024*1024),2),'MB') idx, concat(round(sum(data_length+index_length)/(1024*1024),2),'MB') total_size FROM information_schema.TABLES WHERE TABLE_SCHEMA=’dbname' AND TABLE_NAME LIKE "cache%" •  Total memory allocated to Memcached should be at least the size returned in the “DATA” column. •  I usually like to add at least 50% to this size to start with. 26  
  • 26. Note about Memcached security •  Basically there are no security controls in Memcached. •  Any user or application that can establish a TCP connection to the Memcached daemon can access all data stored within Memcached. •  Security Best Practices: •  Always set the daemon to listen on a specific IP address/ network interface. •  Use 127.0.0.1 if there is only 1 Memcached server and it is running on the same server as the web server. •  Use iptables or other firewall to restrict access to the Memcached TCP/IP Port(s). 27  
  • 27. Minimal Install: Drupal Settings.php // Required minimum settings. $conf['cache_backends'][] = 'sites/all/modules/contrib/memcache/memcache.inc'; $conf['cache_default_class'] = 'MemCacheDrupal'; $conf['cache_class_cache_form'] = 'DrupalDatabaseCache'; // Optional, but recommended settings. $conf['memcache_key_prefix'] = 'ai_'; // Remember about 250 byte key size limit. $conf['lock_inc'] = 'sites/all/modules/contrib/memcache/memcache-lock.inc'; $conf['memcache_stampede_protection'] = TRUE; // The following are required only if Memcached is on a different server. $conf['memcache_servers’] = array(’10.11.12.13:11211' => 'default'); $conf['memcache_bins’] = array('cache' => 'default'); // Only if both PECL Memcache and Memcached are installed. $conf['memcache_extension'] = 'Memcache'; 28  
  • 28. Minimal Install: Drupal Configuration Drupal Performance Settings 29  
  • 30. Minimal Install: Verifying •  Memcache Admin Module •  Adds configuration page at Configuration => Memcached •  Enable the option “Show Memcache statistics” to see a log of all Memcached calls on each page. •  Devel Module •  Enable the Query Logging option. •  Memcache Admin UIs: •  https://code.google.com/p/phpmemcacheadmin/ •  http://livebookmark.net/journal/2008/05/21/memcachephpstats-like-apcphp/ 31  
  • 31. Minimal Install: Verifying - Memcache •  Enable the module “Memcache Admin” •  Config page at Configuration => Memcache •  Enable the option “Show Memcache statistics” to see a log of all Memcached calls on each page. 32  
  • 32. Minimal Install: Verifying - Devel •  In Devel Settings, enable “Display query log” •  Reload pages, you’ll see a list of all queries executed •  Ensure there are no calls to any “cache*” tables (other than cache_form) •  Ensure there are no calls to the “semaphore” table (lock.inc) 33  
  • 33. Minimal Install: Verifying – Admin UIs Demo •  Drupal Memcache Statistics •  memcache.php •  Memcache Admin 34  
  • 35. Distributed Install: Overview •  When to use •  Types of distributed installs •  Configuration Steps 36  
  • 36. Distributed Install: When To Use It •  High traffic sites making more cache requests than a single instance can efficiently handle. •  The default config of a Memcached daemon will support up to 1,024 simultaneous connection requests. •  Large caches where it makes sense to separate out cache data by type or update frequency (e.g. cache_menu is usually pretty static whereas the default cache could be constantly changing) •  I start looking at this as an option when the memory allocation for Memcached starts getting over 128MB. 37  
  • 37. Distributed Install: Types •  Multi-server/Clustered •  Distributes cache load across multiple Memcached servers. •  Allows for handling larger numbers of cache operations. Useful for high traffic sites. •  NOTE: Caches are not replicated between multiple servers by default. •  Multi-bin •  Segments different types of caches to different servers. •  Useful for very large caches with varying characteristics (e.g. segmenting mostly read-only caches from caches that are frequently updated) •  Hybrid •  You can combine both of the above approaches (e.g. have multiple bins with each bin spread across multiple servers). 38  
  • 38. Distributed Install: Configuration •  Server configuration is same as the basic install, just on multiple servers. •  Make sure the Memcached daemon is configured to listen on each servers external IP address (not 127.0.0.1). •  All daemons within a cluster should be configured with the same memory allocation. •  You can have multiple Memcached daemons running on a single server. Just use different ports. 39  
  • 39. Distributed Install: Configuration Additional settings needed in the site settings.php file // Must be exactly the same on all web servers. $conf['memcache_servers' = array( '10.11.12.13:11211' => 'default', '10.11.12.14:11211' => 'default', '10.11.12.15:11211' => 'my_readonly_bin', ); $conf['memcache_bins’] = array( 'cache' => 'default', // must specify if setting this variable. 'cache_bootstrap' => 'my_readonly_bin', 'cache_menu' => 'my_readonly_bin', 'cache_path' => 'my_readonly_bin', ); // If using PECL Memcached. $conf['memcache_options'] = array( Memcached::OPT_DISTRIBUTION => Memcached::DISTRIBUTION_CONSISTENT, ); 40  
  • 40. Tuning Tips •  Watch the “Available Memory”, “Evictions” (==0), and “reclaimed” (==0) stats to determine if memory allocation needs to be adjusted. •  Watch “Max Connection Errors” (==0), “Accepting Connections” (==1), “Connection Yields” (==0), and “Listen Disabled Number” (==0) to determine when you need to move from a single memcached server to multiple servers. Tip: See this page for a description of various stat counters: http://www.pal-blog.de/entwicklung/perl/memcached-statistics-statscommand.html 41  
  • 42. Are There Alternatives? Redis (https://drupal.org/project/redis) •  Great for persistent or replicated caches. •  Supports additional caching options such as structured data caching. •  More efficient support for selective cache delete/expiration. •  Nice comparison to Memcache: 
 http://noblogdeffound.blogspot.com/2013/04/memcachedvs-redis-comparison-name.html MongoDB Cache (https://drupal.org/project/mongodb) •  Great for extremely large caches or when a large amount of data must be stored in a single cache key. 43  
  • 43. Conclusion By adding Memcached to our hosting solution we: •  Reduced the number of database queries. •  Reduced the load on our database servers. •  Reduced the amount of time the site spends accessing cached data. •  Reduced the rendering time for page requests. •  Improved the overall scalability of the site. 44  
  • 44. Thank You Shawn Smiley! §  Lead Engineer" §  shawn.smiley@achieveinternet.com" §  Drupal: shawn_smiley" §  800.618.8777"
  • 45. Connect with Achieve If you have any further questions or would like to get in touch with Achieve you can do so on these various channels: info@achieveinternet.com linkedin.com/company/Achieve-Internet plus.google.com/101805819007866218919 @AchieveInternet facebook.com/pages/Achieve-Internet 46  
  • 46. Q & A 47