I’ve been in discussions with NetSuite about our system’s performance. I’ve previously written several posts on this topic. This go-round the issue of what constitutes “client time” was our focus. We’ve seen erratic client-times on a small percentage of production transactions. I didn’t understand how this could be and speculated on a reason.
First – NetSuite support has been very helpful. I contacted them because although our response times are mostly reasonable, we have a percentage that is not. I reported this and gently pushed back regarding the responsiveness of a shared (SaaS) system between multiple customers (tenants). When the system gets busy, everyone’s response times elongate.
I watched as server time directly correlated with overall response times. As NetSuite’s server time rose, so rose overall response time.
While looking at the numbers, my NetSuite support rep noticed that client time also had some erratic responses. We wanted to know why. I suspected that a popup in my client script might be causing the variance. So I did a little experiment.
I logged into our sandbox on a day when nobody was using it. I added a popup to my client script in the BeforeSave function. Then I opened and saved 10 invoices. Each time, I waited 30 seconds to close the popup.
Next, I removed the popup from my script.
Without closing the original invoices, I clicked edit on all 10 and saved them again one-at-a-time. Here are my 10 transactions in the order I saved them. The first 10 have the popup and the second 10 do not. I pulled these stats from the APM Page Summary and exported them to Excel.
First, total server time only exceeded 30 seconds once, the very first time I clicked save. This indicates to me that the stats are factoring out time spent waiting on an operator to close a popup. That’s awesome! Oh… and that answers to my original question.
Next, client time is very consistent. This is exactly what I’d expected. When a transaction’s total time elongates, it correlates closely with server time. That’s easy to see here.
I’ve split out SuiteScript and Workflow time because I’ve written about this other blog posts. Those two times are included in Server time. One thing to note here is that as server time grows, it can affect both SuiteScript and Workflow. They run on that same server that’s gotten busy with somebody else’s stuff!
So the question remains, why are client times on production transactions varying. My NetSuite support rep is speculating this is caused by browser plug-ins. I’ll need to do more research to validate that theory. However, that’ll need to wait for another blog post.