GAE does not release memory after handling request?
Like dragonx wrote every handler which was run, every global variable, import is cached on GAE so how long your instance is running so big she is. You can reconfigure your app settings to faster creating new instances and killing old's. That will give you a little chance to minimize that error.
That error doesn't have to be populated because of memory leaks. Many things affect to that so you should check your code, try to reconfigure your instance settings and maybe you should change your instance type to higher.
Why does this happen?
I run a task which uses a lot of memory - after the task has finished I would expect the memory to be released back to the instance.
However, this doesn't happen. The memory just keeps going up and up on subsequent execution of the task until eventually I get a soft memory warning.
What can I do about this? It just doesn't make sense. I have tried explicitly calling gc.collect() but this doesn't help.