We are about to rerelease a site that gets around 90,000 user registrations a day. On any given day we have around 250,000 unique visits.
Now, the new code for the site lays off the database a bit by storing more in the session. It equates to about 40k per logged in user, or 1-2k per anonymous user for up to a week of inactive time. This is obviously a significant amount of disk space to be using. In addition to the disk space, the session data is shared by 4 web servers via nfs.
My question is: how can I support this much session data and avoid the sessions being a bottleneck?
I have looked at sql based session storage (too slow, too much overhead), file based sessions (how well does this scale?) and msession (don't know enough about it). Any recommendations?





If you are unable (at this time) to refactor the application, then this may make a difference, although in saying that, if your SESSIONs are 40k each then to me there already is a serious problem 
The problem is, there is a ton of data that needs to be stored for the duration of a users session. And storing it (the ephemeral data) in the database is really inappropriate, since it never needs to be queried on and changes from login to login. We have around 3500 concurrent connections right now, I don't see even a really big x86 box being able to handle that kind of sql traffic.
If you're unsure or unwilling to store the user data to a flat file, maybe leaving things as they are (after refactoring) for a while to see what the performance gain is, if any ?

Bookmarks