Highest Performance Single Server

Eric Garrison asked on October 31, 2016 01:18

I am looking for recommendation for how to setup a Windows server to host Kentico with the highest performance. What is recommended?

1) Windows 2012 R2 with X___Ram 2) Seperate SQL Server on Different Box or on the same server. 3) Amazon S3 storage of Images?

I am looking to avoid Azure and do on our hosting and to avoid doing WebFarm.

Recent Answers


Brenden Kehren answered on October 31, 2016 14:30

The "highest performance" is pretty subjective considering you haven't really provided much information to go off of. There are a lot of dependencies on this like:

  1. How much traffic does your site get or do you expect?
  2. Are you utilizing Kentico caching to the greatest extent?
  3. Are you using Dynamic Compression?
  4. Do you have any custom code? Is it optimized to use caching?
  5. Have you followed the recommendations for optimizing your website? (google it, several articles by Kentico, MVP's, etc.)

It's really hard to recommend when there are so many variables.

The minimum I use for a moderately visited site (20-40k visits per month) is something like below:

NOTE: Always split web and database servers off for high availability, performance and security reasons.

  • web server - Windows Server 2012, min 4GB ram (8GB better), minimum 8 core (2 sockets, 16 logical processors) Xeon CPU 2.0 or higher processor, 100+ GB solid state drive
  • database server - Windows Server 2012, SQL Standard (no CPU or db size limitations), min 8GB ram, minimum 8 core (2 sockets, 16 logical processors) Xeon CPU 2.0 or higher processor, 200+ GB solid state drive (size dependent on your db size and backup policies)

Keep in mind, the more caching you have the more ram you should have.

Having a load balanced web farm will help will performance if your site is overloaded so not sure why you're voting that out. Although if you have a static brochure website with little traffic, all of the above is pretty much overkill.

I'm not saying these are locked in stone and should be use all the time but they are what we recommend to our clients for the sites we build (which range from brochure websites to highly integrated websites with many different processes running at any given time). Check out the Performance Test Report. It has configuration of the server(s) as well as the results, very good information.

0 votesVote for this answer Mark as a Correct answer

Eric Garrison answered on October 31, 2016 15:53

1) Expected traffic. 700K visitors per month. The main reason for my question. 2) Where possible. Some of the content is 1 to 1. This content is behind login.
3) Dynamic Compression - yes.
4) Our custom code is primarily via Webparts added to Kentico or just using SQL datasources and repeaters. 5) Yes. I am not new to Kentico. We have deployed a number of site. Performance has been good, but I need it to be Great for a given site.

Where I am seeing some slowness. Retrieval of images. BizForms are used to collect a lot of the content. Images like small logo and a 1000x750px picture is uploaded. Pulling these images back via URL link like: CMSPages/GetBizFormFile.aspx?filename=0ce44afd-6293-4a37-bbc7-86c3e663ab68.png&sitename=Sitename is slow.

At the end of the day, I think we will likely need to add WebFarm to the site, but would like to delay that as long as possible. Based on your suggestions, I am going to give more cores to the web server. We have been a bit lite. We operate in a VMware environment with HP Gen 9 Server. We had been giving only 2 cores and 16GB of RAM. I will max out the cores and try again.

Thank you for the advice.

0 votesVote for this answer Mark as a Correct answer

Trevor Fayas answered on October 31, 2016 21:32

What i feel comfrotable with with BIG sites (college sites, or many site multi-installs with extensive custom logic) is usually the following:

For the IIS (web) box:

  • 4 Core if you can help it, minimum 2 core.
  • For the IIS box, at least 4 GB of ram, Kentico doesn't use a ton but the more you cache the more memory you store so you'll have to adjust as you see need.
  • If you control the hardware, Solid state drive helps but not as important as in the SQL

For the SQL box

  • 4 Core if you can help it, minimum 2 core. Must have a normal SQL server license for this.
  • More ram the better, a plethera of RAM helps compensate for any bad SQL writing (however, still cache and write good sql statements, just saying more ram always helps!)
  • If you control your hardware, Solid State Drive, huge performance boost, but you have to watch it with high write sites as SSD don't have the same longevity as spin.

That being said, a lot comes down to how you build the site. Kentico has tons of documentation on how to optimize the site, and using them are important. Along with that, use Kentico's debug tools to see what takes long to load ona page, SQL statements are usually the culperate.

If you have a high Image intensive site, you will want a CDN of some sorts, plus there are some awesome jquery plugins that help "lazy load" images (load only what the user sees). Great example on www.manitowocice.com one of the sites i built (part of a huge multi site installation).

0 votesVote for this answer Mark as a Correct answer

Eric Garrison answered on October 31, 2016 22:22

We took our build box from 2 cores to 8 cores on the IIS box. What a big difference on our load test. That may be one of the key issues. We already had 8GB. The storage we are using is on an EMC SAN with SSD Cache in the SAN and SSD Cache in the VMWARE machines. Our Disk IO was already very impressive.

We will look at Lazy Load and the website. Thanks

0 votesVote for this answer Mark as a Correct answer

Brenden Kehren answered on November 2, 2016 23:31

Eric,

The 2 cores would prob be the main bottleneck right now. Also ensure your images are being stored in the file system vs. the database (assuming they already are) because database is the default on new installs. Disable viewstate on webparts which don't require it (anything not needing a postback). View your page source and check for viewstate and hopefully it's less than 2 lines.

Excited to hear your improvements and how they helped.

0 votesVote for this answer Mark as a Correct answer

   Please, sign in to be able to submit a new answer.