工程師
互聯(lián)網(wǎng)
其他
工程師
Java
推薦課程
average > 0 ? $model->average . '分' : '10.0分' ?>

Java體系下的性能監(jiān)控與調(diào)優(yōu)

阿里云MVP 技術(shù)顧問 CTO

阿里云MVP,華為HCDE成員|技術(shù)作者
業(yè)界資深技術(shù)專家,從事開發(fā)和架構(gòu)工作近10年,擅長Java/Python體系下各類技術(shù)棧、擁有微服務(wù)、分布式高并發(fā)、AI&機器學習、大數(shù)據(jù)亞臺系統(tǒng)架構(gòu)經(jīng)驗,曾相任多家創(chuàng)業(yè)公司CTO、合伙人,負責研發(fā)線所有產(chǎn)品技術(shù)架構(gòu)、團隊管理等工作,開發(fā)了多款金融、風控大數(shù)據(jù)、SaaS、區(qū)塊鏈等產(chǎn)品。
曾出版技術(shù)書籍《Akka實戰(zhàn): 快速構(gòu)建高可用分布式應(yīng)用》,受到多位業(yè)界知名技術(shù)專家聯(lián)名推薦作序,該書是國內(nèi)首本原創(chuàng)相關(guān)書籍。曾出版譯著《軟件開發(fā)實踐項目驅(qū)動式的Java開發(fā)指南》
曾受邀為HP、通用、中郵、亞安、建行、華泰等中外企業(yè)進行技術(shù)咨詢、培訓等。

阿里云MVP,華為HCDE成員|技術(shù)作者 業(yè)界資深技術(shù)專家,從事開發(fā)和架構(gòu)工作近10年,擅長Java/Python體系下各類技術(shù)棧、擁有微服務(wù)、分布式高并發(fā)、AI&機器學習、大數(shù)據(jù)亞臺系統(tǒng)架構(gòu)經(jīng)驗,曾相任多家創(chuàng)業(yè)公司CTO、合伙人,負責研發(fā)線所有產(chǎn)品技術(shù)架構(gòu)、團隊管理等工作,開發(fā)了多款金融、風控大數(shù)據(jù)、SaaS、區(qū)塊鏈等產(chǎn)品。 曾出版技術(shù)書籍《Akka實戰(zhàn): 快速構(gòu)建高可用分布式應(yīng)用》,受到多位業(yè)界知名技術(shù)專家聯(lián)名推薦作序,該書是國內(nèi)首本原創(chuàng)相關(guān)書籍。曾出版譯著《軟件開發(fā)實踐項目驅(qū)動式的Java開發(fā)指南》 曾受邀為HP、通用、中郵、亞安、建行、華泰等中外企業(yè)進行技術(shù)咨詢、培訓等。

課程費用

5800.00 /人

課程時長

2

成為教練

課程簡介

在互聯(lián)網(wǎng)+的今天,人們在PC、手機、Pad 上安裝了各式各樣的軟件服務(wù)或APP,享受著互聯(lián)網(wǎng)技術(shù)帶來的高效和便捷。隨著這些產(chǎn)品的高速發(fā)展,大家對高性能、穩(wěn)定性、安全性、擴展性等方面有了更高的要求,而誕生于20多年前的Java平臺,一直緊跟時代脈搏,兼收并蓄,持續(xù)優(yōu)化,在編程領(lǐng)域交出最滿意的答卷,最終成為現(xiàn)代互聯(lián)網(wǎng)服務(wù)端開發(fā)的王者。當然,一種語言再強大,也不能在任何時候都能達到我們理想的狀態(tài)。在實際工作中,我們會遇到非常多的性能問題,有些問題是需要在開發(fā)設(shè)計前通過規(guī)范避免的,有些問題是需要根據(jù)線上生產(chǎn)環(huán)境“邊查邊看邊調(diào)整”的。很多工程師在遇到這些問題時,會根據(jù)一些淺顯的表現(xiàn)來做很“粗暴”的處理,比如:OOM了就升配內(nèi)存,CPU飆高就升核,超時異常過多就延長超時時間。。。誠然,在緊急情況下,有些處理能馬上解決問題,但畢竟不是長久之計,甚至有時候會弄巧成拙。為了讓大家對性能調(diào)優(yōu)有更深的認識,本次課程我們會從JVM基礎(chǔ)開始講起,比如JVM內(nèi)存模型、GC機制、堆內(nèi)存分析等,然后延展開來,通過線上常見問題來實戰(zhàn)化學習JVM的性能監(jiān)控及調(diào)優(yōu)策略。

目標收益

1、 對Java體系下整體性能與調(diào)優(yōu)有全面的認知
2、 熟練掌握JVM內(nèi)存模型以及GC調(diào)優(yōu)全過程(命令行、JVisualVM、Arthas等工具?)
3、 熟練掌握服務(wù)器端調(diào)優(yōu)策略與最佳實踐(內(nèi)存/IO/CPU等)
4、 熟練掌握代碼級性能提升關(guān)注點,以及性能基準測試方法

培訓對象

課程大綱

引子 介紹JVM內(nèi)存模型及GC問題、性能優(yōu)化、服務(wù)端的性能配置等
第一單元 JVM基礎(chǔ) 1.JVM組成及運行機制
2.Java內(nèi)存模型
2.1內(nèi)存結(jié)構(gòu)
2.2內(nèi)存與線程

