Server resources needed for a large elgg implementation

Hello

I am totally new to elgg and i have been tasked to implement a server for a potential amount of 10k users so i am wondering any special concerns i have to look on what server i need to get i was thinking on something like:

- Intel Nehalem Quad-Core Dual Xeon 2.13GHz E5506
- 16 GB RAM ddr3
- 1 TB storage (or maybe 2)
- 20 TB monthly bw

Wonder if this - with proper tunning - can withstand 10 or even 15k of users... any thougths on this are welcome.

Thank you. 

  • [FYI I moved this discussion from tech support into the performance/scalability group.]

  • Guys I need some advice on this topic, we want to prepare for future scaling and get the setup correct right away, any advice/suggestions much appreciated.

    We are planing to get a hosting account on Rackspace cloud server and probably using Ngix.

    Is it a good idea to have separate box for Mysql server with dedicated RAM and CPU, assuming it's on same network for Elgg installation to communicate with or is that even possible?

    Same question for Data folder, if it's possible.

    Thanks

  • I've found memcached and APC to be pretty much mandatory if you want to push things and scale.  The difference is phenomenal.  Varnish or some other reverse proxy is also a good idea if using Apache instead of ningx or the like.  I can handle 3k visitors/day with lots of video (700 kbps streaming) and photos easily like this with 1 modest core2duo processor and 3.3GB RAM.  If the scale factor remains constant (probably too optimistic?) it wouldn't start to max out until around 10-12k visitors/day.  I also have other sites running with cron jobs and am still using PHP 5.3.  I think if I really pushed things and tried to squeeze every drop of performance I could do 20k visitors/day with this modest hardware.  I do have memcached setup with an additional server although that other server already has many other sites on it.

    A quad core with fast disk, 16-32 gb ram, and properly configured could probably do 100k visitors/day for a media intensive site I bet. :)

  • Great information, much appreciated :)

    So in your opinion there is no need to setup Data folder and Mysql server on separate boxes?

    Is there any special setting for setting up memcached and APC for use with Elgg? or it's just normal way.

    Is there any documentation on this you can refer me to?

    Thanks.

  • @This Script Lover, You're welcome.  I'm far from an expert. Just someone who recently ran into a similar situation. You could use a separate mysql server if you wanted too.  It probably couldn't hurt to distribute some of the load off on the other server.  I believe the settings for that are stored in (elgg webroot)/engine/settings.php on a working install.  I think the installer also will ask you for the database server to use as well as the db name

    APC generally requires nothing special.  You just install it. :)

    Memcached requires the application (Elgg in this case) to be built to use it.  But to enable it on Elgg is pretty easy: http://docs.elgg.org/wiki/Memcache

    Also you might like this document if you have not seen it already: http://docs.elgg.org/wiki/Scalability

     

    Good luck. :)

  • @This Script Lover If you talk seriously about scaling, there are 2 things to cover:

    • optimization - squeezing as much as possible from single worker with reasonable effort
      • APC is a must
      • Nginx gives you better stability than apache and is significantly faster for static resources than apache
      • not writing silly, heavy to compute code
    • scaling horizontally - you won't be able to run on single server indefinitely, that's where you get the real capacity
      • it's convinient/necessary to have web workers (+memcache), DB and FS cluster split to different sets of machines (you can always mix - good luck)
      • when having that, you design your system to allow you to add machines to each layer and still work correctly - on each layer you have different problems to address

    In general the topic is quite wide, but I think it's important to decide, if we aim to optimize your box or scale to multiple machines. APC and memcache won't give you more than 30% speed improvement (if you're lucky to get close to that) and memcache itself does not claim to be faster than single MySQL box, it claims to be faster cluster than MySQL cluster.

    We could talk a lot about optimizing static content delivery, CDNs and fine tunning configurations, but still most important thing to address in Elgg core is horizontal scalability that is not much supported, and yet worth more. Instead of tunning one box you buy several cheaper boxes and still have better capacity ;-) Scaling web workers is doable quite easily but there's not much support in scaling DB cluster (current implementation has actually quite severe bugs).

  • Thanks guys, that is some great info :)

    I know it will be a while before we will need to start optimizing/scaling but just wanted to get sense on what is the best way to prepare for it, Cloud servers or dedicated. I've installed nginx on Rackspace Cloud server but I'm not that impressed with the Rackspace so far even tho I found mostly good reviews about them. ( I'm also having issue with php sendmail not working because of their relays but that's another topic)

    I've been considering 1&1 dedicated but their reviews don't appear to be all that great.

    Can you suggest a good reliable host that offers UNMANAGED dedicated box with 2-4 GB ram and at least 2 cores that might be easier to expand later if needed.

    Thanks.

  • We are looking at 1&1 dedicated server, I know from discussions DhroopDescoop's FKKIDS is hosted  on 1&1.

    Can anyone share their experiances with 1&1 or any other host they use dedicated server with?

    Thanks.

  • @Dhrup2000 what server on 1&1 do you guys have? X, XL or XXL ?

    Can you say anything good or bad about 1&1? share experiences with them?

    Thanks.

  • Managed or unmanaged no make diff to yr reqmts
    B/c unmanaged reqrs heavy brain work,
    Not for the kids.
    Sntivr pkgs x,xx, xl etc mean nohing
    Until you at real numbers Vs real workloads..
    A lot of variables....
    I do not have amagic formula.fpr.scalability
    And performance. ;- ) took us several months to tume our
    Server cpl.of yrs back...

Performance and Scalability

Performance and Scalability

If you've got a need for speed, this group is for you.