日期:2014-05-18  浏览次数:20422 次

session性能问题,请有实际经验的来看一下
1、session中只保存1个变量用户名(10个字符),网站最高可能有5000个并发访问,这样的话session大概需要消耗多少服务器内存,1个g的内存吃紧不吃紧?
2、在asp.net2.0中,用Session[ "xxx "]= "xxxx ";添加后,在其他页面访问Session[ "xxx "]时会出现Session[ "xxx "]是null,好像Session[ "xxx "]并没有加入到Session中,而且奇怪的是只是有时候出现,很多时候却没有问题,是不是用Session.Add( "xxx ", "xxxx ")就没问题?

------解决方案--------------------
SF~ 我用的1.1~
------解决方案--------------------
第一个问题,存储肯定没问题
第二个我也不清楚,帮顶
------解决方案--------------------
第二个问题 我也遇到
希望得到答案

------解决方案--------------------
第二个问题:你将web.config中的session存储模式改为serverstate,并启动ASP.NET State Service服务。在window服务里。
------解决方案--------------------
第一个问题我们来算一下,一个字符如果全部按utf-8算占2个字节,那么10个字符就是20个字节
5000个并发访问就是20个字节*5000
最后换成mb就应该是 10*2*5000/1024/1024 = 0.095MB
这个好想太小了点吧,对你1G的内存加上N多的虚拟内存好像算不上什么吧

第二个问题好像没道理啊
两种方式是一样的你的Session如果空了可能是其他的原因,比如IIS的应用程序池被回收了
当然还有其他原因等着你去查了

------解决方案--------------------
并不是说占用多少字节的问题.它本身需要开辟空间来存储+你的内容.网上有人说> 12K,有人说> 25K,
如果你这么高的访问量,1G内存,光浏览就吃不效了,更别说是加数据库+程序用量了
------解决方案--------------------
第一个问题:1G内存应该够了,以前公司的web服务器只有512M,同时在线的人数都可以达到3000-4000,不过这个只是同时在线的人数,单就Session来说应该时够的,如果加上访问数据库和程序的话就不好说了。

第二个问题,请参考
http://blog.csdn.net/cuike519/archive/2005/09/27/490316.aspx

http://www.cnblogs.com/think-jerry/archive/2007/05/27/761344.html