3.JVM參數(shù)概要
3.1啟動參數(shù)格式
3.2啟動參數(shù)設(shè)置
3.3常見啟動參數(shù)

4.GC基礎(chǔ)分析
4.1GC信息查看
4.2GC問題排查
(案例1:快速查看線上的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.3OOM問題及內(nèi)存dump文件
5.4GC日志文件深度分析

案例2:一次線上GC導致的系統(tǒng)卡頓問題排查過程/OOM dump信息分析


6.Java線程狀態(tài)分析
6.1RUNNABLE狀態(tài)及分析
6.2BLOCKED狀態(tài)及分析
6.3WAITING(wait/notify、join)及分析
6.4使用jstack進行死鎖檢測

7.內(nèi)置可視化診斷工具JVisualVM
7.1功能概覽與基礎(chǔ)配置
7.2線程監(jiān)控與分析
7.3內(nèi)存監(jiān)控與分析
7.4CPU采樣分析

8.線上問題診斷工具Arthas?
8.1Arthas功能概覽
8.2使用Arthas查看系統(tǒng)全景運行時狀態(tài)
8.3Arthas常見命令工具
8.4線程問題診斷
(案例3:快速找到最忙執(zhí)行線程/代碼)
8.5耗時問題診斷
(案例4:快速排查線上調(diào)用鏈耗時問題)
如何線上診斷代碼級故障
第三單元 服務(wù)器性能調(diào)優(yōu)實戰(zhàn) 9.CPU與性能診斷
9.1平均負載與負載分析
9.2負載與CPU使用率
9.3CPU性能指標與工具介紹
案例5:使用vmstat、pidstat等工具進行系統(tǒng)高負載分析及上下文切換分析

10.內(nèi)存與性能診斷
10.1內(nèi)存基礎(chǔ)知識
10.22. 內(nèi)存常見指標/virt/res/buff/cache/Swap
10.3內(nèi)存性能指標與問題診斷一般流程
案例6:Java Native代碼導致的內(nèi)存泄漏問題排查
第四單元 編寫高性能代碼 11.高性能代碼技巧
11.1線程池選型與參數(shù)調(diào)優(yōu)
11.2ThreadLocal的資源釋放

12.基于JMH的性能測試
12.1JMH基本介紹
12.2JMH基本概念之Mode、Iteration、Warmup等
12.3使用JMH進行代碼級性能基準測試
引子
介紹JVM內(nèi)存模型及GC問題、性能優(yōu)化、服務(wù)端的性能配置等
第一單元 JVM基礎(chǔ)
1.JVM組成及運行機制
2.Java內(nèi)存模型
2.1內(nèi)存結(jié)構(gòu)
2.2內(nèi)存與線程

3.JVM參數(shù)概要
3.1啟動參數(shù)格式
3.2啟動參數(shù)設(shè)置
3.3常見啟動參數(shù)

4.GC基礎(chǔ)分析
4.1GC信息查看
4.2GC問題排查
(案例1:快速查看線上的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.3OOM問題及內(nèi)存dump文件
5.4GC日志文件深度分析

案例2:一次線上GC導致的系統(tǒng)卡頓問題排查過程/OOM dump信息分析


6.Java線程狀態(tài)分析
6.1RUNNABLE狀態(tài)及分析
6.2BLOCKED狀態(tài)及分析
6.3WAITING(wait/notify、join)及分析
6.4使用jstack進行死鎖檢測

7.內(nèi)置可視化診斷工具JVisualVM
7.1功能概覽與基礎(chǔ)配置
7.2線程監(jiān)控與分析
7.3內(nèi)存監(jiān)控與分析
7.4CPU采樣分析

8.線上問題診斷工具Arthas?
8.1Arthas功能概覽
8.2使用Arthas查看系統(tǒng)全景運行時狀態(tài)
8.3Arthas常見命令工具
8.4線程問題診斷
(案例3:快速找到最忙執(zhí)行線程/代碼)
8.5耗時問題診斷
(案例4:快速排查線上調(diào)用鏈耗時問題)
如何線上診斷代碼級故障
第三單元 服務(wù)器性能調(diào)優(yōu)實戰(zhàn)
9.CPU與性能診斷
9.1平均負載與負載分析
9.2負載與CPU使用率
9.3CPU性能指標與工具介紹
案例5:使用vmstat、pidstat等工具進行系統(tǒng)高負載分析及上下文切換分析

10.內(nèi)存與性能診斷
10.1內(nèi)存基礎(chǔ)知識
10.22. 內(nèi)存常見指標/virt/res/buff/cache/Swap
10.3內(nèi)存性能指標與問題診斷一般流程
案例6:Java Native代碼導致的內(nèi)存泄漏問題排查
第四單元 編寫高性能代碼
11.高性能代碼技巧
11.1線程池選型與參數(shù)調(diào)優(yōu)
11.2ThreadLocal的資源釋放

12.基于JMH的性能測試
12.1JMH基本介紹
12.2JMH基本概念之Mode、Iteration、Warmup等
12.3使用JMH進行代碼級性能基準測試

活動詳情

提交需求