2.概述
Flink的記憶體管理器管理着用于排序、散列和緩存所需的記憶體。記憶體以相等大小的(Segments)表示,稱為記憶體頁。操作器通過請求多個記憶體頁來配置設定記憶體。在Flink中,記憶體又分為堆記憶體和非堆記憶體。至于是去申請什麼類型的記憶體,這裡有相關的參數去配置。
記憶體管理器可以預先配置設定所有記憶體,或者按需配置設定記憶體。在前者中,記憶體将從開始就被占用和保留,這意味着在請求記憶體時不能出現
OutOfMemoryError
,釋放的記憶體也将傳回到記憶體管理器的池中。按需配置設定是指記憶體管理器隻跟蹤目前配置設定了多少記憶體段(僅記賬)。釋放記憶體頁不會将其添加到池中,而是讓垃圾收集器重新聲明它。
3.MemoryPool的定義
Flink的記憶體分為堆記憶體和非堆記憶體。他們共同繼承一個MemoryPool的抽象類。是以首先讓我們先看下MemoryPool的定義。
/**
* 記憶體池抽象類
*/
abstract static class