08-01-2013 07:20 AM - edited 03-14-2019 12:09 PM
We're analzying a rather busy UCCX cluster, with constant "UnifiedCCXEngineMemoryUsageHigh" alarms. It has some rather large and poorly written scripts that are memory hogs. I'm trying to target which scripts are the biggest memory consumers for our first round of script optimization.
Using Real Time Reporting (and historical reporting) I can see the call volume breakdown per application. But I can't seem to find out if I can see the memory utilization per application. Any reports or tools to help with that?
I can look at lines of code per app, but I realize a lot more effects memory usage (such as variables, xml loading, etc).
Thanks!
Tom
Solved! Go to Solution.
08-01-2013 07:31 AM
I don't believe there is such a tool to see a per app mem usage.
I would do this:
1. Look at the file sizes of your scripts.
2. Look at the size of your external data (XML, DB, etc.)
3. Look at what scripts are referencing external data
4. Look at your applications and which scripts are being referenced
5. Look at the call volume for these applications
Knowing that information will help you narrow down where you memory is being used.
Say for example you had a script that was 100KB in size, and you had 5 applications all using it. Maybe you're leveraging the script parameters to change the behavior of the script, much like one would do for a template branch office main menu script. The engine will need to load the script five times, consuming 500KB of memory.
Also, there's an aspect of programming a script, which you cannot account for, and that's content generated at run time. For example, if you are pulling in DB information about each of your callers, then some callers may have no data associated, some may only have a customer name, while others might have 5 years of ticket history being pulled in to UCCX.
In short, this is no small task, and if you want real numbers, you'll need to isolate each call flow into it's own UCCX instance (lab?) and benchmark the memory usage with RTMT using a call generator such as a hammer.
I'm not even sure Cisco TAC can get this detailed for you.
Lastly, I'll leave you with this. It's not a perfect document, but it's a start:
Anthony Holloway
Please use the star ratings to help drive great content to the top of searches.
08-01-2013 07:31 AM
I don't believe there is such a tool to see a per app mem usage.
I would do this:
1. Look at the file sizes of your scripts.
2. Look at the size of your external data (XML, DB, etc.)
3. Look at what scripts are referencing external data
4. Look at your applications and which scripts are being referenced
5. Look at the call volume for these applications
Knowing that information will help you narrow down where you memory is being used.
Say for example you had a script that was 100KB in size, and you had 5 applications all using it. Maybe you're leveraging the script parameters to change the behavior of the script, much like one would do for a template branch office main menu script. The engine will need to load the script five times, consuming 500KB of memory.
Also, there's an aspect of programming a script, which you cannot account for, and that's content generated at run time. For example, if you are pulling in DB information about each of your callers, then some callers may have no data associated, some may only have a customer name, while others might have 5 years of ticket history being pulled in to UCCX.
In short, this is no small task, and if you want real numbers, you'll need to isolate each call flow into it's own UCCX instance (lab?) and benchmark the memory usage with RTMT using a call generator such as a hammer.
I'm not even sure Cisco TAC can get this detailed for you.
Lastly, I'll leave you with this. It's not a perfect document, but it's a start:
Anthony Holloway
Please use the star ratings to help drive great content to the top of searches.
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: