Service Catalog Performance issues
Does anyone else have
issues with the performance of the service catalog loading on end users
sessions?
My catalog right now is only 60 requests and
expecting a couple hundred more.
When the portal opens they are getting a 30MB json
file for the catalog and it is time a few minutes to load each page load.
Just wondering what others are experiencing?
Best Answer
-
Martin_Blomgren Customer Ninja IT Monkey ✭✭✭✭Hi @Brian_Wiest
If you haven't noticed either Service Manager nor Cireson scales the RO or SO images so there is a'lot of performance/size to gain.
Based on your description above I suspect you are using the Home view with the url ending in /ServiceCatalog/Listing#/ which is utilizing the api call "/api/V3/ServiceCatalog/GetServiceCatalog" which in return is sized quite big because every RO item in the JSON file is containing 4 images. I've scaled all our images but even then with 72 ROs in my lab environment the JSON is still 6.8MB
When we were trying to decide between the 3 different home views none of them were quite up to our internal processes and so I explored the idea of building my own home view from Cireson API's and quickly encountered this problem. As it turns out there are undocumented API's that Cireson themselves are using in other views for the service catalog which are less chatty and I can get the same service catalog without images as JSON in only 35.8KB. All Images are loaded with xhr when needed and then cached!
So with all above I'm almost done building a custom Home app (Single Page Application) with shop and checkout functionality for one choosen SO category, here named 'Order' but will probably change to 'Shop' when finished
Some comparisons from my lab environment with 72 ROs:
The reason for dual entries on /ServiceCatalog/Listings#/ is that when you click on a SO in the right navigation pane the service catalog JSON is downloaded ones again thus the downloaded size increases!
7
Answers
If you haven't noticed either Service Manager nor Cireson scales the RO or SO images so there is a'lot of performance/size to gain.
Based on your description above I suspect you are using the Home view with the url ending in /ServiceCatalog/Listing#/ which is utilizing the api call "/api/V3/ServiceCatalog/GetServiceCatalog" which in return is sized quite big because every RO item in the JSON file is containing 4 images. I've scaled all our images but even then with 72 ROs in my lab environment the JSON is still 6.8MB
When we were trying to decide between the 3 different home views none of them were quite up to our internal processes and so I explored the idea of building my own home view from Cireson API's and quickly encountered this problem. As it turns out there are undocumented API's that Cireson themselves are using in other views for the service catalog which are less chatty and I can get the same service catalog without images as JSON in only 35.8KB. All Images are loaded with xhr when needed and then cached!
So with all above I'm almost done building a custom Home app (Single Page Application) with shop and checkout functionality for one choosen SO category, here named 'Order' but will probably change to 'Shop' when finished
Some comparisons from my lab environment with 72 ROs:
The reason for dual entries on /ServiceCatalog/Listings#/ is that when you click on a SO in the right navigation pane the service catalog JSON is downloaded ones again thus the downloaded size increases!
Do you have any quick notes on how you enabled the Cache
I will work with my developer as just turning that on still boosts the performance.
Thanks
From production:
On a short term notice I would make sure that the RO & SO images not are bigger then needed. Please note that there are some manual truncing in the DB to be done afterwards to make sure that the Cireson Cache Builder is syncing your edited pictures.
On the longer term you could wait for my custom service catalog app to be finished as I will share it to the community (approx. in a month or two) or change to one of the other 2 builtin Home views.
Cireson support provided a new SQL stored procedure. Applied and it took the json file from 38MB to 37k. Portal loads so much faster now. Thanks for all the options/comments @Martin_Blomgren
Sounds great! I guess Cireson will include this in future updates for all customers as well.
@Tom_Hendricks
Thanks! It's custom built and I will upload it to the community in approx. 2 months once I'm done removing all hardcoded stuff and made it easier to implement for a non developer (i.e translation, checkout form and some unique guids). The goal is to just drop it into CustomSpace and maybe change a few settings in a settings.json.
However I'm not a big fan of using undocumented API's, as the risk of change is quite severe.