Start here. This is the direct spoken answer to practice first.
Why this question matters
Sustained process growth can come from retained managed objects, intentional queues or caches, native memory, thread growth, or workload changes. Safe diagnosis correlates traffic and deployments with runtime counters, then captures focused heap evidence when needed.
I would start by confirming the pattern: process memory, managed heap size, GC counts, request volume, and recent deployments. If memory keeps growing after traffic settles or after full collections, I would suspect retained objects. I would look for correlations with specific endpoints, jobs, or payload sizes. If needed, I would capture a dump safely and compare retained object types and roots before changing code.