<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 閱讀(564) 評論(0)  編輯  收藏 所屬分類: 性能優化

    主站蜘蛛池模板: 亚洲国产精品自在在线观看| 国产gav成人免费播放视频| 亚洲一级特黄大片无码毛片| 久草免费在线观看视频| 亚洲级αV无码毛片久久精品| 一级特级女人18毛片免费视频| 婷婷亚洲天堂影院| 亚洲综合精品香蕉久久网97| 99re6在线精品视频免费播放 | 国产免费女女脚奴视频网| 亚洲成在人线av| 免费成人在线电影| 亚洲国产女人aaa毛片在线 | 久久亚洲AV无码精品色午夜麻| 成人A毛片免费观看网站| 久久久青草青青亚洲国产免观| 午夜精品射精入后重之免费观看 | 精品剧情v国产在免费线观看| 亚洲AV无码一区二区三区久久精品| 免费看片A级毛片免费看| 曰批免费视频播放在线看片二| 亚洲日韩人妻第一页| 免费a级毛片无码a∨免费软件| 亚洲男人都懂得羞羞网站| 2021国内精品久久久久精免费| 亚洲国产精品线观看不卡| 韩国欧洲一级毛片免费| 一级毛片完整版免费播放一区| 国产AV无码专区亚洲AV毛网站 | 欧洲 亚洲 国产图片综合| 免费国产真实迷j在线观看| 三年片免费观看大全国语| 亚洲在成人网在线看| 免费在线观看你懂的| 一级毛片aaaaaa免费看| 亚洲精品乱码久久久久久V| 国产AV无码专区亚洲AVJULIA| 蜜桃视频在线观看免费网址入口| 妇女自拍偷自拍亚洲精品| 亚洲人成网www| 国产一区视频在线免费观看|