Rocael, you ask about performance.
In our (Zill.net's) case we ensure that there is always enough RAM to support the number of servers being run. That is really the only way to make sure that performance will be OK when running on a shared server.
Roughly 50MB per OpenACS instance is usually good (in our case, as mentioned before, the database server is on a different machine), plus 32-64MB for the operating system.
The dotLRN instance can take a little more RAM depending on configuration. Also the number of threads you are running can increase RAM usage.