5

My client needs a site which can sustain load of 3 million views a day. We asked them if they know, what a spike per second would look like but they do not know the answer to that. They said from 3 million view in a day we can assume there would be a spike where they may get close to 2.5 million hit in a second. And we need to consider this threshold level.

We currently load tested our site and it can sustain 200 request/second, so ofcourse this is huge request, but wanted to know or confirm few things?

1) if i add those many CD servers (my approx calculation says i may need to add 10 more CD servers at-least). Do i need to consider the CM to be load balanced or not?

2) I am already using akamai and SC caching. What other things i can do to improve performance?

3) Contents will be entered by 30-40 content authors every 15 minutes during that time frame, so what is the best strategy i need to consider?

4) I have load balanced SOLR and Mongo already, do i need to scale those too?

5) Can Sitecore really handle this much load?

Apologies if this is not right forum to ask such question, i would be happy to ask somewhere else or reach out someone. I am trying to get in touch with Sitecore with same questions but thought to ask to community if someone were needed to implement support this type of request in past.

3
  • 1
    3 million views a day... I doubt that equals to 2.5 million in a single second. I would venture maybe a spike of 100K in a second. But to know they have 3 million views in a day, suggests they know what their average utilization is per second.
    – Pete Navarra
    Jan 13, 2017 at 23:36
  • Google Analytics (or whatever you currently are using) should give you better sense of peak users. You'll want to build your infrastructure with peak in mind (peak day, peak time). This is especially important to determine the number of Mongo shards, which is determined by write frequency at your peak. You'll need to do load tests to determine CD server count as every implementation is different. Just make sure that you have output caching enabled everywhere possible.
    – sestocker
    Jan 15, 2017 at 3:24
  • @petenavarra most likely peak at 2.5M per minute, rather than second. Still loads though. Jan 15, 2017 at 3:34

2 Answers 2

5

You're going to need a more than 10 servers to do 2M hits per second. Assuming each page is 100 hits, you need to serve 20k pages each second. Caching strategies will be critical. MongoDB is going to log gigs each day. IIS logs will be 10's of gigs each day. Disk speed will be critical. Akamai will be needed for all static assets. You need to limit personalisation to the minimum, or use asynchronous strategies like FXM.

We've seen 2CPU+14GB RAM machines do 50-60 pages per second with a lot of tuning and custom xDB VisitorIdentification tags. Maybe an 8-way gets 150/sec. You need probably 25x 8-way machines. Autoscale won't react fast enough but you can probably schedule in some scaling to save money. Put big Redis caches in too and share across all machines in the stack to reduce DB load as much as possible.

Akamai is going to cost a bomb too.

Dedicate a CM to a group of 20 authors. Load balancing CMs doesn't work that well.l

Get SOLR Cloud onto maybe 6 machines and MongoDB on 6 for starters, SSDs, and set the Mongo primary to be an 8-way with a big SSD RAID and as many IOPS as you can get.

Or... turf all synchronous personalisation and serve from cache/Akamai.

This is my kinda problem!

2
  • Thank you all for great advices, I learned some more topics to be considered so I will definitely look into all of the above. Jan 15, 2017 at 4:49
  • 1
    Don't forget to scale reporting/processing servers as well!
    – Bas Lijten
    Jan 16, 2017 at 7:56
1

Load of each Sitecore implementation is unique depending on how it is designed, caching, components, etc..

This question is also opinion based, IMHO. However, I do want to advice you to reach out to your regional Sitecore sales rep. in addition to Sitecore support, which you already have!

You will also need to take into consideration your licensing model. Adding CD servers are typically different than CM servers in your license agreement. You will also want to ensure they are prod licenses.

Sitecore's documentation for clustering environments is located here https://doc.sitecore.net/sitecore_experience_platform/setting_up__maintaining/xdb/server_considerations/clustered_server_environments

Edit: I did want to answer your questions though!

  1. No, you do not need to worry about load balancing the CM servers.
  2. In addition to Akamai, ensure you are you are using minification, inspect your logs for load times, check caching for areas of improvement, and look for areas to use CDN servers
  3. For 30-40 content authors entering content every 15 minutes, evaluate your workflow for optimization. When load balancing CM servers, use sticky sessions.
  4. When load balancing SOLR and Mongo, you do what to scale those. Scaling strategies for SOLR and Mongo should be evaluated for best practices.
  5. Sitecore can easily handle this much load. Sitecore is an enterprise solution that serves some of the largest Fortune 50 customer facing businesses. With the proper architecture, Sitecore can be implemented to exponential growth.
1
  • @C Sigmon Thanks for answering i think i am learning more and more as people are adding comments so i am glad that you answered Jan 16, 2017 at 21:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.