Hi Debra,
there are a couple of possible reasons;
a) the number of sessions is growing and growing. This might happen if (for example) the server was being queried by a program (one that didn't pass the session cookie). If your session timeout is really long then these "dead sessions" will accumulate and consume some ram. but it would take a lot to fill up gigs of ram.
b) the number of threads active at a time is growing. This is possible if you have "long running" threads, like say reports or processes. Indeed if you manage to do something that means a specific thread never actually ends then obviously that will eventually be a problem. It could also happen if you have a large number of very active users. You'll see ram usage grow with active threads, but you should also see it drop as the thread number drops.
c) incoming Posts consume Ram as they are coming in, but they don't start a thread until the post is complete. Typically the thread then only lasts for a very short time as the Post is dealt with (and perhaps a file is saved etc.) You've done the right thing by putting a limit on the post size, that at least stops one client sending you a 2 gig file.
d) If you are using the In-Memory driver then you need to make sure data is removed from it when a session ends. There is a method in the WebHandler designed for this called .NotifyDeleteSession. Inside this method you can access p_web.SessionId, but not other session variables. What you do need to do here is remove any items in the memory table which may be related to that session. Failure to do this will result in the memory table growing, and consuming ever more ram.
The Performance Tab on your web server window is your friend here. It allows you to monitor number of sessions, number of threads, number of session variables and so on. This can give you lots of clues as to where the problem might be.
Cheers
Bruce