jvm調優(四)吞吐量、tps、qps概念、jvm等概念


單位時間內處理請求的數量

2、平均響應時間

對請求作出響應的時間

3、tps(Transactions Per Second )

==每秒鐘事務數量 即:一個請求的來回 ==
客戶機在發送請求時開始計時,收到服務器響應後結束計時,以此來計算使用的時間和完成的事務個數,最終利用這些信息作出的評估分。

4、qps(Queries Per Second)

併發數/響應時間,是對一個特定的查詢服務器在規定時間內所處理流量多少的衡量標準

5 qps 與tps 區別

Qps 基本類似於 Tps,但是不同的是,對於一個頁面的一次訪問,形成一個 Tps;但一次頁面請求,可能產生多次對服務器的請求,服務器對這些請求,就可計入“Qps”之中。

例如,訪問一個 Index 頁面會請求服務器 3 次,包括一次 html,一次 css,一次 js,那麼訪問這一個頁面就會產生一個“T”,產生三個“Q”。

5.1 響應時間一tps關係

響應時間隨着負載上升先穩定後上升,並且越來越快
tps 隨着負載上升先到峯值,後穩定,然後下降

6、虛擬機棧

1、程序計數器 向當前線程正在執行的字節碼指令的地址
2、虛擬機棧 存儲當前線程運行方法所需要的數據、命令、返回地址
3、本地方法棧 帶 native的方法
4、方法區 類信息、常量、靜態變量、JIT(動態代理生成的類)
在這裏插入圖片描述

  • 每個線程有獨立的程序計數器、虛擬機棧
  • 入棧出棧的隊列叫做棧幀,每個線程獨享自己的棧幀
  • 棧幀對應的是方法
  • 一個棧幀對應一個方法
  • 一個方法運行不一定只壓一個棧幀(如方法中調方法)
  • 在這裏插入圖片描述
  • 局部變量表:存儲局部變量如果是int 4字節 32位 如果是double爲2個int(32位)大小分兩個存儲
  • 操作數棧
  • 動態鏈接
  • 出口
    在這裏插入圖片描述
    在這裏插入圖片描述

7、堆(heap)

在這裏插入圖片描述
在這裏插入圖片描述

8、jvm gc算法

8.1、引用計數法

每個對象在創建的時候,就給這個對象綁定一個計數器。每當有一個引用指向該對象時,計數器加一;每當有一個指向它的引用被刪除時,計數器減一。這樣,當沒有引用指向該對象時,該對象死亡,計數器爲0,這時就應該對這個對象進行垃圾回收操作。

8.2、可達性分析

判斷 對象有沒有在gc roots引用

9、調優參數網站

https://www.oracle.com/java/technologies/javase/vmoptions-jsp.html

10、堆的一些概念

堆是 JVM 所管理的最大的一塊內存空間,主要用於存放各種類的實例對象。

在 JVM中,堆被劃分成兩個不同的區域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被劃分爲三個區域:Eden、From Survivor、To Survivor。

堆的內存模型大致爲:
在這裏插入圖片描述

  1. 堆大小 = 新生代 + 老年代
    新生代 = eden space+ from survivor + to survivor
    其中,堆的大小可以通過參數 –Xms、-Xmx 來指定。
    默認的,新生代 ( Young ) 與老年代 ( Old ) 的比例的值爲 1:2 ( 該值可以通過參數 –XX:NewRatio 來指定 ),
    即:新生代 ( Young ) = 1/3 的堆空間大小。老年代 ( Old ) = 2/3 的堆空間大小。其中,新生代 ( Young ) 被細分爲 Eden 和 兩個 Survivor 區域,這兩個 Survivor 區域分別被命名爲 from 和
    to以示區分。
    默認的,Eden : from : to = 8 : 1 : 1 ( 可以通過參數 –XX:SurvivorRatio 來設定 ),
    即: Eden = 8/10 的新生代空間大小,from = to = 1/10 的新生代空間大小。
    JVM 每次只會使用 Eden 和其中的一塊 Survivor 區域來爲對象服務,所以無論什麼時候,總是有一塊 Survivor 區域是空閒着的。
    因此,新生代實際可用的內存空間爲 9/10 ( 即90% )的新生代空間。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章