<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Dict.CN 在線詞典, 英語學習, 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統計

    留言簿(23)

    積分與排名

    優秀學習網站

    友情連接

    閱讀排行榜

    評論排行榜

    Resin 3 pro高并發,響應性與穩定性方案(轉)

    以下方案我是在Intel xeon(至強) 3.2G 2個雙核物理CPU+2G內存(Ecc)上進行:

    resin版本為resin-pro-3.0.21,JVM為Jrockit 1.5_06, resin java 啟動參數 -Xms256m -Xmx512m

    1. 以下為resin.conf配置
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    <!--
                - Resin 3.0 configuration file.
                -->
                <resin xmlns="http://caucho.com/ns/resin"
                xmlns:resin="http://caucho.com/ns/resin/core">
                <!--
                - Logging configuration for the JDK logging API.
                -->
                <log name="" level="all" path="stdout:" timestamp="[%H:%M:%S.%s] "/>
                 
                <logger name="com.caucho.java" level="config"/>
                <logger name="com.caucho.loader" level="config"/>
                 
                <dependency-check-interval>600s</dependency-check-interval>
                 
                <javac compiler="internal" args=""/>
                 
                <thread-pool>
                <thread-max>10240</thread-max>
                <spare-thread-min>50</spare-thread-min>
                </thread-pool>
                 
                <min-free-memory>5M</min-free-memory>
                 
                <server>
                <class-loader>
                <tree-loader path="${resin.home}/lib"/>
                <tree-loader path="${server.root}/lib"/>
                </class-loader>
                 
                <keepalive-max>1024</keepalive-max>
                <keepalive-timeout>60s</keepalive-timeout>
                 
                <resin:if test="${resin.isProfessional()}">
                <select-manager enable="true"/>
                </resin:if>
                 
                <bind-ports-after-start/>
                 
                <http server-id="" host="*" port="80"/>
                 
                <cluster>
                <srun server-id="" host="127.0.0.1" port="6802"/>
                </cluster>
                 
                <resin:if test="${resin.isProfessional()}">
                <persistent-store type="cluster">
                <init path="session"/>
                </persistent-store>
                </resin:if>
                 
                <ignore-client-disconnect>true</ignore-client-disconnect>
                 
                <resin:if test="${isResinProfessional}">
                <cache path="cache" memory-size="20M"/>
                </resin:if>
                 
                <web-app-default>
                <class-loader>
                <tree-loader path="${server.root}/ext-webapp"/>
                </class-loader>
                 
                <cache-mapping url-pattern="/" expires="60s"/>
                <cache-mapping url-pattern="*.gif" expires="600s"/>
                <cache-mapping url-pattern="*.jpg" expires="600s"/>
                 
                <servlet servlet-name="directory"
                servlet-class="com.caucho.servlets.DirectoryServlet">
                <init enable="false"/>
                </servlet>
                 
                <allow-servlet-el/>
                 
                <session-config>
                <enable-url-rewriting>false</enable-url-rewriting>
                </session-config>
                 
                </web-app-default>
                 
                <host-default>
                <class-loader>
                <compiling-loader path="webapps/WEB-INF/classes"/>
                <library-loader path="webapps/WEB-INF/lib"/>
                </class-loader>
                 
                <!--access-log path="logs/access.log"
                format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'
                rollover-period="1W"/-->
                 
                <web-app-deploy path="webapps"/>
                 
                <ear-deploy path="deploy">
                <ear-default>
                <!-- Configure this for the ejb server
                -
                - <ejb-server>
                -   <config-directory>WEB-INF</config-directory>
                -   <data-source>jdbc/test</data-source>
                - </ejb-server>
                -->
                </ear-default>
                </ear-deploy>
                 
                <resource-deploy path="deploy"/>
                 
                <web-app-deploy path="deploy"/>
                </host-default>
                 
                <resin:import path="${resin.home}/conf/app-default.xml"/>
                 
                <host-deploy path="hosts">
                <host-default>
                <resin:import path="host.xml" optional="true"/>
                </host-default>
                </host-deploy>
                 
                <host id="" root-directory=".">
                <web-app id="/" document-directory="d:\website\chat">
                </web-app>
                </host>
                </server>
                </resin>
                 
                


    2. 在應用的web.xml中加入resin status查看servlet映射

    1
    2
    3
    4
          <servlet-mapping servlet-class='com.caucho.servlets.ResinStatusServlet'>
                <url-pattern>/resin-status</url-pattern>
                <init enable="read"/>
                </servlet-mapping>
                


    3. 啟動resin,確認應用正常啟動。

    4. 寫訪問測試程序

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    import java.io.InputStream;
                import java.net.URL;
                 
                 
                public class TestURL
                {
                public static void main(String[] args) throws Exception
                {
                long a = System.currentTimeMillis();
                System.out.println("Starting request url:");
                for(int i = 0; i < 10000; i++){
                URL url = new URL("http://192.168.1.200/main.jsp");
                 
                InputStream is = url.openStream();
                is.close();
                System.out.println("Starting request url:"+i);
                }
                System.out.println("request url end.take "+(System.currentTimeMillis()-a)+"ms");
                }
                 
                }
                


    5. 在Jbuilder中執行TestURL

    在執行過程中,一邊刷新http://192.168.1.200/resin-status,查看resin狀態,在http://*:80 中的 Active Threads 和 Total,會一直增長,當長到512的時候不再增長,這時再刷新resin-status頁面時,會發現打開很慢。原因是服務器已經達到最大連接數,在等待前面連接的釋放而不能接受新的連接。

    于是下載Resin 3.0.21源碼,搜索 512,發現com.caucho.server.port.Port類中有以下代碼:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      // default timeout
                private long _timeout = 65000L;
                 
                private int _connectionMax = 512;//就是這行,查找resin所有源碼后,發現沒有對這個值進行設置
                private int _minSpareConnection = 16;
                 
                private int _keepaliveMax = -1;
                 
                private int _minSpareListen = 5;
                private int _maxSpareListen = 10;
                

    將_connectionMax 改為 20480,然后重新編譯并替換resin.jar中的Port類。

    6. 重新啟動Resin,再次運行TestURL進行測試,這次你會發現Threads Active 和 Total 一直變大,且可以超過512一直增大,在測試程序運行過程中刷新頁面,頁面響應性能還是不錯的.

    另,測試過程中Resin會打印出 1-3次 強制執行GC的信息,屬于正常。

    7.待測試完畢,Threads Active 和 Total 馬上降為1.Idle為9,總內存為536.87Meg 空閑內存為480.33M

    再經多次測試,結果一致,內存回收正常,表明當前 resin 穩定性和響應性可靠。

    posted on 2008-03-03 08:47 都市淘沙者 閱讀(3402) 評論(0)  編輯  收藏 所屬分類: Tomcat/Weblogic/Resin/Jboss

    主站蜘蛛池模板: 亚洲va在线va天堂成人| 亚洲的天堂av无码| 美女羞羞喷液视频免费| 国产成在线观看免费视频| 亚洲欧洲第一a在线观看| 国产免费AV片在线观看 | 中字幕视频在线永久在线观看免费 | 四虎一区二区成人免费影院网址| 国产午夜无码视频免费网站| 色天使亚洲综合一区二区| 国产91久久久久久久免费| 免费在线人人电影网| 亚洲中文字幕无码久久精品1| 国产男女爽爽爽免费视频 | 99久久精品国产亚洲| 久草免费在线观看视频| 亚洲中文字幕无码爆乳| 四虎永久免费观看| 和老外3p爽粗大免费视频| 亚洲av综合色区| 4399好看日本在线电影免费| 中文字幕亚洲综合久久综合| 免费在线观看污网站| 成全视频高清免费观看电视剧| 色婷婷六月亚洲婷婷丁香| 永久免费AV无码国产网站| 亚洲av成人一区二区三区观看在线| 免费国产一级特黄久久| 国产成人免费ā片在线观看老同学| 亚洲一区免费观看| 午夜私人影院免费体验区| 亚洲免费视频一区二区三区| 亚洲精品在线观看视频| 好男人看视频免费2019中文 | 久久青草91免费观看| 亚洲综合成人婷婷五月网址| 亚洲av麻豆aⅴ无码电影| 免费黄网站在线看| 亚洲国产欧美国产综合一区| 亚洲日本va在线视频观看| 色窝窝免费一区二区三区 |