非高手莫进:一连串关于性能的问题,session存储对象实例?web farm?

smuzy 2003-08-09 04:18:42
请问高手们:
1、session中大量存放数据除了对系统的内存消耗较多外,还会影响其他什么方面性能?
2、我用session存放重量级对象实例的时候(一个实例大概有30个基本属性,基本各种数据类型都有)是否合适?
3、当创建一个对象时怎样得知这个对象占用的内存空间大小?

4、如果我以后考虑到web farm的情况,此种保持session会话而,存储对象的做法能不能有个比较好的解决方案?
5、web farm技术上要求现在的(单服务器)系统怎么做才能在以后容易进行扩展?

6、csdn据说是由3台pc提供服务,不知道csdn的技术主管能不能把自己的建站经验和技巧总结一下以飨读者呢?

这个问题本来想出200分,结果上个星期因为要开学,把所有的可用分都捐赠了。
高手们不要计较,我把仅剩的46分献上。
...全文
201 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuruhong 2003-08-09
  • 打赏
  • 举报
回复
to yonghengdizhen(生命的插曲)
我也不赞同将实例存储在session,那样可能表面看起来简化许多,但是隐含的会带来一些性能上面的问题。

在web application中,我始终认为体系结构的设计是非常重要的,在我们处理client/server中是相同的,browser发展到今天,应该算一个很强大的胖客户。在设计中负载平衡是一个非常重要的概念,如何保证系统在one client到百万计的client的系统稳定,最重要的就是体现在可伸缩,有些时候少量用户的情况下可以运行良好,但是在超过一定限度的用户之后,系统会产生致命性的崩溃,这样的web application可以说是一个失败的系统

让客户端和服务器各自承担多少的负载,多服务器并行如何设计,这个是我一直在考虑的问题,有兴趣的可以一起探讨,

生命的插曲,有空再MSN聊聊 blueswing_liu@hotmail.com
bluebaby00 2003-08-09
  • 打赏
  • 举报
回复
up~
yonghengdizhen 2003-08-09
  • 打赏
  • 举报
回复
将对象实例存储在session中是M$不推荐的做法.
yonghengdizhen 2003-08-09
  • 打赏
  • 举报
回复
to liuruhong(蓝色街灯)

看来你的设计理念和我非常相似.你说到的这些,正是我在我的设计中一直贯穿的..

我一直认为,在web application的设计中,一但目标平台能够确定下来,就尽可能的将其能力发挥起来,合理的将运算负载进行分配
anita2li 2003-08-09
  • 打赏
  • 举报
回复
发现我打错好多字﹐不知道楼主能否看懂﹖呵呵
“我们老大这个星期休假﹐所以”最后是用”数组保存数据”
chon81 2003-08-09
  • 打赏
  • 举报
回复
我记得有本书上说,
session是保存在cookie里面的.
只有在asp页面运行时,才从IE中取得,调入服务器系统内存的.
liuruhong 2003-08-09
  • 打赏
  • 举报
回复
1。内存消耗太多的结果必然影响效率,毕竟系统要对这些资源进行分配和回收的管理
2。我个人觉得不是很合适,那么大的数据量你可以考虑存储在xml中,然后session做一个索引
3。lenB应该可以得到大小,不过最好使用C++的sizeOf写一个函数来判断
4。使用xml在放在一个临时文件夹,文件命名的时候使用sessionid来命名,在session_onend的时候销毁
5。在服务器段一些业务逻辑考虑使用COM/COM+的方式(至于donNet是另外一个概念),这样的情况下有利于你采用集群主机的方式来协同工作
6。win2000提供了集群服务,最简单的思路就是分流,也是一个最行之有效的解决方案,这个可以通过硬件或者软件实现,在没有会话状态的情况下,解决比较简单

以上只是我的个人之见,之前作过一些asp系统,不过老长时间没有玩了,大家可以一起讨论
cloudchen 2003-08-09
  • 打赏
  • 举报
回复
怎么会丢失?每19分钟刷新一次frameset
windancer 2003-08-09
  • 打赏
  • 举报
回复
有时候session真的是不稳定,而且在框架中session可能丢失
web farm是什么东东,web form到是知道一点:0
andy2001p 2003-08-09
  • 打赏
  • 举报
回复
同意楼上!
anita2li 2003-08-09
  • 打赏
  • 举报
回复
我正在修改一个也是用了很多Session的系统﹐那部分是由我们老大开发的。
我参与开发了一段时间﹐后来因为有很多系统要开发我就转去开发其它系统了。
这个星期我们老大修改﹐所以他又把系统交给我修改(该系统正在测试中)。在修改中发现问题也是蛮多的﹐也许会对你有些帮助。
因为是主从架构﹐而明细的资料很多﹐所以他选择了用Session暂存资料﹐在更新完数据后用remove移除相关session。但是我发现有时间某些Session并未移除﹐而他明明已经用了remove将该Session移除。可能是IIS不稳定的原因吧。
现在修改弄得我焦头烂额了﹐用了太多Session真的不是很好﹐我不是很主张这样做﹐我宁原用全局变量或者数据保存数据。
纯属个人愚见。
Goodreams 2003-08-09
  • 打赏
  • 举报
回复
1、消耗内存可以提示代码效率。。。
2、只要不超过4K就可以了。。。
3、不知道。。。
4、不知道。。。
5、不懂。。。。
6、。。。。。。
gnawdong 2003-08-09
  • 打赏
  • 举报
回复
:)
iwodgirl 2003-08-09
  • 打赏
  • 举报
回复
up
smuzy 2003-08-09
  • 打赏
  • 举报
回复
刚起床,昨天晚上熬夜了。

1、首先chon81(当我遇上你…) 的说法是不确切的,你可以看一下我给一个问题的回复:
http://expert.csdn.net/Expert/topic/2101/2101379.xml?temp=.4335749
2、session不稳定的问题我也遇见过,所以我更怀疑他存放重量级对象时的性能
3、to liuruhong(蓝色街灯)
现在的系统我已经进行了Com封装(主要是数据库的封装和部分逻辑的封装)
想到过用其它的方式的实现,但是最终没有找到一个直接存放对象实例的方法,不知道你制作网站的时候如果要进行会话维护的时候用什么方法?
你说的session_onend方法是十分不稳定的。我调试的时候没有几次能够成功引发这个事件,不过这个也不是主要问题。
使用xml能够直接存放对象?
如果采用XML文件来存放,这个XMl文件也得依靠session来维持,所以遇到web farm不可行。并且如何能够让多台服务器共享该xml文件?(我没有集群开发经验,一直都是纸上谈兵)
望指导.....

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