Memory consumption, like always, is dependent on the required bandwidth in terms of parallel robots needed for a specific project.
However, some robots consume more memory than others. Opening large Excel spreadsheets for example or large XML ﬁles consume more memory than other files (e.g. txt) even when the file sizes on disk are the same.
When webkit robots are running, there are two components that should be monitored for memory usage: RoboServer and the kapowbrowser processes (for more information about how these are related, see Knowledgebase article #13342: "More information about the webkit robot browser")
By default the RoboServer max memory is 2GB but it can be modified in RoboServer.conf (see the Admin Guide for more details, section "Change the RAM Allocation").
But, this memory limit only applies to the RoboServer Java Virtual Machine (when this limit is reached, the JVM will log an Out of Memory error and the RoboServer will restart).
This limit does NOT apply to the kapowbrowser processes. All these processes run outside of the RoboServer JVM and therefore are only limited by the amount of the available memory on the system. Note: kapowbrowser is a 32 bit process so each process has a limit of 2GB.
Between 9.3 and 9.4 the memory footprint (in terms of virtual memory) of the individual Kapow (WebKit) browser process was significantly reduced.
Kapow 9.5 features monitoring (through Management Console > Dashboard tab) of the individual RoboServer’s total memory and CPU consumption, including the memory consumed by the kapowbrowser sub-processes. That should help system integrators determine at which velocity robots can be safely run and/or how much memory to assign to the machine running RoboServer.
The ManagementConsole Dashboard tab was removed in Kapow v10.3.1 and we recommend using Kofax Analytics for Kapow / for RPA to monitor the memory used by RoboServers.
The memory can be monitored using TaskManager/Perfmon or, for headless linux, using one of the commands to check resources (top/htop):
- for the RoboServer, look for the memory used by the java.exe process (RoboServer.exe is the wrapper process, not the JVM).
- for kapowbrowser, look at the total memory used by these processes. Each webkit robot will start a kapowbrowser process and it will stop it when the robot finishes execution. So it's recommended to check the memory used by kapowbrowser processes at peak times to see the highest usage.