Table of Contents

Performance debugging

How to identify performance issues on a DynamicWeb solution

In most cases, bad performance is defined as the frontend having a high response time - e.g. search, adding to cart, or maybe showing the product list takes longer than it should. The reason for this can be anywhere from bad implementation, over memory leak in standard/custom code, and to a server with insufficient resources (memory and/or cpu). Most of the time it is due to a single, and not multiple problems.

A good place to start out is to try answering some of the following questions:

  • When did the issue start? Determining when the problem began can provide clues about potential causes, such as recent changes or updates.
  • Has anything changed recently? Consider recent version updates to the website, server configuration changes, changes in traffic volume, or updates to third-party services/plugins.
  • Are there any specific pages or components experiencing significant issues? Identifying specific areas of the website that are under-performing can help focus troubleshooting efforts.
  • Has website traffic gone up significantly? If the website suddenly attracts a lot of visitors, e.g. due to a Black Friday or Christmas discount campaign, you may experience performance issues due to the increased traffic.
  • Is there a performance difference between frontend and backend rendering? This can point in the direction of whether this is implementation, integration or server related.
  • Is the site updated by and/or depending on an external feed? If you connect to an external feed it might be the source of performance issues.
  • Are there any integration connections problems? An integrated solution with performance issues may experience problems related to network and endpoint issues.

Once you've answered these questions you will be better equipped to start the debugging process.

Browser developer tools

Start low-key: what does the browser console tell you? Using the standard developer tools in the browser often times helps identifying which calls to the system that have high load times.

Built-in DynamicWeb performance monitoring tools

DynamicWeb 10 ships with a number of built-in performance monitoring tools which can be used to analyze and identify potential bottlenecks:

  • Our Monitoring Reports
  • The Event viewer. Look at logged errors, and if you have a specific timestamp, look for errors that happened around this timestamp
  • The Health node helps you identify problems with data quality and bad data

DynamicWeb also features some useful URL parameters which you can add to a page url to see what's going on:

  • debug=true shows extensive trace information like load times, page stats, SQL statements
  • dbstat=true shows all database-calls, including executing time

Scheduled tasks

Scheduled tasks may also be a source of performance issues:

  • Are all the necessary Scheduled task running or has any of the stopped working?
  • Check if performance problems happen while executing scheduled tasks.
  • Also check if you may have multiple task that run on top of each other, putting the site under pressure.

Integration

When an integrated solution experiences performance issues, it may be an idea to see if the integration is the source.

This can be done by creating a copy of the website, disable the integration, and testing performance again.

Customizations

In our experience, custom functionality is often a source of performance issues. We recommend that you check if this is the case:

  • Create a copy of the solutions
  • Remove all custom DLL files
  • Test performance again

If this fixed the issue, your customizations may be the source of your performance issues.

Security

Is the site running a recommended and updated version. Notice that a performance issue could be due to a momentary DDOS attack. Contact your Hosting company if you expect this is the reason.

Hosting

Also evaluate if the server has enough resources by looking at performance. Contact the hosting company if you are unsure if this is the bottleneck. Ensure that database server and IIS is configured with enough resources (CPU, memory). Are there any Security scanner running during performance issue. If you have access to the Web and SQL server, use tools like SQL Server Profiler and event viewer for analyzing. A potential SQL bottleneck for query performance is when you are searching on a column that is not part of an index. Make sure that tables have an index.

Optimization

If it is not a specific problem, then try general site optimization. Using external tools for example:

  • Google Performance Insights
  • Google Lighthouse
  • New Relic
  • GTmetrix

Remove unused logging data. This can be done automatically in DynamicWeb.

Templates

  • Slow Template time rendering. Optimize template logic by reducing unnecessary computations, minimizing the use of loops and conditionals, and caching frequently accessed data where possible.
  • Database Queries in Templates: Minimize database queries within templates by pre-fetching and passing data to templates in a structured format. Use Lucine Indexing when possible.
  • Resource Loading and Dependencies: Minimize the number of external resource requests by combining and minifying CSS and JavaScript files. Utilize content delivery networks (CDNs)
  • Lazy loading Employ lazy loading techniques for non-critical resources to prioritize rendering and content delivery.

Investigations

For complex issues requiring in-depth analysis, our Support-team may elect to initiate investigations to identify and resolve issues. Investigations are typically conducted in collaboration with Product Development.

To top