【发布时间】:2009-09-16 08:48:57
【问题描述】:
运行 Session State Server 而不是 InProc 的开销性能损失是多少?意义重大吗?我知道您可以使用状态服务器重新启动 w3wp 并保留所有会话状态 - 这是与 InProc 相比的唯一优势吗?
【问题讨论】:
标签: asp.net session session-state-server
运行 Session State Server 而不是 InProc 的开销性能损失是多少?意义重大吗?我知道您可以使用状态服务器重新启动 w3wp 并保留所有会话状态 - 这是与 InProc 相比的唯一优势吗?
【问题讨论】:
标签: asp.net session session-state-server
这取决于您的部署计划:在单个服务器上,损失很小,但好处同样有限:您的会话状态在进程回收(如前所述)中幸存下来,仅此而已。您将在 StateServer 模式下进行一些跨进程编组,因此预计会有一些额外的 cpu 负载,没有什么太令人印象深刻的了。
在网络场/负载平衡设置中,InProc 将不起作用,除非您可以配置粘性会话/服务器关联。请注意,StateServer 节点本身可能会成为单点故障,因此请务必对其进行补偿。话虽如此,StateServer 的延迟通常比使用 SQLServer 模式时要少得多(= 更好)。
确保您的代码/网站能够优雅地处理丢失状态,无论您将数据存储在何处。
【讨论】:
如果您有负载平衡设置(不使用粘性会话),则不能使用 InProc,因为(当然基于您的负载平衡设置)您可能会在节点之间切换。
工作进程的回收(当然这与重新启动 w3wp 相同)也会在会话处于 InProc 时终止您的会话。
【讨论】: