JVM 调优实战--什么是调优及如何调优的思路
目錄
吞吐量及響應時間
什么是調優
調優,從規劃開始
優化環境
吞吐量及響應時間
①吞吐量:用戶代碼時間/(用戶代碼時間+垃圾回收時間)。吞吐量越大,說明干正經事的時間占比越高;
② 響應時間:STW(stop the world)越短,響應時間越好。
什么是調優
根據需求進行JVM規劃和預調優
優化運行JVM運行環境
解決JVM運行過程中出現的各種問題
所謂調優,首先要確定追求的是啥?是吞吐量優先還是響應時間優先?或者是在滿足一定的響應時間的前提下,要求達到一定的吞吐量?有的放矢才能做好調優這活!
如果是選擇吞吐量優先,一般選擇的是PS+PO這個組合
調優,從規劃開始
-
調優,從業務場景開始,沒有業務場景的調優都是耍流氓 壓測
-
無監控,不調優
-
步驟:
-
熟悉業務場景(沒有最好的垃圾回收器,只有最合適的垃圾回收器)
-
響應時間、停頓時間 [CMS G1 ZGC] (需要給用戶作響應)
-
吞吐量 = 用戶時間 /( 用戶時間 + GC時間) [PS]
-
選擇回收器組合
-
計算內存需求(經驗值 1.5G 16G)
-
設定年代大小、升級年齡
-
設定日志參數
-
-Xloggc:/opt/xxx/logs/xxx-xxx-gc-%t.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=20M -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCCause
-
或者每天產生一個日志文件
-
觀察日志情況
-
案例1:垂直電商,最高每日百萬訂單,處理訂單系統需要什么樣的服務器配置?
這個問題比較業余,因為很多不同的服務器配置都能支撐(1.5G 16G)
1小時360000集中時間段, 100個訂單/秒
經驗值,
專業一點兒問法:要求響應時間100ms
-
案例2:12306遭遇春節大規模搶票應該如何支撐?
12306應該是中國并發量最大的秒殺網站:
號稱并發量100W最高
CDN -> LVS -> NGINX -> 業務系統 -> 每臺機器1W并發 100臺機器
普通電商訂單 -> 下單 ->訂單系統(IO)減庫存 ->等待用戶付款
12306的一種可能的模型: 下單 -> 減庫存 和 訂單(redis kafka) 同時異步進行 ->等付款
減庫存最后還會把壓力壓到一臺服務器
可以做分布式本地庫存 + 單獨服務器做庫存均衡
-
怎么得到一個事務會消耗多少內存?
-
弄臺機器,看能承受多少TPS?是不是達到目標?擴容或調優,讓它達到
-
用壓測來確定
優化環境
有一個50萬PV的資料類網站(從磁盤提取文檔到內存)原服務器32位,1.5G 的堆,用戶反饋網站比較緩慢,因此公司決定升級,新的服務器為64位,16G 的堆內存,結果用戶反饋卡頓十分嚴重,反而比以前效率更低了 為什么? 如何優化?
系統CPU經常100%,如何調優?
總結
以上是生活随笔為你收集整理的JVM 调优实战--什么是调优及如何调优的思路的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JVM 调优实战--常用命令参数及PS收
- 下一篇: JVM 调优实战--一个案例理解常用工具