*Posted this into a wrong forum, didn't realize 'Optimizations' meant something else, please move to appropriate forum.*
Hi there, we are evaluation nop commerce and so far we see major performance issues.
Our sites load tested on the main page can sustain few hundred thousand requests no problem. Nop seems to not be able to sustain a hundred users and cpu and memory utilization skyrockets.
CPU utilization spikes to 100% and doesn't go down until a bit after the load is over. So even though the test is finished, nop is still 100% cpu for a while and the site is not accessible.
Has nop been used on any sites with possibility of 100s of concurrent users?
Here is an example of memory utilization during load, that looks insane if you consider that all that's happening is user hitting up default page.
if I comment out InsertGuestCustomer, memory does not balloon any more
//create guest if not exists if (customer == null || customer.Deleted || !customer.Active) { //customer = _customerService.InsertGuestCustomer(); customer = new Customer { CustomerGuid = Guid.NewGuid() }; }
This isn't a fix, I'm just trying to find where the issues are coming from. Seems like the call is doing a database insert and for whatever reason that's taking forever. It also seems to cache that insert action (hence, memory utilization) and process until done (app pool going nuts even after load is over).
if I comment out InsertGuestCustomer, memory does not balloon any more
//create guest if not exists if (customer == null || customer.Deleted || !customer.Active) { //customer = _customerService.InsertGuestCustomer(); customer = new Customer { CustomerGuid = Guid.NewGuid() }; }
This isn't a fix, I'm just trying to find where the issues are coming from. Seems like the call is doing a database insert and for whatever reason that's taking forever. It also seems to cache that insert action (hence, memory utilization) and process until done (app pool going nuts even after load is over).
You can install the trial version of dotTrace. This will allow you to get a very detailed report of where memory issues stem from.
What do you mean "cache the insert action...and process until done"?
You can install the trial version of dotTrace. This will allow you to get a very detailed report of where memory issues stem from.
What do you mean "cache the insert action...and process until done"?
Already running a profiler, that's how I found that piece of code. So far all the speed/memory issues seem to stem from initially getting user (GetCurrentCustomer).
What I meant was that application pool is still chugging along because I believe the insert operations on database are still happening. It's not real time.
at the top of GetCurrentCustomer so that one user gets cached and no consecutive database calls are made, the page loads faster but cpu utilization is still 100% under moderate load.
Now trying a product page and cpu is still 100% after some F5s, app pool is almost 3 gigs. This is not going well :(