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