做外貿(mào)翻譯用哪個(gè)網(wǎng)站網(wǎng)站建設(shè)公司業(yè)務(wù)
flink內(nèi)存管理
JVM 存在的幾個(gè)問題:
- Java 對(duì)象存儲(chǔ)密度低。一個(gè)只包含 boolean 屬性的對(duì)象占用了16個(gè)字節(jié)內(nèi)存:對(duì)象頭占了8個(gè),boolean 屬性占了1個(gè),對(duì)齊填充占了7個(gè)。而實(shí)際上只需要一個(gè)bit(1/8字節(jié))就夠了。
- Full GC 會(huì)極大地影響性能,尤其是為了處理更大數(shù)據(jù)而開了很大內(nèi)存空間的JVM來說,GC 會(huì)達(dá)到秒級(jí)甚至分鐘級(jí)。
- OOM 問題影響穩(wěn)定性。OutOfMemoryError是分布式計(jì)算框架經(jīng)常會(huì)遇到的問題,當(dāng)JVM中所有對(duì)象大小超過分配給JVM的內(nèi)存大小時(shí),就會(huì)發(fā)生OutOfMemoryError錯(cuò)誤,導(dǎo)致JVM崩潰,分布式框架的健壯性和性能都會(huì)受到影響。
flink內(nèi)存管理針對(duì)實(shí)時(shí)場(chǎng)景做了哪些優(yōu)化
積極的堆外內(nèi)存管理,因?yàn)榱魈幚碜⒅氐脱舆t,為每一條要處理的數(shù)據(jù)在堆內(nèi)存上創(chuàng)建對(duì)象會(huì)觸發(fā)頻繁的gc,導(dǎo)致處理停滯
- flink在堆外開辟network buffer(專門存放緩沖數(shù)據(jù))
- 開辟managed memory,用于排序,緩存中間值
怎么定位背壓
flink拓?fù)鋱D,F(xiàn)link的下游算子無法及時(shí)處理上游的消息時(shí)會(huì)出現(xiàn)反壓的提示。反壓提示一般有OK,LOW,HIGH三種狀態(tài)。某個(gè)算子的BackPressure指標(biāo)如果是HIGH,說明后面的算子存在性能問題。在任務(wù)性能調(diào)優(yōu)時(shí),對(duì)于串在一