Products | Versions |
---|---|
TIBCO Data Virtualization | 8.2.x and higher |
What is the use of Unmanaged memory in TIBCO Data Virtualization?
Unmanaged memory is used for:
(1) Fetch buffers - specifically, memory buffers used by the following settings:
- Default Bytes to Fetch
- Default Rows to Fetch
(2) Memory that third-party libraries require.
The rule of thumb is to allocate 70% of the JVM Heap as Managed Memory, by setting Percent of Memory to Manage (On Server Restart) to 70. This instructs TDV not to use more than 70% of the Heap for user requests, ensuring that 30% is left as Unmanaged Memory for Fetch buffers and third-party libraries to use when they need to.
30% is considered a safe number for Unmanaged memory unless you use an overly large value for one or both of the Fetch settings mentioned above, in which case a correspondingly large fetch memory buffer will be created. If the memory taken by the buffer exceeds the level of free Unmanaged memory, an OutOfMemory error will appear in the TDV logs.
To obtain information on third-party library requests that could be consuming memory, a thread dump is required. A thread dump may be obtained by clicking the Free Unused Memory button located under the Memory Graph in TDV Studio. This tells TDV to instantaneously write a snapshot of the requests that the JVM is currently processing to cs_server_status.log.