I'm running PS3 Media Server on Arch Linux, and it's using quite a bit of memory that I'm sure could be collected if the JVM would just try. Is there any way for me to get the process to garbage collect? Maybe I there's a signal I can send to it?
You should be able to force the JVM to GC, for example by recompiling or modifying the bytecode of your application.
In other cases one might not be as fortunate, for example I'm using a certain application written in SEPPLES right now and it's eating about 1.1GB of RAM at the moment due to memory leaks. A simple restart should get it in shape to some 40MB usage, at least for another day, when I'll have to restart it again.