Portal Engine Questions on portal engine and web parts.
Version 5.x > Portal Engine > Performance - Please help!! View modes: 
User avatar
Member
Member
abi-b2 - 5/23/2011 7:50:24 AM
   
Performance - Please help!!
Hy there,

we are developing a new Kentico-Webshop. Our main Problem is the perfomance of the site content. The pages are created with dynamic webpart that read some values from a different database like the price of a product. We have tried a lot of different types of caching, but don't have the results we ascpected. The Store contains about 13000 Products and also 13000 Pages per language (actually 2 languages). With enabling the fullcache-option the performance may be ok, but the dynamic content inside the webpart-transformation will not be refreshed. On the otherside everything is great without caching but the perfomance is horrible. It takes about 5 seconds to render a product-page.

Please help....

User avatar
Kentico Developer
Kentico Developer
kentico_helenag - 5/23/2011 9:23:33 AM
   
RE:Performance - Please help!!
Hello,


I would recommend you the partial cache - Caching options.

You can also read articles about performance by our CTO: Martin Hejtmanek's blog. For example: Optimization tips
Speed up your images and files

You can also find some helpful information here: Performance optimization tips.


Best regards,
Helena Grulichova

User avatar
Certified Developer 9
Certified Developer 9
charbf - 5/24/2011 12:32:34 PM
   
RE:Performance - Please help!!
Hi your bottle neck is most likely not with Kentico.

I recommend taking a different approach.

You could have the Price in the Kentico Document instead of in an other database.

To keep Prices up to date you could build a scheduled Task that update the prices every lets say 1 hour.

Scheduling a custom code




User avatar
Member
Member
abi-b2 - 5/24/2011 12:47:32 PM
   
RE:Performance - Please help!!
Hy charbf,

your idea is good but it's not possible in our environment. We need to have customerspecific prices that could change every minute. So our solution is to store the product and the productpage in kentico an read the relevant dynamic data directly from the database.
I think the only solution may be somthing with caching. But i do not really know where to confugure it correctly.

Thanks
Bye ABI

User avatar
Kentico Developer
Kentico Developer
kentico_helenag - 5/26/2011 3:46:08 AM
   
RE:Performance - Please help!!
Hi,


you can develop a custom system to flush the cache. You can see the API methods for Kentico cache here: Cache dependencies.

Otherwise, you can use the standard ASP.NET cache options to handle your scenario. You may find some help by Google.


Best regards,
Helena Grulichova

User avatar
Member
Member
lancetek - 5/26/2011 5:27:43 AM
   
RE:Performance - Please help!!
abi-b2 wrote: Hy charbf,

your idea is good but it's not possible in our environment. We need to have customerspecific prices that could change every minute. So our solution is to store the product and the productpage in kentico an read the relevant dynamic data directly from the database.
I think the only solution may be somthing with caching. But i do not really know where to confugure it correctly.

Thanks
Bye ABI


In order to help you, you'll need to provide more information about your system. charbf is just guessing the most common cause of performance problems - we can't know exactly what the problem is without more information.

In linking two different systems, sometimes it's the connection overhead that causes perf issues. It's pretty common so charbf's trying to suggest something to mitigate it.

The first thing you need to do is some performance profiling. Use a tool like dotTrace from JetBrains or Performance Profiler from RedGate to attach to your process and see what calls are taking the most time. It's pretty obvious to see where in your code your performance bottlenecks are.

These profiling tools offer free trials, so it won't cost you anything to try them out. If you can't even do that, you can roll your own crude profiling using System.Diagnostics.Trace.WriteLine and the trace.axd page or any logging tool of your choice.

Using the perf profiling output, you can then determine a strategy to improve performance.

Please do the perf test and let us know where the bottleneck is/are.

Good luck,
Lance



User avatar
Certified Developer 9
Certified Developer 9
Petar Kozjak - 5/26/2011 6:11:16 AM
   
RE:Performance - Please help!!
Most likely problem isn't in Kentico. We had site with 50 000 product and the were running smoothly.

Also I agree with charbf, import data to Kentico and create update schedule.

I would recommend you to pre-compile the site... that will improve load time... :)

User avatar
Member
Member
ena.lark-gmail - 7/18/2011 12:35:33 AM
   
RE:Performance - Please help!!
I’d recommend you to try distributed caching. This actually enhances app performance and makes it scalable. Distributed Cache solution (like NCache) is just right tool to boost up performance.