How to control the excessive use of ram by SQL Server?
That is by design.  SQL Server is supposed to use all the available memory, as it is storing more and more data in memory so that it doesn't need to go back to the disk to get the same memory over and over.

If you need to limit the amount of memory that a single SQL Server instance is using you can do this in SQL Server Management Studio by right clicking on the instance name within the Object Explorer and selecting properties.  Then select the memory tab and set the maximum amount of memory that the SQL Server will be allowed to use.  Now this isn't going to limit all aspects of SQL Server to that amount of memory.  This only controls the buffer pool and the execution plan cache.  Things like CLR, Full Text, the actual memory used by the SQL Server exe files, SQL Agent, extended stored procedures, etc. aren't controlled by this setting.  However these other things typically don't need all that much memory, it's the buffer pool and the execution plan cache which need the bulk of the memory.

If you set this setting on one instance you'll want to set it on all the instances so that they don't step on each other.