Chris van Leeuwen Front-end development, webdesign and more!

Improving Tridion website performance with Custom Component Linking

29-11-2008

Link management is a crucial part of managing your website’s internal links. In a typical SDL Tridion implementation, you will create articles in the form of Components. Each component is then rendered to one or more pages. Tridion uses Component Linking to manage links between articles. At runtime, component links are resolved using Tridion’s Component Linking API.

While this feature has clear benefits for your site’s copy-writers, it poses a considerable performance threat. Consider each page contains an average of 50 internal links, this means the Tridion Component Linking API is also called 50 times.

Testing Performance

During the realization of a Tridion website we decided to perform a website performance test, as the expected number of page views would peak around 50k/hour. In this test we discovered that 50-60 concurrent users browsing the site increased response times dramatically (>10s). During these tests both webserver and database server processorload never exceeded 30%.

With more specific testing we concluded the problem originated from the Tridion Component Linking API calls. As it seems the API handles requests single threaded using only one database connection. Basically; every link to be resolved for each request was waiting in one big line, which explains the low processor loads and high response times (and no one likes waiting in line).

Solving the problem

To solve the problem at hand we created our own custom component linking. Testing the pages with the custom linking lowered the average response times significantly by 90%. Also increasing the number of concurrent users had minor impact on the average response times. This increase is peculiar because the [early version] custom component did not even have caching implemented.

Disclaimer

Tests where made to Tridion 5.2 platform on a ASP site. Also Tridion support was not able to reproduce or explain the significant performance bottleneck.

Tags: , ,

5 Responses to “Improving Tridion website performance with Custom Component Linking”

  1. Albert te Boekhorst

    Hi Chris,

    I just want to add that we had the Tridion Component linking cache enabled in this instance. Disabling the cache gave even worse response times. The custom component linker you created, solved the problem and finally we got decent response times and significant load on both the web and DB server.

    Best regards,
    Albert

  2. Adriaan Bloem

    Did you experience this bottleneck on this particular website only, or have you seen it elsewhere, too? Did you create the custom linking in ASP, as well, or pre-publish? (I’ve seen several custom JSP solutions on the delivery side, but haven’t encountered that many live ASP implementations).

  3. Chris van Leeuwen

    @adriaan First of all, thanks for your comment! I’ve only seen this issue once so far. Also this issue will only arise on high traffic sites (in our case 500K page views / day). I would think sites with fewer visitors won’t really notice this bottleneck as most won’t have 50 concurrent users at a time.

  4. William Adams

    I have been approached by a potential employer who is interested in developers knowledgeable in .NET and hopefully Tridion. I know .NET, but not so much about Tridion. Thus far my research is telling me developments for/in Tridion environments is about as easy to find as a pot of gold at the end of any rainbow. Would you happen to have any suggestions for resources (hopefully no costs associated) I could utilize to ramp up my understanding of working with .NET in a Tridion environment?

    Thanks

  5. Chris van Leeuwen

    @William, the best resource for learning tridion besides official training courses is (my collegue) Albert te Boekhorst’s website http://www.albertteboekhorst.com/. He has written many excellent articles.
    Recently Tridion also launched http://sdltridionworld.com where customers and implementators can share (although moderated).
    A third is Julian Wraith http://www.julianwraith.com/ who is a tridion employee.
    Last but not least, be sure to check be here for any articles yet to appear :-)
    In my personal experience building websites using the Tridion CMS, I would opt using Tridion to publish content to the database (broker) and building a .NET website op top of that.

Leave a Reply


Powered by WordPress 20 queries. 0.275 seconds.