課程簡介
在互聯(lián)網(wǎng)+的今天,人們在PC、手機、Pad 上安裝了各式各樣的軟件服務或APP,享受著互聯(lián)網(wǎng)技術帶來的高效和便捷。隨著這些產(chǎn)品的高速發(fā)展,大家對高性能、穩(wěn)定性、安全性、擴展性等方面有了更高的要求,而誕生于20多年前的Java平臺,一直緊跟時代脈搏,兼收并蓄,持續(xù)優(yōu)化,在編程領域交出最滿意的答卷,最終成為現(xiàn)代互聯(lián)網(wǎng)服務端開發(fā)的王者。當然,一種語言再強大,也不能在任何時候都能達到我們理想的狀態(tài)。在實際工作中,我們會遇到非常多的性能問題,有些問題是需要在開發(fā)設計前通過規(guī)范避免的,有些問題是需要根據(jù)線上生產(chǎn)環(huán)境“邊查邊看邊調(diào)整”的。很多工程師在遇到這些問題時,會根據(jù)一些淺顯的表現(xiàn)來做很“粗暴”的處理,比如:OOM了就升配內(nèi)存,CPU飆高就升核,超時異常過多就延長超時時間。。。誠然,在緊急情況下,有些處理能馬上解決問題,但畢竟不是長久之計,甚至有時候會弄巧成拙。
目標收益
培訓對象
課程大綱
引子 | 介紹JVM內(nèi)存模型及GC問題、性能優(yōu)化 |
第一單元 JVM基礎 |
1. JVM組成及運行機制 2. Java內(nèi)存模型 2.1 內(nèi)存結構 2.2 內(nèi)存與線程 3. JVM參數(shù)概要 3.1 啟動參數(shù)格式 3.2 啟動參數(shù)設置 3.3 常見啟動參數(shù) 4. GC基礎分析 4.1 GC信息查看 4.2 GC問題排查 (案例:快速查看線上的GC問題) 4.3 常見GC算法淺析 |
第二單元 JVM內(nèi)存及調(diào)優(yōu) |
5. 堆內(nèi)存分析 5.1 堆內(nèi)存結構 5.2 堆內(nèi)存信息分析 5.3 OOM問題及內(nèi)存dump文件 5.4 GC日志文件深度分析 (案例:一次線上GC導致的系統(tǒng)卡頓問題排查過程/OOM dump信息分析) 6. 實戰(zhàn)啟動參數(shù)設置 6.1 GC日志配置 6.2 內(nèi)存配置 7. 線上問題診斷工具Arthas 7.1 線程問題診斷 (案例:快速找到最忙執(zhí)行線程/代碼) 7.2 耗時問題診斷 (案例:快速排查線上調(diào)用鏈耗時問題) 7.3 如何線上診斷代碼級故障 |
引子 介紹JVM內(nèi)存模型及GC問題、性能優(yōu)化 |
第一單元 JVM基礎 1. JVM組成及運行機制 2. Java內(nèi)存模型 2.1 內(nèi)存結構 2.2 內(nèi)存與線程 3. JVM參數(shù)概要 3.1 啟動參數(shù)格式 3.2 啟動參數(shù)設置 3.3 常見啟動參數(shù) 4. GC基礎分析 4.1 GC信息查看 4.2 GC問題排查 (案例:快速查看線上的GC問題) 4.3 常見GC算法淺析 |
第二單元 JVM內(nèi)存及調(diào)優(yōu) 5. 堆內(nèi)存分析 5.1 堆內(nèi)存結構 5.2 堆內(nèi)存信息分析 5.3 OOM問題及內(nèi)存dump文件 5.4 GC日志文件深度分析 (案例:一次線上GC導致的系統(tǒng)卡頓問題排查過程/OOM dump信息分析) 6. 實戰(zhàn)啟動參數(shù)設置 6.1 GC日志配置 6.2 內(nèi)存配置 7. 線上問題診斷工具Arthas 7.1 線程問題診斷 (案例:快速找到最忙執(zhí)行線程/代碼) 7.2 耗時問題診斷 (案例:快速排查線上調(diào)用鏈耗時問題) 7.3 如何線上診斷代碼級故障 |