JSP的Request session的有效時間應合理設置

          之前寫了個簡單的jsp做壓力測試,沒想到出現的一個問題是當壓力比較大的情況,運行比較久的話會出現一個現象,就是jvm的內存幾乎被耗盡,用jprofiler查看會發(fā)現是有一個ConcurrentHashMap對象的內存一直在增長,而且沒有釋放的跡象,隨后進入Debug模式,跟蹤查找都有誰new了ConcurrentHashMap,因為測試場景中是個非常簡單的jsp頁面,發(fā)現只有jsp的Request session會創(chuàng)建這個ConcurrentHashMap,很久沒寫jsp了,猜測是request session的默認超時時間太長,所以導致高壓力下(200并發(fā),總共連續(xù)訪問50萬次,jvm內存1G)會出現內存一直沒有回收的問題,后來打印了一下request session的默認超時(AS是jboss 4.2.2),是半小時,如果這樣的話確實是會有造成上面內存一直被占用的現象。
          這個jsp是這樣的,非常簡單:
          <%@ page contentType="text/html;charset=GBK" %>
          Just Test.
          造成這個問題的具體原因需要結合session的機制來講了,講session機制的文章相當多,感興趣的話可以參見以下兩篇文章:
          http://www.builder.com.cn/2007/1123/650439.shtml
          http://bbs.chinaunix.net/viewthread.php?tid=1178466

          這個問題怎么說呢,只能說session用的時候要非常注意吧,畢竟是消耗內存資源的,而且通常session都不會去配置成即時invalidate,都是有一定的超時時間的,在這樣的情況下,如果在超時時間范圍內出現高訪問量的話,是很有可能會造成問題的,因此超時時間的合理設置非常重要。

          ps: 好久沒玩過jsp和session了,確實沒太注意這種狀況,對于熟悉jsp和session機制的人來說也許這是常識
          了,^_^,見諒見諒。
          如果頁面上不需要session的話,可以這么做:
          <%@ page session="false" %>

          posted on 2008-07-03 16:24 BlueDavy 閱讀(8002) 評論(13)  編輯  收藏 所屬分類: Internet

          評論

          # re: JSP的Request session的有效時間應合理設置 2008-07-03 16:50 隔葉黃鶯

          一般容器都是半個小時,基本我們都直接使用這個默認值,這個時間對于用戶還是一個比較合理的值。

          對于大量用戶并發(fā)的情況,盡量不要在 session 中放置大對象。  回復  更多評論   

          # re: JSP的Request session的有效時間應合理設置 2008-07-04 09:10 lizongbo

          對于確實需要session的場景,應該區(qū)分游客用戶和登錄用戶,將默認游客的session超時時間設置很短,比如5分鐘,而在用戶登錄成功之后,再將登錄用戶的session的超時時間設置為半小時或更長。 session.setMaxInactiveInterval(60*30);  回復  更多評論   

          # re: JSP的Request session的有效時間應合理設置 2008-07-04 22:22 千里冰封

          一般來說,盡量不要放過多的數據在session 里面,特別是當連接數很多的時候  回復  更多評論   

          # re: JSP的Request session的有效時間應合理設置 2008-07-07 09:51 西濱(Ivan Chen)

          我們碰到的客戶是一天只需要登錄一次,然后session就不要超時了。。。  回復  更多評論   

          # re: JSP的Request session的有效時間應合理設置 2008-07-08 11:04 Robin's Java World

          @西濱(Ivan Chen)
          給客戶講講REST,呵呵。。。  回復  更多評論   

          # re: JSP的Request session的有效時間應合理設置 2008-07-09 20:31 網站設計

          我們碰到的客戶是一天只需要登錄一次,然后session就不要超時了。。。   回復  更多評論   

          # re: JSP的Request session的有效時間應合理設置 2008-07-09 20:31 網站設計

          客戶是一天只需要登錄一次  回復  更多評論   

          # re: JSP的Request session的有效時間應合理設置 2008-07-09 20:32 網站制作

          按理嘎嘎餓大概  回復  更多評論   

          # re: JSP的Request session的有效時間應合理設置 2008-09-04 12:47 hpoyuan

          分析的非常好,受益匪淺,希望能一起提供的朋友加入群35389968一起討論技術。  回復  更多評論   

          # re: JSP的Request session的有效時間應合理設置[未登錄] 2008-11-03 17:45 哈哈

          哈哈 我們的架構是沒有session的。   回復  更多評論   

          # re: JSP的Request session的有效時間應合理設置 2008-11-25 10:43 卡通服裝

          我討厭session,害我老是不停登陸后臺.  回復  更多評論   

          # re: JSP的Request session的有效時間應合理設置 2009-04-15 13:24 包裝機

          繼續(xù)關注  回復  更多評論   

          # re: JSP的Request session的有效時間應合理設置[未登錄] 2009-06-12 09:44 gavin

          受教了。  回復  更多評論   

          公告

           









          feedsky
          抓蝦
          google reader
          鮮果

          導航

          <2008年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          統(tǒng)計

          隨筆分類

          隨筆檔案

          文章檔案

          Blogger's

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 汶上县| 驻马店市| 三门峡市| 吕梁市| 潜江市| 景谷| 同江市| 华坪县| 手游| 浑源县| 忻城县| 通榆县| 永州市| 温宿县| 舒兰市| 樟树市| 肇庆市| 福泉市| 赤水市| 甘德县| 雷山县| 十堰市| 巢湖市| 连云港市| 桐城市| 邢台市| 海晏县| 宜都市| 吉安县| 额敏县| 宜宾市| 龙江县| 祁连县| 铁岭县| 仙居县| 电白县| 昌江| 东阳市| 东阿县| 吴川市| 澎湖县|