案例分析 資料計算系統頻發fullgc

2022-07-03 01:30:13 字數 983 閱讀 2012

資料計算系統,日處理資料量在上億的規模; 簡單來說就是不停的從各種儲存中讀取大量資料在記憶體中進行計算處理,大致每分鐘執行500次資料提取和計算任務

總共5臺機器,那麼每台機器每分鐘大概負責100次資料提取和計算,每次提取 1萬條資料,平均計算耗時10秒

機器配置4c8g, 堆3g、年輕代1.5g、老年代1.5g

資料分析的每條資料比較大,20個字段,平均大小在1kb,那麼每次計算的1萬條資料為 10mb 大小

執行一次產生10m 物件,一分鐘執行100次, 10m * 100 大概1g,加上其他系統物件 eden區就被塞滿

一分鐘後,進行一次 minor gc,假設有80個計算任務執行完畢了,還有20個任務還沒執行完畢 此時存活物件有 200m,survivor 放不下,只能進入老年代

每次 minor gc 有200m的物件進入老年代,當進行第七次minor gc 後, 老年代就只剩100m了,然後當發生第8次 minor gc 的時候由於空間擔保 老年代不足以存放歷次 minor gc晉公升的物件大小,就要先進行 full gc; 也就是平均 8分鐘進行一次 full gc,頻率非常高

按照現有的 記憶體分配,最大的問題是 每次minor gc 的時候 survivor 區都不夠存放存活物件,導致全部晉公升到老年代;

調整記憶體比例 3g的堆記憶體,2g年輕代(eden 1.6g、 survivor 200mb * 2) + 1g老年代

這樣每次 minor gc 基本就很少進入老年代 大大降低了 full gc 的頻率

但是還要注意 「動態年齡判斷」,**後 survivor區域 同齡物件超過其一半,就要直接進入老年代 還可以通過 -xx:survivorratio=8 進行調整,降低eden區的比例

新加坡地鐵故障頻發 資料分析找出肇事元凶

感謝關注天善智慧型,走好資料之路 歡迎關注天善智慧型,我們是專注於商業智慧型bi,人工智慧ai,大資料分析與挖掘領域的垂直社群,學習,問答 求職一站式搞定!這是乙個令人著迷的訊息,表現出緊密的團隊合作精神,睿智的分析,以及乙個永不言敗的態度。這就是 smartnation應該如何使用資料來解決現實問...

資料中心供配電系統負荷計算例項分析

負荷計算目的和意義 低壓供配電系統的設計中負荷的統計計算是一項重要內容,負荷計算結果對供電容量報裝 選擇供配電裝置及安全經濟執行均起決定性的作用。負荷計算的目的是 1.計算變配電所內變壓器的負荷電流及視在功率,作為選擇變壓器容量的依據。2.計算流過各主要電氣裝置 斷路器 隔離開關 母線 熔斷器等 的...

案例分析 從誤刪除資料庫血案看資料庫系統的安全設計

日前,微博大佬坊間八卦爆料,順豐科技資料中心一位高階工程師誤刪除生產資料庫,導致某項業務無法使用並持續590分鐘。順豐根據公司相關規定,辭退工程師鄧某,並在順豐內網通報。事情經過 鄧某工程師是順豐科技 it 資料中心應用交付技術部網際網路產品運維組的 it 運維開發高階工程師。在接收到變更需求後,鄧...