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

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

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

    paulwong

    用ab命令來對 JVM進行內存分析的一個例子

    1、JVM的啟動參數
    我是這樣設置的:
      java -Xmx1024m -Xms1024m -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxPermSize=16m

    啟動tomcat之后,使用 jmap -heap `pgrep -u root java`,得到如下信息:

    Heap Configuration:
       MinHeapFreeRatio = 40
       MaxHeapFreeRatio = 70
       MaxHeapSize      = 1073741824 (1024.0MB)
       NewSize          = 1048576 (1.0MB)
       MaxNewSize       = 4294901760 (4095.9375MB)
       OldSize          = 4194304 (4.0MB)
       NewRatio         = 4
       SurvivorRatio    = 4
       PermSize         = 12582912 (12.0MB)
       MaxPermSize      = 16777216 (16.0MB)
    Heap Usage:
    New Generation (Eden + 1 Survivor Space):
       capacity = 178913280 (170.625MB)
       used     = 51533904 (49.14656066894531MB)
       free     = 127379376 (121.47843933105469MB)
       28.80384508070055% used
    Eden Space:
       capacity = 143130624 (136.5MB)
       used     = 51533904 (49.14656066894531MB)
       free     = 91596720 (87.35343933105469MB)
       36.00480635087569% used
    From Space:
       capacity = 35782656 (34.125MB)
       used     = 0 (0.0MB)
       free     = 35782656 (34.125MB)
       0.0% used
    To Space:
       capacity = 35782656 (34.125MB)
       used     = 0 (0.0MB)
       free     = 35782656 (34.125MB)
       0.0% used
    tenured generation:
       capacity = 859045888 (819.25MB)
       used     = 1952984 (1.8625106811523438MB)
       free     = 857092904 (817.3874893188477MB)
       0.22734338494383202% used
    Perm Generation:
       capacity = 12582912 (12.0MB)
       used     = 6656024 (6.347679138183594MB)
       free     = 5926888 (5.652320861816406MB)
       52.897326151529946% used

    ------------------------------------------華麗的分割線---------------------------------------

    按照這個參數來計算的話(可以參考這里:http://blog.sina.com.cn/s/blog_68158ebf0100wp83.html
    -Xmx1024m -Xms1024m -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxPermSize=16m
    -Xmx1024m 最大堆內存為 1024M
    -Xms1024m 初始堆內存為 1024M
    -XX:NewRatio=4 

    則 年輕代:年老代=1:4  1024M/5=204.8M
    故 年輕代=204.8M  年老代=819.2M
    -XX:SurvivorRatio=4
    則年輕代中 2Survivor:1Eden=2:4 204.8M/6=34.13333333333333M
    故 Eden=136.5333333333333M  1Suivivor=34.13333333333333M
    用 jmap -heap <pid>
    查看的結果 與我們計算的結果一致

    -----------------------------------華麗的分割線-------------------------------------------

    3、編寫測試頁面
        在網站根目錄里新建頁面perf.jsp,內容如下:
    <%intsize = (int)(1024 * 1024 * m);byte[] buffer = new byte[size];Thread.sleep(s);%>
    注:m值用來設置每次申請內存的大小,s 表示睡眠多少ms

    4、使用jstat來監控內存變化
    ·jstat命令的用法和介紹,參考這里http://blog.sina.com.cn/s/blog_68158ebf0100woyh.html
    這里使用 jstat -gcutil `pgrep -u root java` 1500 10 
       再解釋一下,這里有三個參數:
    ·pgrep -u root java --> 得到java的進程ID號
    ·1500 --> 表示每隔1500ms取一次數據
    ·10 --> 表示一共取10次數據

    5、用ab來進行壓測
    壓測的命令:[root@CentOS ~]# ab -c150 -n50000 "http://localhost/perf.jsp?m=1&s=10"
    注:這里使用150個線程并發訪問,一共訪問50000次。
        另外我做了apache與tomcat的整合,過程見:http://blog.sina.com.cn/s/blog_68158ebf0100wnvx.html
    默認情況下你可以使用 http://localhost:8080/perf.jsp?m=1&s=10 來訪問。

    --------------------------------------------華麗的分割線----------------------------------------

    下面開始進行實驗:
    ·先啟動Java內存的監聽:
        [root@CentOS ~]# jstat -gcutil 8570 1500 10 
    ·在開啟一個終端,開始壓測:
        [root@CentOS ~]# ab -c150 -n50000 "http://localhost/perf.jsp?m=1&s=10"
    兩個命令結束之后的結果如下:

    jstat:
    [root@CentOS ~]# jstat -gcutil 8570 1500 10 
      S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   
      0.06   0.00  53.15   2.03  67.18     52    0.830     1    0.218    1.048
      0.00   0.04  18.46   2.03  67.18     55    0.833     1    0.218    1.052
      0.03   0.00  28.94   2.03  67.18     56    0.835     1    0.218    1.053
      0.00   0.04  34.02   2.03  67.18     57    0.836     1    0.218    1.054
      0.04   0.00  34.13   2.03  67.18     58    0.837     1    0.218    1.055
      0.00   0.04  38.62   2.03  67.18     59    0.838     1    0.218    1.056
      0.04   0.00   8.39   2.03  67.18     60    0.839     1    0.218    1.058
      0.04   0.00   8.39   2.03  67.18     60    0.839     1    0.218    1.058
      0.04   0.00   8.39   2.03  67.18     60    0.839     1    0.218    1.058
      0.04   0.00   8.39   2.03  67.18     60    0.839     1    0.218    1.058

    結果簡單解析:
        可以看到JVM里S0和S1始終有一個是空的,Eden區達到一定比例之后就會產生Minor GC,由于我這里的Old Generation 區設置的比較大,所以沒有產生Full GC。

    ab
    [root@CentOS ~]# ab -c150 -n50000 "http://localhost/perf.jsp?m=1&s=10"
    This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
    Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
    Copyright 2006 The Apache Software Foundation, http://www.apache.org/
    Benchmarking localhost (be patient)
    Completed 5000 requests
    Completed 10000 requests
    Completed 15000 requests
    Completed 20000 requests
    Completed 25000 requests
    Completed 30000 requests
    Completed 35000 requests
    Completed 40000 requests
    Completed 45000 requests
    Finished 50000 requests
    Server Software:        Apache/2.2.3
    Server Hostname:        localhost
    Server Port:            80
    Document Path:          /perf.jsp?m=1&s=10
    Document Length:        979 bytes
    Concurrency Level:      150
    Time taken for tests:   13.467648 seconds
    Complete requests:      50000
    Failed requests:        0
    Write errors:           0
    Non-2xx responses:      50005
    Total transferred:      57605760 bytes
    HTML transferred:       48954895 bytes
    Requests per second:    3712.60 [#/sec] (mean)
    Time per request:       40.403 [ms] (mean)   #平均請求時間
    Time per request:       0.269 [ms] (mean, across all concurrent requests) 
    Transfer rate:          4177.05 [Kbytes/sec] received
    Connection Times (ms)
                  min  mean[+/-sd] median   max
    Connect:        0    1  46.5      0    3701
    Processing:    10   38  70.3     36    6885
    Waiting:        3   35  70.3     33    6883
    Total:         10   39  84.4     37    6901
    Percentage of the requests served within a certain time (ms)
      50%     37
      66%     38
      75%     39
      80%     39
      90%     41
      95%     43
      98%     50
      99%     58
     100%   6901 (longest request)

    詳細的分析見:http://blog.sina.com.cn/s/blog_68158ebf0100woyp.html

    posted on 2012-09-26 22:46 paulwong 閱讀(558) 評論(0)  編輯  收藏 所屬分類: 性能優化

    主站蜘蛛池模板: 亚洲黄色三级视频| 无人影院手机版在线观看免费| 涩涩色中文综合亚洲| 亚洲精品无码av人在线观看 | 日韩一区二区在线免费观看| 人妻丰满熟妇无码区免费| 一本大道一卡二大卡三卡免费 | 在线观看成人免费| 亚洲大片免费观看| 野花香高清视频在线观看免费 | 久久久久亚洲AV无码专区网站| 黄网址在线永久免费观看| 免费精品国产日韩热久久| 88xx成人永久免费观看| 免费成人在线电影| a级毛片黄免费a级毛片| 波霸在线精品视频免费观看| 日韩免费高清一级毛片| 美女羞羞视频免费网站| 亚洲成av人片天堂网无码】| 亚洲综合色婷婷在线观看| 亚洲av成人综合网| 亚洲最大的黄色网| 性xxxx黑人与亚洲| 亚洲午夜精品在线| 亚洲av日韩av综合| 激情综合亚洲色婷婷五月APP| 亚洲春黄在线观看| 亚洲最新中文字幕| 亚洲人精品亚洲人成在线| 亚洲xxxxxx| 亚洲欧美日韩一区二区三区在线| 亚洲中文字幕无码mv| 亚洲精品天堂成人片AV在线播放 | 一二三四影视在线看片免费 | 亚洲午夜电影一区二区三区| 亚洲日韩乱码中文无码蜜桃臀| 亚洲最大黄色网站| 亚洲日本乱码卡2卡3卡新区| 亚洲成aⅴ人片久青草影院按摩| 国产精品亚洲精品日韩电影|