dis*_*nce 8 asp.net asp.net-mvc session
假设我们有一个拥有10万活跃用户的网站.
如果我们要在会话中保存用户的电子邮件,姓名,姓氏和性别,那么为所有会话分配了多少空间?
会话是否影响服务器RAM,服务器带宽或其他?
请给我一些关于会话功能和服务器上会话过载影响的信息.
如果您的模式设置为 ,会话本身将消耗服务器 RAM InProc,这仅受工作进程可用的 RAM 量的限制。
考虑到您的高要求,您需要非常小心在会话中放置的内容,只有在绝对必要时才这样做。不要将内容放入会话中并将它们留在那里以供一两页使用,只需返回数据库并获取它们,否则您的会话大小将急剧增加。
根据您存储的内容,它只有 5kb 甚至更少,因此基于 10 万用户,这将是:
5kb * 100,000 = 488.28MB
Run Code Online (Sandbox Code Playgroud)
所以您会看到,即使您只存储一些详细信息,在该使用级别下,内存使用量也相当可观。
对于如此高的需求和使用率,我会考虑使用专用状态服务器(StateServer模式),它允许您单独管理它并根据需要将资源分配给该服务器。
另一个选项是使用 SQL Server 会话(SQLServer模式),该会话仅受数据库可用大小的限制。所以我们这里讨论的是硬盘空间而不是内存。但老实说,如果您要访问数据库来检索会话信息,那么为什么不直接访问数据库并检索您需要的信息呢?