vBulletin Datastore Cache – using Memcached cache to reduce MySQL database load
vBulletin versions 3.7.x and higher have feature to offload some frequently called database queries to a vBulletin Datastore Cache – which maybe via File cache, Xcache, APC Cache or Memcached server caching. My personal preference is using Xcache for vBulletin Datastore Cache for single server setups which are Apache web server based where both web and MySQL database tasks are run on the same server.
However, if you run multiple Apache based web servers in load balancer configuration or run Litespeed web server (in single or multiple server setups), you’ll need to change from using Xcache for vBulletin Datastore Cache and install, configure and use Memcached server for distributing vBulletin Datastore Cache across multiple Apache based web servers.
There are considerable savings in terms of offloading these frequently called database queries to vBulletin Datastore Cache and with additional enhanced performance via installing vB Optimise Pro plugin. For example from recent Litespeed web server based clients I did work for some stats below.
vB Client #1
Stats for 2x load balanced litespeed web servers (Single Intel Xeon W3550 3.06Ghz, 6GB memory, 15K SAS each) spawning 4x Memcached v1.4.5 servers for vBulletin datastore caching at off peak – low traffic times. In just over 6 1/4 hrs running, Memcached servers saved 5.5 million hits to the MySQL database server (dedicated Dual Intel Xeon E5520 2.27Ghz, 12GB memory, 1x 32GB Intel X25-E SSD, 1x 64GB Intel X25-E SSD, and 2x 15K SAS Raid 1).
Peak time for 94 min run, saved 3+ million hits or ~532 cache hits/second saved ! Still MySQL server was handling ~300 queries/second even with Memcached servers reducing the database server end load.
This client just added vBulletin templates and stylesheet to Memcached server by installing vB Optimise Pro plugin and here’s first 24hrs of statistics. Spread over 4x Memcached cache servers, approximately 100.5 million cache hits which is approximately 1,162 cache hits/second with a 98.7% cache hit rate.