I'm encountering something similar. Immediately upon starting a cluster and triggering a job run, my memory usage jumps from 0 to about 20GB used and 15GB cached (see the attached screenshot). The data I am working with should be very small (less than 1GB), but for some reason the memory usage is still very high and memory is not freed up upon completion of the job.
There are multiple Python tasks in my pipeline, and after each task the memory used seems to remain constant which to me indicates that memory is not being properly freed up even after dataframes and other in-memory objects are not longer being used. My cluster has not been running for long periods of time, so I would not expect that it should require a restart. I would like to be able to run multiple concurrent jobs on the same cluster, so it's concerning that even a single task is consuming so much memory.
Thank you,
Kyle