Buddypress/Multisite large scae site

I am going to design a community site based on buddypress/multisite. I have worked with buddypress/multisite, but never with such a large userbase. There may be 500 users online working actively with buddypress (main site) / their own subsites. My question is:

• What kind of setup (hosting, server) do you recommend for fast and
reliable buddypress/multisite? Can 1 server handle such a load without
slowing down?
• What about plugins? I guess at least Multi-DB plugin is obvious
here. What about easy backup solution for Multi-DB?
• Do you recommend caching for speed in this case? Which cache plugins work well with this
kind of setup?

  • aecnu

    Greetings rhodezman,

    Thank you for being a WPMU Dev member!

    There may be 500 users online working actively with buddypress (main site) / their own subsites. My question is:

    • What kind of setup (hosting, server) do you recommend for fast and
    reliable buddypress/multisite? Can 1 server handle such a load without
    slowing down?

    I do not know of any single server that can actively handle 500 users simultaneously without slowing down. Probably using multiple synched servers with load balancing to perform this without a noticeable slowdown. Most single servers will not allow that many simultaneous connections either.

    What about plugins? I guess at least Multi-DB plugin is obvious
    here. What about easy backup solution for Multi-DB?

    Absolutely Multi-DB with many options for backing it up possible. However, if the servers are in a RAID 5 configuration this becomes a mute point.

    Do you recommend caching for speed in this case? Which cache plugins work well with this
    kind of setup?

    WP Super Cache is what I would personally choose for this task.

    Thanks again for being a WPMU Dev member.

    Cheers, Joe :slight_smile:

  • aecnu

    Greetings rhodezman,

    Thank you for being a WPMU Dev member!

    This is absolutely impossible to predict and I can crush even the best of servers alone with my I-7 running none stop queries and syncs without ever returning an answer to the server tying it up waiting for the sync acknowledgement etc.

    Outside of these types of real world attacks, the following things will all come in to play regarding performance: how many plugins?, which plugins?, which theme(s)?, cache or not?, database cache or not?, and the list goes on and on not to mention what is the bandwidth of the users accessing the site? Is the server on a 100MBs connection or on a 1000MBs connection? etc. etc.

    Any single variance in any of the above mentioned items will give different performance metrics - therefore as I mentioned earlier - impossible to predict.

    Recommendation: Get the most high power dedicated server that your budget can afford and scale as needed. Use CDN for all static elements from the beginning preferably in combination/integrated with your caching choice.

    I hope this brings realistic light to the question of prediction.

    Thanks again for being a WPMU Dev member!

    Cheers, Joe :slight_smile:

  • rhodezman

    My question was ridiculous :slight_smile:, I know.

    I know plugins/themes and what not play a role in the performance. So I would use no plugins except caching and a few quality ones that don't affect the performance a lot. The connection would be 1000MB, users would have enough bandwith and it would eventually come down to the server performance.

    I was just curious of real world experiences of buddypress/multisite performance (eg. "I tested my buddypress/multisite with 100 users online with setup x, and the performance was ok"). At the moment I have only experience of using this setup with about 20-30 users working online and there is not much slowing down.

  • polfeck

    I have been experimenting over the last six months on configs for higher performance. I have tried the basic shared (worthless) to VPS from 512m to 4gb, anyway this is what I like for performance. I am aiming at low cost configs with a maximum spend of €30\month.

    The test site is content rich with on avg of 1600 unique visitors per day, it did use BP\ multisite with 57 users.

    My preferred config:
    On the server side:
    VPS server spec with 2GB memory using Ubuntu 10.4 32bit.

    Use nginx with php-fpm instead of Apache. Nginx rocks, way faster than apache and can be used with multi-site.
    If your a non-techie and want to build nginx yourself then use http://vpsbible.com/
    If your a techie, http://wiki.nginx.org/Main have all the stuff you need

    Cloudflare.com for DNS caching with W3 Total cache, load times for a content rich website are now on average 3.7 secs. Also look at CDN, distributing static content in the cloud. Maxcdn aint bad. I only use cloudflare (and this uses nginx)

    I stopped using the 4gb as soon as I started to use nginx, why? cost 20 for 2gb and 50 for 4gb.

    Cloudflare is also great when moving site location. DNS propagation is instant if you dont move the domain name and only change the 'A' record. Keep the MX records (Mail) as is.

    If you want even higher performance then look at clustering the database load across multi-servers. Anyway just some ideas...

  • rpeterson

    @rhodezman I help run a 1M+ multisite and can tell you these things:

    Very early on, you have to separate your DB server and a web server for things to perform at least reasonably well.

    Using HyperDB, separate your User profile data and the rest of your tables as soon as possible, once your site counts get so high, this becomes a CPU crushing task in MySQL.

    If you really need to keep things on a single web server, look at https://www.varnish-cache.org/trac/wiki/VarnishAndWordpress. Using an HTTP cacher like varnish can save your web server a lot of stress and keep things running snappy even if you don't have the biggest machine.

    STOP using WP-SuperCache or any DiskBased caching system if you implement an HTTP cacher like varnish. This way, you aren't spinning up web server threads for content that has been static since someone last viewed it.

    As @polfeck mentioned using PHP-FPM and Nginx can also help with some load, but I still thing you should use at least a 4GB machine regardless if you want your stack to stay below the 60% CPU spike point (which you do) during heavy traffic times.

    Anyways, these are just a couple more things to the others already provided by the others.

Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.