我们正在使用 out-of-proc 会话状态服务/ ASP.Net会话状态。我们知道这有问题,因为它在过去被滥用,过多地存储在会话状态中,因此正在进入一个更具伸缩性的系统。
与此同时,我们试图了解会话状态服务如何管理内存和我们有什么限制。但none the Microsoft docs的{{3}}似乎会详细说明。
具体来说我想知道:
答案 0 :(得分:1)
除托管服务的机器外,没有任何限制。如果它有16演出的RAM,假设有一些演出用于其他进程/操作系统/等等,那么会话数据可能会有13 GB的内存。数据不会持久保存到磁盘,因此数据只存在于RAM /内存中;这就是为什么当你重新启动服务时,所有会话都消失了。内存是易失性的,就像RAM磁盘一样。
如果达到托管会话状态服务的计算机的内存限制,则每个用户要么存储过多数据,要么存储过少数据的用户太多。您已经走上了正确的轨道,因为下一步是转移到分布式会话状态提供程序以正确扩展。这通常是通过分布式缓存系统实现的,该系统附带会话状态提供程序,或者通过针对所述系统编写自己的提供程序。
数据没有每用户限制,但请注意,进程外通信始终通过序列化进行。因此,存在一个实际限制,因为无论您如何处理,每个请求的用户数据序列化/反序列化将非常缓慢。