high virtual/private memory usage on small websites

Jesse V asked on November 16, 2015 20:48

Hi guys,

Small question this time. Not about performance, which is great with Kentico. It's about high memory usage. A small 3 page (home/blog/contact) website uses 9GB Virtual Memory and +400MB Private Memory per website. Is that normal? I'm running out of memory pretty quickly this way…

What I have tried (but failed);

  1. Tried to put all websites in one application pool. - the application pool grew very large and was no succes
  2. Tried to set a Private Memory Limit to 200MB. - works, sort of. It just made the application pool be recycled often, which I don't want as the whole website has to be recompiled (8+ sec loading time is just to much in 2015)
  3. Tried to store all virtual objects in the file system, but some parts stopped working (i.e. recent blog lists) so we reversed this.

FYI we build our websites thru the portal engine, turned debugging OFF, raised the Application Pool Idle Time-out to 1440 sec/1 day for speeding up the respons time.

So, what can I do to lower the memory consumption? I have found very good articles about performance optimisations but they leaned towards compiling issues and speeding up DB requests etc.

Anyone who could point me in the right direction? Thanks in advance!

Jesse

Recent Answers


Joshua Adams answered on November 16, 2015 23:03

How much caching does the site do? Is your output cache being used and does it have the properties set to store the output html for each user independently? The output cache variables may be making the system store multiple different versions of the same file, which is adding to the cached files. Maybe try to uncheck all of the ones that apply and see if that helps.

0 votesVote for this answer Mark as a Correct answer

Jesse V answered on November 17, 2015 12:57

Thanks Joshua!

Looked at all your suggestions but no luck. Output caching is turned OFF. Partial caching is turned OFF. Web Analytics are turned OFF. Files are stored in both file system and database. The Allocated Memory keeps growing, starts at 150MB and up to 550MB+. Process Physical Memory 380MB, Process Virtual Memory stays at 9GB.

To me it looks like i'm doing nothing strange. What would be an average memory usage for a super simple 3 page (home/blog/contact) site containing simple text and photos, nothing fancy?

I'm the type that first start to read the manual before playing around :) I can't stand it that I missed this part...

0 votesVote for this answer Mark as a Correct answer

Joshua Adams answered on November 17, 2015 16:42

Thats interesting...have you turned on the debug in Kentico? Any custom code or sql queries? Any third party integrations or anything of that sort?

0 votesVote for this answer Mark as a Correct answer

Jesse V answered on November 17, 2015 17:07

Debug is turned OFF also, no custom code or SQL queries, no 3th party integrations. Nothing fancy, just standard web parts. I run 10 websites and all are consuming around the same memory amount.

0 votesVote for this answer Mark as a Correct answer

Joshua Adams answered on November 17, 2015 17:57

Are you running on a virtual machine or on a physical server? Any cdn being used?

0 votesVote for this answer Mark as a Correct answer

Jesse V answered on November 17, 2015 20:16

It's running on a VPS, windows 2012 R2 4GB RAM, 2 cores @ 2,60 GHz. No CDN involved. Thanks for your help!

0 votesVote for this answer Mark as a Correct answer

Joshua Adams answered on November 17, 2015 21:02

What version of Kentico are you using and what hotfix?

0 votesVote for this answer Mark as a Correct answer

Jesse V answered on November 17, 2015 21:24

I'm sorry, should have stated that before, v8.2.44

0 votesVote for this answer Mark as a Correct answer

Boris Pocatko answered on November 18, 2015 05:15

It really depends, what features you've enabled (Output caching, data caching, ems features etc.). I'd suggest you to check the objects which are stored in the memory in v8+ under the application Debug > System objects/Cache items. You can dig deeper by creating a memory dump to see which objects are in the memory at run time. Additionally I don't think those values are too bad.

0 votesVote for this answer Mark as a Correct answer

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