Hosting ASP.Net session database on same same instance as the user database? We have a web farm using SQL Server sessions.  We are seeing occasional timeouts connecting to the session DB even though overall utilization is low.  The ASPState session database is on the same instance as the application database.  I suspect this is not a good idea because the user database queries are closely correlated with the session database queries.  What do you think?

If this is a bad idea, would it help to move it to another SQL Server instance on the same machine? Or is it best practice to run the session DB on another machine?
Personally, in addition to having an extra machine for the session DB, I would consider


moving the session database files onto different disk arrays (not partitions on the same volume)
adding more RAM in case it is read load, not write load causing the problem


The first option includes moving your user databases and tempdb to different disk arrays too. That is, one file per array basically.

I wouldn't think about either of these because you don't add any new resources:


another SQL Server instance on the same machine
using virtualisation for my SQL Servers