13.6. Understanding Memory Usage for Specific Applications

Documentation

VoltDB Home » Documentation » Guide to Performance and Customization

13.6. Understanding Memory Usage for Specific Applications

To help understand the memory usage for a specific VoltDB database, the @Statistics system procedure provides memory usage information. The "MEMORY" keyword returns a separate row of data for each server in the cluster, with columns providing information about the different aspects of memory usage, as described in the following table.

ColumnType of StorageDescription
JAVAUSEDTemporaryThe amount of memory currently in use for temporary storage.
JAVAUNUSEDTemporaryThe maximum amount of Java heap allocated but not currently in use.
TUPLECOUNTPersistentThe number of tuples currently being held in memory.
TUPLEDATAPersistentThe amount of memory in use to store inline table data.
TUPLEALLOCATEDPersistentThe amount of memory allocated for table storage. This includes the amount in use and any free space currently being held by VoltDB.
INDEXMEMORYPersistentThe approximate amount of memory in use to store indexes.
STRINGMEMORYPersistentThe approximate amount of memory in use for non-inline string and binary storage.
POOLEDMEMORYPersistentThe total amount allocated to pooled memory, including the memory assigned for storing strings, indexes, free lists, and metadata associated with tuple storage.
RSSAllThe resident set size for the VoltDB server process.

You can use periodic calls to the @Statistics system procedure with the "MEMORY" keyword to track your database cluster's memory usage in detail. But if you are only looking for an overall picture, VoltDB provides simple graphs at runtime.

Connect to a VoltDB server's HTTP port (by default, http://<server-name>:8080) to see graphs of basic memory usage for that server, including total resident set size (RSS), used Java heap and unused Java heap. Memory statistics are collected and displayed over three different time frames: 2 minutes, 30 minutes, and 24 hours. Click on the web browser's refresh button to update the charts.