1. 程式人生 > >效能測試-Java應用伺服器分析

效能測試-Java應用伺服器分析

一:應用伺服器介紹

1.主流伺服器:tomcat、Apache、Jboss、Weblogic、IIS、Nginx 等

2.伺服器拓撲圖

browser                     web services                 資料庫

client        

二:分析依據

1.資料依據:作業系統效能計數器、LR報錯日誌、執行日誌、異常堆疊、GC日誌、執行緒快照(threaddump/javacore檔案)、堆疊儲存快照(headpump/horof檔案)等

2.工具:JDK視覺化工具、jdk命令列

三:視覺化工具

1.JConsole工具


2.jvisualvm.exe工具


           說明:堆記憶體走勢是鋸齒狀,說明記憶體有吃進有回收,如果是一直上升的說明沒有回收,需要檢視

                     執行緒是狀態,等待狀態的執行緒需要關注,正常的情況下要一直執行

關於新生代、老年代的概念

我是一個普通的Java物件,我出生在Eden區,在Eden區我還看到和我長的很像的小兄弟,我們在Eden區中玩了挺長時間。有一天Eden區中的人實在是太多了,我就被迫去了Survivor區的“From”區,自從去了Survivor區,我就開始漂了,有時候在Survivor的“From”區,有時候在Survivor的“To”區,居無定所。直到我18歲的時候,爸爸說我成人了,該去社會上闖闖了。於是我就去了年老代那邊,年老代裡,人很多,並且年齡都挺大的,我在這裡也認識了很多人。在年老代裡,我生活了20年(每次GC加一歲),然後被回收。



四:JDK命令列工具

1.JPS:虛擬機器程序狀態工具

jps[option][hostid]

-q 只輸出LVMID,省略主類名稱;

-m 輸出虛擬機器程序啟動時傳遞給主類main()函式的引數

-l輸出主類的全名,如果程序致死那個的時jar包,則輸出jar路勁

-v輸出虛擬機器程序啟動時的jvm引數


2.Jstat虛擬機器統計資訊監測工具

如:檢視GC回收情況,每5秒鐘的情況,soc倖存區S0總位元組,S1C倖存區S1總位元組,S0U倖存區使用的,S1U倖存區使用的,EC新生代總大小,EU新生代使用的,OC老年代總大小,OU老年代使用的位元組


監測類裝在、解除安裝數量、總空間以及類裝載所消耗的時間


3.Jinfo 實時檢視、調整虛擬機器各項引數

4.jmap命令 jmap [opyion]vmid

5.jstack是java堆疊跟蹤工具,用於生成虛擬機器當前時刻的執行緒快照jstack  [opyion]vmid