Technical Performance Panel - Meet Magento UK
Mark Slocock / +Mark / October 27, 2011

The technical performance panel consisted of Philippe Humeau (NBS Systems), Jason Bramsden (InvertCommerce), Alistair Stead (Session Digital) and Johan Terpstra.

The presentation started off with research into how website speed influences conversion. Amazon did a test and slowed down the load time of their website by 100ms and the result was a 1% drop in sales, this may seem like a small amount, but if you consider the volume of sales amazon processes, that's a big number!

The advice was to aim for a 2 second load time - 4 seconds is too much. Research shows that 75% of visitors won't come back if a website is slow.

Another very good reason to improve your site speed is that Google announced that page speed is a ranking factor around 18 months ago, fixing a 1.5 second limit for websites to be defined as fast. Also, the faster a website is, the more pages Gogole can index.

The talk outlined several improvements that can be done for every size of business, starting with good basics:

  • Code properly
  • Avoid 404s
  • Activate Magento cache
  • Carefully check your CRON
  • Avoid cold cache effect (don't clear the cache before traffic peeks)

Small (easy) website optimisation:

  • Split frontend and database
  • Activate flat catalogue
  • Activate mage_optimiser
  • use SOLR for large product catalogs (over 50,000 kus)

Medium website optimisation:

  • Fine tune your linux setup (i.e. stop writing to logs for image gets)
  • Put cache & sessions to files B. E. & on ramdisks
  • Split front / back office instances
  • Use IRQ balancing
  • Mount disk with noatime option
  • Add a reverse proxy (Nginx or Varnish for example)
  • CDN get resources from 4 different CNAMES
  • Truncate (or archive) your log tables in Magento
  • Check foreign includes response times and put them at the end

Large website optimisation:

  • Use a CDN to accelerate static file fetching
  • CSS3
  • HTML5
  • Progressive degradation
  • Sprites
  • Deactivate atime
  • Tune up your DB
  • Try Nginx + PHP FPM (waring, no htaccess support)
  • Use DRBD to link two servers (blockdevice across network)
  • Latest Memcached + memcached client => flush old cache keys

Other points:

  • For CDN - recommend four domains, because of the overhead of doing a DNS lookup
  • Varnish – open source reverse prox cache (http accelerator) can be used as a load balancer
  • Jmeter – for load testing
  • Install Nitrogento – a module for optimising Magento