When your MySQL service has a high memory usage, it usually does not indicate that there is any particular issue.
With all MySQL plans, high memory usage is expected because MySQL InnoDB buffer pools are pre-allocated and show as used memory even when the database has no data or user activity. Depending on the plan size, InnoDB buffer pools are set to anything from 15% to 80% of the total available memory. Smaller plans use smaller percentage of total memory for buffer pools because operating system and management infrastructure components as well as other MySQL features may consume considerable portion of the available memory. There also needs to be sufficient amount of free memory to run extra utilities while backing up the database.
The MySQL documentation references buffer pool sizing explicitly:
A buffer pool is the memory area that holds cached InnoDB data for both tables and indexes.
A larger buffer pool requires less disk I/O to access the same table data more than once. On a dedicated database server, you might set the buffer pool size to 80% of the machine's physical memory size.
All nodes also have some base CPU consumption due to management overhead, which is about 5% of a single CPU core.
There isn't anything that could be done to reduce the visible memory usage, but high memory usage also does not indicate any particular problem.
Additional articles may be found on our Aiven Support page.
If you have any questions, please feel free to reach out to our Support and let us know.
Got here by accident? Learn how Aiven’s hosted and managed MySQL solution will simplify your workflow: