Oracle 11G R2 install using separate instances or multiple schemas in a single instance
One instance should be able to do the job.  I'd recommend simply using AMM and ASMM.  If your DB is on a server dedicated as the DB server (i.e. not running web services or other software), you might try setting:


memory_target = memory_max_target = sga_max_size = 50% to 60% of your server's physical memory.  If this is less than 1500M, you're probably going to have pain. If the server is Unix or Linux, you could push this even to maybe 75%. 
sga_target = pga_aggregate_target = db_cache_size = shared_pool_size = shared_pool_reserved_size = large_pool_size = java_pool_size = 0. Setting these to 0 allows Oracle to size them as needed.  Oracle will steal from db cache when it needs more memory for cursors, for example.


If one of your problems is that one of your customers floods the database with too many connections, you would do best to find a way to limit this behavior, ideally at the app server if you can configure db connection pool max sizes.  If you can't change this on the app server, then it can be done at the DB side.  For example, you could allow each schema/user to have maximum 200 connections to the DB.  Beyond that limit, the offending schema gets denied additional sessions, but the other schemas remain healthy.