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

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

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

    Dict.CN 在線詞典, 英語學(xué)習(xí), 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統(tǒng)計

    留言簿(23)

    積分與排名

    優(yōu)秀學(xué)習(xí)網(wǎng)站

    友情連接

    閱讀排行榜

    評論排行榜

    Resin 3 pro高并發(fā),響應(yīng)性與穩(wěn)定性方案(轉(zhuǎn))

    以下方案我是在Intel xeon(至強(qiáng)) 3.2G 2個雙核物理CPU+2G內(nèi)存(Ecc)上進(jìn)行:

    resin版本為resin-pro-3.0.21,JVM為Jrockit 1.5_06, resin java 啟動參數(shù) -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. 在應(yīng)用的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,確認(rèn)應(yīng)用正常啟動。

    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中執(zhí)行TestURL

    在執(zhí)行過程中,一邊刷新http://192.168.1.200/resin-status,查看resin狀態(tài),在http://*:80 中的 Active Threads 和 Total,會一直增長,當(dāng)長到512的時候不再增長,這時再刷新resin-status頁面時,會發(fā)現(xiàn)打開很慢。原因是服務(wù)器已經(jīng)達(dá)到最大連接數(shù),在等待前面連接的釋放而不能接受新的連接。

    于是下載Resin 3.0.21源碼,搜索 512,發(fā)現(xiàn)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所有源碼后,發(fā)現(xiàn)沒有對這個值進(jìn)行設(shè)置
                private int _minSpareConnection = 16;
                 
                private int _keepaliveMax = -1;
                 
                private int _minSpareListen = 5;
                private int _maxSpareListen = 10;
                

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

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

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

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

    再經(jīng)多次測試,結(jié)果一致,內(nèi)存回收正常,表明當(dāng)前 resin 穩(wěn)定性和響應(yīng)性可靠。

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

    主站蜘蛛池模板: 免费99精品国产自在现线| 亚洲精品动漫在线| 成人奭片免费观看| 免费视频精品一区二区三区| 国产精品亚洲片在线花蝴蝶| 亚洲国产成人无码av在线播放| 亚洲色无码一区二区三区| 亚洲国产成人资源在线软件| 亚洲免费日韩无码系列| 精品免费国产一区二区三区| 91免费国产自产地址入| 亚洲国产精品网站在线播放| 精品久久香蕉国产线看观看亚洲| 最近免费中文字幕大全免费 | 中文字幕成人免费视频| 国产一二三四区乱码免费| 日本免费精品一区二区三区| 亚洲av无码无线在线观看| 亚洲综合无码无在线观看| 国产亚洲情侣一区二区无| 国产jizzjizz免费看jizz| 白白国产永久免费视频| 啦啦啦在线免费视频| 成人最新午夜免费视频| 岛国大片免费在线观看| 无码人妻久久一区二区三区免费丨| 免费的黄色网页在线免费观看| 亚洲国产av玩弄放荡人妇| 亚洲色成人网站WWW永久四虎 | 99re在线这里只有精品免费| 免费网站观看WWW在线观看| jiz zz在亚洲| 亚洲精品无码专区在线| 亚洲第一第二第三第四第五第六| 亚洲人成色777777老人头| 亚洲国产AV无码一区二区三区 | 免费看少妇作爱视频| 女人18毛片特级一级免费视频| 免费看a级黄色片| 亚洲A∨精品一区二区三区| 亚洲国产精品成人|