没问题哦,注意用好ASP.NET的Cache对象,没问题的,小CASE哦

解决方案 »

  1.   

    如何用好ASP.net的cache? 我现在做的是随即从数据库里面select出40道题到dataset,每个用户用一个Session保存这个Dataset和自己的答题情况,最后提交时,将分数写入数据库,但是用ACT做压力测试,情况好像不太理想
      

  2.   

    TO bingoxp() 你其实可以把这些考题做成一个DataSet放到你2G的内存里(考题不变吧?)然后前台随机选择,后台只对数据库执行写操作,岂不痛快?不过其他类似的方式多了
      

  3.   

    大家帮忙想想办法啊。 他们要让5000个人同时在一个时间内考试,我对每个用户设一个session 里面存有所有的题目,我是在一个页面根据计数器,来动态邦定题目和选项的。所以我想问5000个Session,2G的内存购吗?
      

  4.   

    帮忙啊。。这个项目很急,我是已经完成了,如果不能满足压力测试。就需要另外进行优化了。而且这个项目的可靠性要很高,万一失手就完了兄弟们帮忙啊。谁有类似的经验分享一下吧。还有如何使用asp,net的cache,忘达人指点一二
      

  5.   

    你所担心的5000人都用这个dataset是没有必要的,自己亲自动手做一下就知道了。
    除非带宽有限制,但是应该没有太大的问题
      

  6.   

    我担心的是5000个Session会不会出现内存不够用的情况?
      

  7.   

    回复人: bingoxp() ( ) 信誉:91  2004-06-18 15:24:00  得分: 0  
     
     
       我担心的是5000个Session会不会出现内存不够用的情况?
      
     
    /////////////////////////////////////////////////////////////
    那就不要用Session保存DataSet好了,在数据库中建一张表保存随机取出的题号和对应机器的IP,提交的时候再对应的取回来就完了
      

  8.   

    用Cache, 来保存 如果内存不够的话, asp.net可以把它放到硬盘上的
      

  9.   

    为什么一定要用session存储所有题目呢?我觉得完全可以不用session,在绑定的时候,把所有题目的答案用一个分隔符连成字符串,作为一个隐藏label的值,或者作为一个session变量,在提交的时候,提交的内容包含题目的序号和对应的答案。这时候把答案所组成的字符串分割成字符数组,再依个与提交的答案进行比较,不就可以了吗?
      

  10.   

    不用session如何呢,,如果试题只是在一个页面中操作,没有必要保存session
      

  11.   

    每个用户当然会有session,否则如何区分用户?
    那你可以把session保存到数据库啦
      

  12.   

    用XML,将问卷已TXT文件的形式发送到客户端
      

  13.   

    session的数据可以保存的SQL Server的 不过没有试过
      

  14.   

    Session的数据如何保存到数据库? 我是想一次把一个用户的所有的40道题目都取出来,省的每题都要对数据库进行访问。而且这样做有一个好处就是可以保存用户的答题状态,我在dataset里增加了一列为用户答案这一列,每个页面一道题,点击next的按钮后,从Dataset中取出下一道题,back的时候回到上一道,并且可以记忆住用户上一题做的选择。如果不用Session保存dataset那么每一题都要访问数据库。最后提交的时候只要对比dataset中answer和UserAnswer两列就可以得出用户的分数,这样做对数据库访问基本上最小。
      

  15.   

    我还担心的一个问题是2M的带宽不够用 ,2Mbps = 200KBytes/s 这样的速度,假设有200个用户并发操作的话,每个用户相当于只有1KB/s的带宽,会不会造成网络佣塞呢?压力测试在一台性能较差的server上是当2000个用户同时在线,每秒处理350个左右的request。而此时测出的带宽需要20Mbps左右,明显带宽是一个问题
      

  16.   

    2M=2000K
    每秒處理350個左右的request,需要多大帶寬要視回應內容而定不過考試有個特殊性,這5000個人應該都會在最後的3-5分鍾內交卷,
    所以峰值壓力比較大5000(人)/3(分鍾)*60=27.7;相當於每秒鍾只有30個左右的提交請求,應該沒有問題.
    但是建議在提交前分散一下數據壓力;做個JS分散一下用戶提交時間
    都延時0-200秒提交便好了,這樣的集中考試用戶稍等0-3分鍾是可以接受的
      

  17.   

    fdyyr()讲的方法+一次读取全部试题+即时提交每到题的答案!
      

  18.   

    to blackant2(乔峰):
    bingoxp说得不错的,带宽是2Mbps,也就是2000kbps/8,这个还是理想状态下的,换算成200k是考虑到了数据包封装等因素不可能达到理想值的。
    “fdyyr()讲的方法+一次读取全部试题+即时提交每到题的答案!”方法不错,就是不知道这样数据库连接的压力会很大的。在这个情况里,数据库访问建立连接是瓶颈,数据量不大的,传递数据应该很快。
      

  19.   

    这样的主机很牛了 ,内存都太大了!你不要把试题都存到Session里面,Session里面只要存用户的信息当你把某一用户的试题产生时 就存到一个中间表里面40个题目可以分页 比如分4页,每页10题,然后用户转到下一页 或者上一页的时候,就把该页的答案存到数据库中这样当用户做完全部题目,只需要提交一点点数据而大部分的答案都在原先的过程中存到中间表里面了比如,我们有个考生A,开始考试首先从数据里面读出 试题 1-40, 我们将考生ID 与试题 ID 都存到数据库表 MiddleTable里面 答案字段为空然后返回第一页(1-10号试题)的试题给考生当考生选择下一页的时候,就将考生的答案存到MiddleTable里面,也就是写入对应的答案字段这样就解决了所有的问题 服务器内存只要512MB都很够了
      

  20.   

    点数不够可以再加,我只是想请教一下对asp.net的performance的Tunning问题,毕竟我们平时做项目考虑的都是实现功能,很少考虑性能方面的需求。但是这次我也是第一次碰到需要考虑性能的问题,所以提出来大家互相探讨一下,互相学习,互相进步,才索硬道理。
      

  21.   

    现在不能管什么方法了,老板说了,只要能保证5000个人同时考试,怎么做都可以,甚至题目都不用随即生成,就用静态的,只要能保证系统稳定,能正常运行,毕竟这个case公司投了很多钱,而且这个考试系统就用一次,5000个人进行40分钟左右的考试,所以保证可靠性是最关键的。
      

  22.   

    怎么不考虑一下用多台主机,那样的主机足够买多几台pc server了