Is 1 server enough?

Author Message

Tony Stark

Tuesday 27 October 2009 2:59:20 am

Quick (and possibly stupid question) is 1 dedicated server enough to run a fairly high load eZ Publish install? I know I would have to clarify load so lets say at anyone time about 60-90 people simulatenously connecting to the site performing a wide array of actions - upload of files, using extensions which write to a DB etc

Thanks

Tony

Alex Pagnoni

Saturday 31 October 2009 7:55:21 am

It depends on the server and how much dynamic is the site.

If you can make static most of the site, you can use the static cache to dramatically improve the performances.

You should carefully plan the various eZ caches anyway, you can find more about here:
http://ez.no/developer/articles/ez_publish_performance_optimization_part_3_of_3_practical_cache_and_template_solutions

memcached may also help here.

About the static cache in particular:
http://ez.no/developer/articles/ez_publish_performance_optimization_part_3_of_3_practical_cache_and_template_solutions/static_cache

About the underlying infrastructure, you can find more about here instead:
http://ez.no/developer/articles/server_architecture_for_ez_publish_hosting

Alex

Innoteam
The Content Partners
http://www.innoteam.it

Bertrand Dunogier

Saturday 07 November 2009 8:24:39 am

Well, it really comes down to numbers.

On a big server (quad-core, fast disks, etc), eZ Publish 4.2 can achieve around 100-150 requests/second on cached content. This will decrease based on the amount of dynamic operations performed for each request.

What you can do:

  • implement really well designed caching on your website, with a smart balance between the cost of caching and its usage
  • optimize apache, mysql, php: remove useless modules/extensions, finetune their parameters depending on your amount of RAM, etc. This is even more valid for MySQL & InnoDB. You can find many articles about that online. Also look at details like disabling .htaccess in apache, etc.
  • use a secondary server for MySQL. This kind of gives a 'yes' as an answer to your main question, but it is one of the first optimizations you could perform. Having multiple web frontends has more implications
  • use static caching when possible
  • use a reverse proxy (varnish for instance) to cache similar pages. Can also work with logged with logged in users to some extent (replace server side logic with client side + cookies, etc)
  • use multiple web servers, with clustering enabled on eZ Publish. eZDFS might be an option you could look into, if you like NFS storage rather than DB.

As you can see, there are lots of options to consider... but it comes down to numbers. Try to evaluate as accurately as you can the requirements for your website, depending on users behaviour and usage of the featres, and check that your server can achieve this.

Good luck :)

Bertrand Dunogier
eZ Systems Engineering, Lyon
http://twitter.com/bdunogier
http://gplus.to/BertrandDunogier

Gaetano Giunta

Saturday 07 November 2009 9:19:20 am

Another option beside a reverse proxy like varnish could be to use a lighter webserver than Apache, such as nginX.

The usage of a php opcode cache such as APC or Xcache is mandatory.

Principal Consultant International Business
Member of the Community Project Board

Powered by eZ Publish™ CMS Open Source Web Content Management. Copyright © 1999-2014 eZ Systems AS (except where otherwise noted). All rights reserved.