Professional Support

Get professional support quickly from the people who create and maintain 51Degrees.mobi.

Professional Support
How Much Faster is 51Degrees.mobi Framework?
Watch Speed Comparison Loading the same picture on the same mobile device, with the same network connection, over twice as fast.
Watch Video
Welcome to the 51Degrees.mobi online community. These forums offer the opportunity for you to discuss support topics with your peers and with members of the 51Degrees.mobi development team.
HomeHome51Degrees.mobi ...51Degrees.mobi ...51degrees.mobi ...51degrees.mobi ...nopCommerce v2.5 implementation: negative performance impact - MVC 3 nopCommerce v2.5 implementation: negative performance impact - MVC 3
Previous
 
Next
New Post
5/18/2012 12:59 PM
 
I've been informed that the 51degrees assembly (version 2.1.2.11) opens http://devices.51degrees.mobi/new.ashx with each request. While the more recent 51degrees assembly (version  2.1.4.5) opens http://devices.51degrees.mobi/new.ashx only on the first request the damage is done when / if presumably the http://devices.51degrees.mobi/new.ashx service cannot cope with demand the user experiences (mobile or not) the nopCommerce site, slowing it to a crawl as it presumably waits for a response from http://devices.51degrees.mobi/new.ashx 

Can this 'tracking' be disabled in the web.config file or somewhere else? If not, is there a way to replace the current tracking method with a silent background web service which could time out in times of high demand and not negatively impact the user experience? If this issue cannot be resolved the current 51degrees assembly (version  2.1.4.5) in my view is useless in a commercial environment.

However, if there is another reason why the 51degrees assembly can have such a negative impact on the performance of the host website or any other solutions please let me know. I have tested on two independent VPS platforms with different providers and both clearly suffer from this issue, where the only answer is to totally disable "mobile device support".
 
New Post
5/20/2012 6:55 PM
 
The activity you refer to happens in the background after the request has been processed. It does not operate in the way you described. We have not observed any negative impacts on performance in our test environments when placed under load. The post request activity will timeout after 5 seconds and uses async methods. How many requests per second do you expect to need at peek? Can you provide more information about your environment? How many ServicePoints are configured?

The source code is available on codeplex. I suggest you review the constants in the user guide and the NewDevice.cs class which contains the network access code you should review.

We expect to release to beta an enhanced version of Foundation next week which will consolidate multiple devices and further optimise network usage. This will include the option for nopCommerce (and any other CMS vendor) to include a User Interface control to allow the sending of usage information to be turned off/on by the end user. Please follow us on codeplex to get automatic notification of the release.

If on reviewing the code you spot any oppurtunties beyond the ones mentioned above to improve the performance please let us know.

Thank you for your support.

James
 
New Post
5/21/2012 11:46 AM
 
How many requests per second do you expect to need at peek? - Traffic is low at the moment so no more than 2 p/s

Can you provide more information about your environment?  

Windows Server 2008 R2 Standard 64bit Hyper-V (Netcetera - VPS)
IIS 7.5 - 1 x Worker process (Integrated Managed Pipeline), 1440 minute Idle Time-Out, unlimited resources
RAM Guaranteed: 2 GB System RAM + Burst
CPU Guaranteed: 2.4GHz XEON Single Core
Bandwidth: Unlimited
Network: Gigabit Network Uplink
SQL Server 2008 R2 Express

2 x Applications Hosted nopCommerce v2.5 and SmarterMail WebMail

How many ServicePoints are configured? Sorry I don't know what ServicePoints are? Could you explain?


Steps taken to resolve performance;

Downloaded/updated nopCommerce Application with the latest version using NuGet v2.1.4.9

Downloaded the 51 degrees mobi v2.1.4.9 source from codeplex
Disabled the start method in src\Foundation\Mobile\Detection\NewDevice.cs by replacing contents with' return;'
Recompiled/uploaded FiftyOne.Foundation.dll to the BETA nopCommerce route bin directory,
Enabled 'mobile device support' and restarted application.

Since then the performance issues have not reoccurred, although it has only been a couple of days testing/monitoring.

For your information one of the symptoms when testing with the Full Page Test on http://tools.pingdom.com is long connection/wait period before images on the web page begin to download. This occurs in all Full page test applications including YSlow Firefox Plugin and Chrome Network Developer Tool. This would suggest that the asynchronous call is in fact behaving like a synchronous call. Blog Posts such as http://www.matlus.com/httpwebrequest-... seem to indicate that asyncromous calls are quite tricky to implement properly and may in fact not deliver the expected preformace benefits. It could also be a setting in IIS which I am not aware of which is not permitting the asynchronous call to be executed efficiently. Testing was also performed directly on the VPS Desktop using local 127.0.0.1 address to rule out WAN network connectivity issues.

However, the negative performance impact has been resolved for now, albeit with sledge hammer tactics and I welcome the news that you are to release a version which will allow this call to be activated/deactivated.

Thank you for your reply and please let me know if you have any suggestions regarding my implementation/VPS configuration.




 
New Post
5/21/2012 3:03 PM
 
Thank you for the comprehensive update.

You can find out more about ServicePoints here. The article you reference mentions them. You shouldn't need to change the default, but if it has been changed by your provider to a low number then this could be a bottle neck. You can change it in your app_start event or in the web.config file.

We follow the recommended Async model as per the article you reference, and I've double checked that the server is completing the response before the Async methods are returning.

You mention tests with Pingdom. Can you share the results for your web site with and without 51Degrees.mobi enabled? Does the wait time for the HTML and other resources vary? If so by how much?

Thanks,

James
 
New Post
5/21/2012 4:00 PM
 
Hi, thanks for the info regarding Service Points. I've made no change to config. regarding Service Points so as this is a Hyper-V I would expect its set to the default as per a new windows installation although I can't confirm what it is.

http://tools.pingdom.com/fpt/#!/jZLRDkw9d/http://beta.woodthatsgood.co.uk - Before
http://tools.pingdom.com/fpt/#!/tiGvUg5TN/http://beta.woodthatsgood.co.uk - After

It does vary a lot. Some times its acceptable but too often it was not. I also noticed that both the LIVE www and the beta were slowing down at the same time as I tested both. Please remember this was not sophisticated load testing this was me opening several browser windows and using free tools. Also I used monitoring tools such as Site24x7 which test response time by how long it takes to download just the HTML file and nothing else. These tests also picked up the performance problem.
 
Previous
 
Next
HomeHome51Degrees.mobi ...51Degrees.mobi ...51degrees.mobi ...51degrees.mobi ...nopCommerce v2.5 implementation: negative performance impact - MVC 3 nopCommerce v2.5 implementation: negative performance impact - MVC 3