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