I know it was just released but I am speaking specifically about V3.30 so if you have not upgraded or installed a fresh copy of V3.30, please do not comment. My post is really addressed more to the development team of nopCommerce than to the community at large (no offense intended).
First Let me provide a little background on my experience with testing nopCommerce prior to this release.
I am a niche web host and ecommerce specialist.
I have been interested in nopCommerce for many years as an ASP.NET offering for my customer base (We have specialized in a Classic ASP shopping cart for the last 10 years as well as non-ecommerce ASP.NET applications). Unfortunately, trial after trial of the nopCommerce software has not gone well. You see, I gauge a software's viability many factors but at the top of the list is how much resource an application (ecommerce or not) consumes. My server admins are very quite to ask for approval to add more memory or processors to our server stacks but as the owner and the guy that pays the bills, those numbers (resource consumption, hardware cost, support staff salaries, ROI, etc.) are a vital factor as they determine how many sites we can reasonably run per server and still be able to make money or in the case of VPS/Dedicated, how much we need to put into it and if the customers will be able to handle the increased cost of those servers.
My experience with nopCommerce up to this point has been extremely high memory consumption out of the box (noting that I have not tested this new release announced today). We have seen the 'application pool hit' range from 400 on up to 700MB with a fresh install (no customers or products). I can tell you that from a "Web Host" perspective, this is patently unacceptable.
I have seen several posts in the forums that attempt to excuse this by stating 'you just need to move to a dedicate server' or 'you need to have at least a 500MB application pool'. While that is an understandable 'developer/integrator' response, from a server management/hosting point of view, that is never acceptable for an ecommerce application out of the box (Magento does not even consume memory like that out of the box and that application is the biggest beast out there!).
As a Web Host and business owner, I simply cannot endorse nor allow an application onto our shared environment if it consistently consumes more than 200MB with no load (even that is very high for an ecommerce application). Ideally with a "fresh install" of any application, we like to see Application Pool resource consumption under 100MB. On an active store with average load, that should stabilize in the 180-250MB range. Anything more is indicative of significant coding and/or architecture issues that will always cause problems and performance issues in other areas once the application is loaded.
It is possible to achieve the ideal numbers I stated above as we see it and host it every day.
My question is this:
After reading through all the improvements with this latest V3.30 release, has the development team spent any time on bringing resource consumption down to a reasonable level? By reasonable I mean down to a level where you, as the development team, feel comfortable your software can run on just about any shared hosting environment. That is the benchmark I am really looking for and when achieved, you can bet that I will be one of your top supporters and host's.
A good test would be to load up nopCommerce on some of the worst budget hosting companies you can find (e.g. GoDaddy, WebHost4Life, etc) and see how it performs with their stringent application pool caps.
I really want to test out V3.3 but I am hesitant based on my previous attempts with this platform. If you tell me this has been addressed with this release, I will give it another go and see how it does. I think the design and feature set of nopCommerce is really one of the best out there and what has always sparked my interest in this platform.
I have a copy of 3.30 running on my development server that I am looking at developing for someone, the copy currently has 3 products and a 10 categories and it is consuming around 263Mb rising to 370Mb when admin section of site is accessed.
I have the same concerns I rent a VPS server but placing any number of Nop commerce sites on the VPS starts to become prohibitively expenses due to the cost of memory.
As a comparison although not a commerce site I host a CMS site running to over 600 pages and the CMS just about hits 50Mb and the site is responsive and fast to load.
The CMS is written in classic Asp.Net not MVC.
Out of interest, do the numbers drop significantly if you disable mobile theme support setting from the admin page?
See my post on the last page and next page here: https://www.nopcommerce.com/boards/t/17132/nopcom-v25-mobile-device-support-kills-performance-slow.aspx?p=2
The site I quoted the figures for above has not got mobile support enabled.
this worries me (300-500 MB) my host's limit is 256 MB is shared not have tools to measure this consumption if the server recycle memory when it reaches the limit the User will lose your shopping cart?
Sure, all hosts will recycle the app pool when you hit the limits but that can be problematic as well. The "recycle" should never be thought of as something you plan for or is part of the normal process... it is a disaster recovery function.
Consider what happens during an Application Pool Recycle ... Think of it like a mini-IIS Reset but for just one site. All open sessions are closed, all cache in buffer is emptied and you start over. This means if someone is logged in, or about to checkout, their carts will now be empty and they will have to start over and log in again.
Now contrast that with a host's 256MB limit on pools (which is actually pretty generous for shared hosting). If you put nopCommerce into the mix on that server, you will likely never see the home page as just to bring it up, it will be consuming more than your limit ... so you begin in 'Disaster Recovery Mode" with a recycle, then another, then another, etc.
As I mentioned in my initial post, I would really like to see the memory consumption issues addressed in a big way and then my suggestion, is the developers at nop must test this platform on some of the worst shared hosting companies you can find (with regard to application hosting this means places like GoDaddy, iPowerWeb, WebHost4Life, and I am sure many others).
I am absolutely very fond of nopCommerce and really want to be their best cheerleader but until the memory consumption issues are taken care of, I will have to wait. For those that accept high pool usage as the norm, shame on you! It simply is not acceptable and can absolutely be corrected. As a web host I see and host asp.net applications everyday that accomplish low resource usage.
Need I remind you that even Microsoft tried to convince the world that High Memory use in Vista was something that you will have to live with (remember needing 8GB just to run it properly) until enough people cried foul and everything was suddenly fixed when Windows 7 rolled out (they re-wrote the kernel and tightened up the application code and viola) .
So my challenge and request of the nopCommerce development staff is to 1) please respond as to how you are addressing this issue that has been known but not talked about enough or even ignored and 2) tighten this application up and make it something that anyone regardless of if they host shared, VPS, or dedicated can use.
Hi I would like the developers actually respond NOP there is a solution to reduce this consumption impractical for me to a VPS or DEDICATED
As a Web Host and business owner, your needs may be different from others.
I am very thankful that Nop is doing all of the in-memory caching for me to deliver performance to my eCommerce customers. Since my business is not in web hosting, it is my eCommerce customers I am in business to please. For my site, the customer experience is a higher priority than reducing my back-end memory consumption. Hardware is cheap. People are expensive.
You might be able to tweak the cacheManager to turn off any unnecessary caching and reclaim that memory, but you will take a performance hit for doing so.
In the trade-off between decreased memory consumption and increased performance, I will take increased performance any day. In fact, I am INCREASING the caching (and memory footprint) of Nop to even further reduce any latency. Of course, you are in a different market, so you may decide on a different balance.