NetSuite

Is NetSuite running slow? Find out why

Written by
Sonny Spencer, BFP, ACA
Director of Finance Operations
November 10, 2022
6
min read

Table of Contents

View all guides

Heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

This is some text inside of a div block.

One of the most common complaints from NetSuite end users is that “NetSuite is running slow”. As a NetSuite administrator or developer, it can be challenging to determine the root cause of this slowness. In turn, it can be frustrating for the end user who does not receive an informative response as to why the system is running so slow. 

Don’t miss NetSuite content that will make you better at your work

If we ever spam you, unsubscribe instantly (& spam us back - arik.marmorstein@salto.io)

High-Level Investigation

For a quick, high-level investigation, you can double click on the “Oracle NetSuite” text (top left of screen) after a page loads, is edited, or saves to get additional insight into the time taken to execute the page load or save. 

After a page loads, you will receive some limited information. Here is an example:

Graphical user interface, text, applicationDescription automatically generated
Screen shot after page loads and “Oracle NetSuite” has been double clicked.

After a page is edited/saved, you will receive some additional insight. Here is an example:

TextDescription automatically generated
Screen shot after record is saved and “Oracle NetSuite” has been double clicked.

Let’s break down what each of these “Performance Details” represents to help investigate the root cause of the slowness issue for the end user.

Total – As expected, shows the total time to save the record.

Server – Total time taken to obtain information from the NetSuite server. Often the root cause of “NetSuite running slow”. Note this number includes both Server Suite Script and Server Workflow, resulting in the sum of %’s exceeding 100%.

Server Suite Script – Time taken processing server-side suite scripts. Expect this to be more significant if you have custom user event scripts.

Server Workflow – Time taken processing server-side workflows. Expect this to be more significant if you have custom workflows.

Network – Time taken for record update to reach the end user’s device. If this is significantly high, the end user is likely having internet connectivity issues.

Client – Time taken for record page to render on the end user’s device.  

If you are looking for a better way to determine the root cause of these pain points, keep reading.

Step 1 – Download the NetSuite APM bundle

In the past, you’ve been able to install the NetSuite APM bundle via SuiteBundler by searching for bundle ID 67350 “Application Performance Management”. However, effective March 7, 2023, the ability to download NetSuite APM from SuiteBundler will be removed. As such, it is recommended that you instead install from the SuiteApp Marketplace.

Navigate: Customization – SuiteCloud Development – SuiteApp Marketplace – Type “APM” in the search bar – Click on “Application Performance Management (APM)” tile - Install

Step 2 – Initial investigation

Now that you have NetSuite APM installed in your NetSuite environment, it is time to investigate the system performance at a more granular level.

A good place to start is by reviewing the Performance Health Dashboard.

Navigate: Customization – Performance – Performance Health Dashboard

Graphical user interface, applicationDescription automatically generated
Screenshot of Performance Health Dashboard with no issues found

Under each of these tiles, NetSuite will report on different issue types, namely:

Errors – Issues tied to system errors

Performance Issues – Issues tied to performance slowness

Standards Update – Issues tied to NetSuite standards to be addressed

Step 3 – Identify response time performance issues

Another really useful part of the APM solution is the “Record Pages Monitor”. This will allow you to dig deeper into performance issues for specific record types as well as the operation performed on those records. For example, if the record type is “Sales Order” and the operation is “Save”, the response time seen in the monitor is the average response time for saving a sales order record within the selected time frame, up to the last 30 days.

Graphical user interface, applicationDescription automatically generated
Screenshot of Record Pages Monitor with most utilized records

After clicking on the tile for a specific record type/operation, a number of charts are generated that will provide additional information about the record response time.

  1. Response Time Chart –  Displays the average (median) response time of the record over the time period selected. Response time broken down by client, network and server.
  2. Throughput Chart – Displays the record usage over the time period selected. This can be used to identify periods of high traffic and catch anomalies.
  3. User Event and Workflow Chart – Displays the impact of user event scripts and workflows on the record over the time period selected. This can be used to identify problematic custom development.
  4. Execution Time Distribution Chart – Groups records by response time over the time period selected. This can be used to catch anomalies with specific records, e.g. perhaps a specific record had an extraordinary number of lines compared to other records of the same time.

When you drill down into a specific “Response Time” or “User Event and Workflow” reading in the charts provided, you will be taken to a page entitled “Page Time Summary” that provides a detailed breakdown of the response time, down to the specific script and workflow. Alternatively, you can navigate to this page directly in the NetSuite APM.

Graphical user interface, tableDescription automatically generated
Screenshot of Page Time Summary filtered to order record type with save operation

With this tool, a NetSuite administrator or developer has the ability to drill down into specific record types in combination with specific operations and identify performance issues resulting not only from the server, but also from specific suite scripts and workflows. Perhaps there is an issue with your NetSuite purchase order workflow or vendor bill workflow; this tool would identify any issue in a matter of seconds. In a highly customized NetSuite environment, performance issues will often stem from the implementation of multiple custom suite scripts and workflows on a record.

Don’t miss NetSuite content that will make you better at your work

If we ever spam you, unsubscribe instantly (& spam us back - arik.marmorstein@salto.io)

Step 4 – Remediation

Now that you have the ability to drill down into specific records and operations to identify the root cause of slow response times, you can prioritize system performance improvements based upon records most utilized in the system with the highest response times.

The Record Pages Monitor will quickly tell you which records are the most utilized and display the response time for each. Drill down into the highest response time to identify the root cause. Likely there will be multiple scripts and/or workflows executing on this record, and you will be able to easily identify which of these are having the most significant impact to the response time.

These are the custom suite scripts and workflows to pay closer attention to. Are these custom developments still required? Can any of them be consolidated to achieve better performance? Can the code be rewritten in a more optimal way?

Final Thoughts

Implementing the NetSuite Application Performance Management SuiteApp is a great way to troubleshoot and monitor system performance. Now when an end user mentions that “NetSuite is running slow”, you will be able to tell them exactly why that particular record/operation is running slow.

In all NetSuite environments, but especially more mature ones, system performance should be considered in every new development project. Once the development is ready for testing, you can validate the impact to system performance via the Page Time Summary and share with the requestor of the development. As such, it is recommended that the NetSuite APM is installed in all environments, such as your NetSuite sandbox account, to ensure the system performance impact is captured prior to migrating custom NetSuite development to production.

If you are struggling with migrating custom NetSuite development to production today, consider leveraging a tool such as Salto that will deploy the required changes smoothly between NetSuite environments.

Salto Suite Tip: Additional information on the NetSuite Application Performance Management (APM) SuiteApp can be found here.

Written by
Sonny Spencer, BFP, ACA

Sonny is a seasoned NetSuite veteran, with more than 7 years experience implementing NetSuite and architecting NetSuite solutions for a wide variety of public and private companies, on a global scale. He leverages his background both as a Chartered Accountant and Certified NetSuite Administrator to design and build NetSuite solutions that solve real world problems. Sonny is an active member of the NetSuite community, participating in local NetSuite meetups, NetSuite forums and groups focused on financial system optimization.

Written by