一種解決大數據處理系統中內存資源激烈競爭的系統的制作方法
【專利摘要】本發明公開了一種解決大數據處理系統中內存資源激烈競爭的系統,內存信息反饋模塊用于對運行中的線程任務進行內存使用情況的監測,并將收集的內存信息轉化后反饋給信息采樣與分析模塊;信息采樣與分析模塊用于動態調控各個工作節點信息的采樣次數,并且達到指定的采樣次數后對數據進行分析,計算出當前工作節點的最佳CPU與內存比例;決策與任務分發模塊根據分析得到的信息和當前工作節點的任務運行信息,決策控制是否分發新的任務到工作節點進行計算操作,實現對CPU與內存使用關系的有效限制。本發明能夠在通用的大數據平臺上實現內存感知的任務分發機制,降低內存資源激烈競爭所導致的數據溢出到磁盤的I/O開銷,并且有效提高系統的整體性能。
【專利說明】
一種解決大數據處理系統中內存資源激烈競爭的系統
技術領域
[0001] 本發明屬于計算機系統結構下I/O性能優化領域,更具體地,涉及一種解決大數據 處理系統中內存資源激烈競爭的系統。
【背景技術】
[0002] 隨著大數據時代的到來,數據處理多采用集群編程模型MapReduce和Dryad來處理 日益增長的數據集,這些模型能提供自動的任務調度機制、容錯機制和負載均衡機制,實現 細節對用戶實現透明,其中MapReduce模型應用非常廣泛。
[0003] 開源的分布式處理系統Hadoop作為MapReduce模型最典型的代表,已經被工業界 用來處理多種多樣的離線批處理應用。但是Hadoop基于磁盤設計了一整套執行流程,中間 數據需要存放在磁盤上,不適合迭代計算這種復雜的應用,磁盤I/O成為性能的主要瓶頸。 同時Hadoop采用多進程執行引擎,任務以進程的形式被執行與調度。由于進程啟動非常慢, 導致Hadoop只適合離線批處理類型的作業,這無法滿足當下對應用高時效性的需求。
[0004] 但作為MapReduce模型當前最火的代表,Spark基于內存設計了一整套執行流程, 數據結構多采用消耗內存的哈希表,并且提供了中間數據緩存在內存中的機制和接口,極 大的減少了磁盤1/0操作。同時Spark采用多線程執行引擎,任務以線程的形式被調度,線程 啟動快,而且線程之間共享和復用內存空間,資源利用率高,導致Spark非常適合低延遲高 響應類型的作業。同時多線程執行引擎也成為了當下流行的分布式處理系統的標準實現。
[0005] 但是,當前的大數據處理應用大多都是數據密集性應用,大量的中間數據需要緩 存在內存空間,而且大量的計算是消耗內存空間的,容易出現內存不充足的情況,此時線程 任務對內存資源的競爭更加競爭。現有的線程任務調度機制直接根據工作節點是否含有空 核來分發任務,未考慮工作節點當前的內存資源使用情況,會繼續加劇內存的競爭。另一方 面,多線程執行引擎為了保證每個線程任務在計算中都能分到足夠的內存空間,根據工作 節點中任務的數量均分內存空間。但工作節點的CPU核數(線程任務最大的并發度)是提前 就申請好的,當每個線程任務消耗的內存增多,內存不足時,大量的數據溢出到磁盤,導致 大量的磁盤1/0操作。同時大數據作業都是分階段執行的,每個階段的任務消耗的內存不一 致,非常容易出現某些階段中CPU和內存容量的比例不協調,影響大數據處理系統的整體性 能。
【發明內容】
[0006] 針對現有技術的缺陷,本發明的目的在于提供一種解決大數據處理系統中內存資 源激烈競爭的系統,旨在解決現有方法中存在的內存資源激烈競爭過大、不必要的數據溢 出到磁盤的1/0操作、無法動態調整CPU和內存資源比例的技術問題。
[0007] 為實現上述目的,按照本發明的一方面,提供了一種解決大數據處理系統中內存 資源激烈競爭的系統,包括內存信息反饋模塊、信息采樣與分析模塊、決策與任務分發模 塊。
[0008] 內存信息反饋模塊用于對運行中的線程任務進行內存使用情況的監測,并將收集 的內存信息轉化后反饋給信息采樣與分析模塊;
[0009] 信息采樣與分析模塊用于動態調控各個工作節點信息的采樣次數,并且達到指定 的采樣次數后對數據進行分析,計算出當前工作節點的最佳CHJ與內存比例,并將結果數據 提交給決策與任務分發模塊;
[0010] 決策與任務分發模塊根據分析得到的信息和當前工作節點的任務運行信息,決策 控制是否分發新的任務到工作節點進行計算操作,實現對CHJ與內存使用關系的有效限制。
[0011] 所述內存信息反饋模塊,用于對運行中的線程任務進行內存使用情況的監測,統 計線程任務執行過程中消耗的內存量,同時也統計當內存不足時,從內存中溢出到磁盤的 數據量,根據內存實際消耗的總量和當前的工作節點所分配的最大CHJ核數,計算最佳并發 度信息反饋給信息采樣與分析模塊。
[0012] 所述收集的信息,包括線程任務所使用的容器占用的內存大小,工作節點用于計 算的最大內存值,內存空間不足時數據溢出到磁盤的大小,工作節點所擁有的CHJ資源數。
[0013] 所述監測功能的實現,主要是通過在工作節點調用大數據處理系統中與內存相關 的關鍵函數,關鍵函數包括有內存分配函數、內存釋放函數、獲取內存配置信息與CPU核數 函數、獲取任務運行信息函數。
[0014] 所述信息采樣與分析模塊,通過在主節點動態調控各個工作節點信息的采樣次 數,在收集信息的過程中選擇性地調整工作節點CHJ與內存資源比例,并且在達到指定的采 樣次數后對收集到的數據進行處理分析,來判斷工作節點整體的內存資源競爭激烈情況, 并確定工作節點當前最佳的CHJ與內存資源比例。
[0015] 所述決策與任務分發模塊,通過在主節點對原有的任務調度機制進行擴展,加入 對內存資源和CPU資源的綜合考慮,根據采樣結果和當前工作節點已經分配的任務情況,綜 合考慮后決定是否繼續分發任務到工作節點,來協調工作節點CHJ和內存資源的合理使用。
[0016] 所述內存信息反饋模塊,部署在每個工作節點上,追蹤每一個線程任務運行過程 中消耗的內存量S??,并且記錄內存不足時,內存數據溢出到磁盤的數據量S spm,接著當線 程任務運行完后,根據線程任務消耗的內存總量Smem+Sspill,以及工作節點分配給計算所需 的最大內存空間S max和線程任務所允許的最大并發度CLmax(申請的CPU核數),計算出適合當 前資源環境的最佳并發度〇^反饋給主節點的信息采樣與分析模塊。當S spm = 0時,說明當 如的內存比車父充足,CL〇p = CLmax。否則,內存資源不足,克爭激烈,- J。
[0017] 所述信息采樣與分析模塊,通過哈希表來管理采樣數據,將各個工作節點收集的 采樣數據快速地分配到各個對應的處理模塊進行分析處理,收到采樣數據后,更新用來記 錄對應工作節正在運行的線程任務數量T num=Tnum-l。每個模塊在指定的采樣次數SN達到之 后,將累加收集到的所有采樣數據CUP
最后計算出適合工作節點當 前最佳的并發度提交給決策與任務分發模塊。
[0018] 所述決策與任務分發模塊,根據當前工作節點的并發度信息CUurrent,以及信息采 樣與分析模塊提交的CL be3St,用CLbe3St直接賦值來更新當前的并發度信息CUurre3nt和采樣次數 SN。最后任務分發模塊根據更新后的CUurrent值和工作節點當前正在運行的線程任務數量 T_決策剩余線程任務是否分發到工作節點,當CU^nt〉!?時,繼續分發任務到該工作子 節點,并且更新TnUm = TnUm+l 〇
[0019] 所述信息采樣與分析模塊,在收集采樣數據的次數未達到SN的過程中,如果收集 到CUP<CU urre3nt時,說明當前內存資源競爭非常激烈,按照原來的CL?nt值分發任務,不 能快速的緩解競爭壓力,需要實時做出調整CU umnt = CUP。
[0020] 通過本發明所構思的以上技術方案,與現有技術相比,本發明的系統具有以下的 優點和技術效果:
[0021] 1、由于采用了內存信息反饋模塊,通過收集線程任務運行過程中實際消耗的內存 空間,能夠有效地預估當前工作節點的內存壓力情況,提前將內存信息反饋給主節點進行 決策,及時緩解工作節點的內存壓力;
[0022] 2、由于采用了信息采樣與分析模塊,通過動態的調整采樣的次數,保證了收集到 的數據能夠從整體上反應工作節點的內存使用情況,確保了工作節點能夠平穩高效的運 行;
[0023] 3、由于采用了決策與任務分發模塊,在任務調度的過程中,能同時考慮工作節點 CPU和內存的使用情況,確保了工作節點能高效的使用內存空間,有效減少了內存資源競爭 緊張而導致的溢出磁盤I/O操作,切實緩解了內存資源激烈競爭的情況;
[0024] 4、由于本發明本著方便用戶使用的目標,實現在系統中內部,不涉及用戶層程序 的具體代碼或額外操作,因此對用戶層程序是完全透明的。同時解決的問題比較通用,實現 方法具有很強的通用性和可移植性。
【附圖說明】
[0025] 圖1為解決大數據處理系統中內存資源激烈競爭機制的模塊框圖。
[0026] 圖2為解決大數據處理系統中內存資源激烈競爭機制的流程圖。
【具體實施方式】
[0027] 為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對 本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明,并不 用于限定本發明。
[0028] 如圖1所示,本發明提供了一種解決大數據處理系統中內存資源激烈競爭的系統, 包括內存信息反饋模塊、信息采樣與分析模塊、決策與任務分發模塊。
[0029] 內存信息反饋模塊用于對運行中的線程任務進行內存使用情況的監測,統計線程 任務執行過程中消耗的內存量,同時也統計當內存不足時,從內存中溢出到磁盤的數據量, 根據內存實際消耗的總量和當前的工作節點所分配的最大CPU核數,計算最佳并發度信息 反饋給信息采樣與分析模塊。
[0030] 內存信息反饋模塊收集的信息包括線程任務所使用的容器占用的內存大小,工作 節點用于計算的最大內存值,內存空間不足時數據溢出到磁盤的大小,工作節點所擁有的 CPU資源數。
[0031] 監測功能的實現主要是通過在工作節點調用大數據處理系統中與內存相關的關 鍵函數,關鍵函數包括有內存分配函數、內存釋放函數、獲取內存配置信息與CPU核數函數、 獲取任務運行信息函數。
[0032] 信息采樣與分析模塊通過在主節點動態調控各個工作節點信息的采樣次數,在收 集信息的過程中選擇性地調整工作節點CPU與內存資源比例,并且在達到指定的采樣次數 后對收集到的數據進行處理分析,來判斷工作節點整體的內存資源競爭激烈情況,并確定 工作節點當前最佳的CHJ與內存資源比例。
[0033] 決策與任務分發模塊通過在主節點對原有的任務調度機制進行擴展,加入對內存 資源和CPU資源的綜合考慮,根據采樣結果和當前工作節點已經分配的任務情況,綜合考慮 后決定是否繼續分發任務到工作節點,來協調工作節點CHJ和內存資源的合理使用。
[0034] 如圖2所示,解決大數據處理系統中內存資源激烈競爭機制的整體流程,包括以下 步驟:
[0035] (1)內存信息反饋模塊部署在每個工作節點上,追蹤每一個線程任務運行過程中 消耗的內存量Smem,并且記錄內存不足時,內存數據溢出到磁盤的數據量Sspm,接著當線程 任務運行完后,根據線程任務消耗的內存總量Smem+Sspill,以及工作節點分配給計算所需的 最大內存空間S max和線程任務所允許的最大并發度CLmax(申請的CPU核數),計算出適合當前 資源環境的最佳并發度CU Pi饋給主節點的信息采樣與分析模塊。當Sspm = 0時,說明當前 的內存比較充足,cuP=amax。否則,內存資源不足,競爭激烈,=^ niax/(5;_+5^7/)」。
[0036] (2)信息采樣與分析模塊通過哈希表來管理采樣數據,將各個工作節點收集的采 樣數據快速地分配到各個對應的處理模塊進行分析處理,收到采樣數據后,更新用來記錄 對應工作節正在運行的線程任務數量Tnum = Tnum-l。每個模塊在指定的采樣次數SN達到之 后,將累加收集到的所有采樣數據CUP,
'最后計算出適合工作節點當 前最佳的并發度€%_=[^£_/5/1提交給決策與任務分發模塊。
[0037] (3)決策與任務分發模塊根據當前工作節點的并發度信息CUurrent,以及信息采樣 與分析模塊提交的CL be3St,用CLbe3St直接賦值來更新當前的并發度信息CUurre3nt和采樣次數 SN。最后任務分發模塊根據更新后的CUurrent值和工作節點當前正在運行的線程任務數量 T_決策剩余線程任務是否分發到工作節點,當時,繼續分發任務到該工作子 節點,并且更新TnUm = TnUm+l 〇
[0038] (4)信息采樣與分析模塊在收集采樣數據的次數未達到SN的過程中,如果收集到 CUP <CUurre3nt時,說明當前內存資源競爭非常激烈,按照原來的CUurmt值分發任務,不能 快速的緩解競爭壓力,需要實時做出調整CU umnt=CUP。
[0039] 本領域的技術人員容易理解,以上所述僅為本發明的較佳實施例而已,并不用以 限制本發明,凡在本發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含 在本發明的保護范圍之內。
【主權項】
1. 一種解決大數據處理系統中內存資源激烈競爭的系統,其特征在于,包括內存信息 反饋模塊、信息采樣與分析模塊、決策與任務分發模塊,其中: 內存信息反饋模塊用于對運行中的線程任務進行內存使用情況的監測,并將收集的內 存信息轉化后反饋給信息采樣與分析模塊; 信息采樣與分析模塊用于動態調控各個工作節點信息的采樣次數,并且達到指定的采 樣次數后對數據進行分析,計算出當前工作節點的最佳CPU與內存比例,并將結果數據提交 給決策與任務分發模塊; 決策與任務分發模塊根據分析得到的信息和當前工作節點的任務運行信息,決策控制 是否分發新的任務到工作節點進行計算操作,實現對CHJ與內存使用關系的有效限制。2. 根據權利要求1所述的解決大數據處理系統中內存資源激烈競爭的系統,其特征在 于,內存信息反饋模塊用于對運行中的線程任務進行內存使用情況的監測,統計線程任務 執行過程中消耗的內存量,同時也統計當內存不足時,從內存中溢出到磁盤的數據量,根據 內存實際消耗的總量和當前的工作節點所分配的最大CPU核數,計算最佳并發度信息反饋 給信息采樣與分析模塊。3. 根據權利要求1或2所述的解決大數據處理系統中內存資源激烈競爭的系統,其特征 在于,內存信息反饋模塊收集的內存信息包括線程任務所使用的容器占用的內存大小,工 作節點用于計算的最大內存值,內存空間不足時數據溢出到磁盤的大小,工作節點所擁有 的CPU資源數。4. 根據權利要求1或2所述的解決大數據處理系統中內存資源激烈競爭的系統,其特征 在于,內存信息反饋模塊的監測功能的實現是通過在工作節點調用大數據處理系統中與內 存相關的關鍵函數,關鍵函數包括有內存分配函數、內存釋放函數、獲取內存配置信息與 CHJ核數函數、獲取任務運行信息函數。5. 根據權利要求1或2所述的解決大數據處理系統中內存資源激烈競爭的系統,其特征 在于,信息采樣與分析模塊通過在主節點動態調控各個工作節點信息的采樣次數,在收集 信息的過程中選擇性地調整工作節點CPU與內存資源比例,并且在達到指定的采樣次數后 對收集到的數據進行處理分析,來判斷工作節點整體的內存資源競爭激烈情況,并確定工 作節點當前最佳的CHJ與內存資源比例。6. 根據權利要求1或2所述的解決大數據處理系統中內存資源激烈競爭的系統,其特征 在于,決策與任務分發模塊通過在主節點對原有的任務調度機制進行擴展,加入對內存資 源和CPU資源的綜合考慮,根據采樣結果和當前工作節點已經分配的任務情況,綜合考慮后 決定是否繼續分發任務到工作節點,來協調工作節點CHJ和內存資源的合理使用。7. 根據權利要求1或2所述的解決大數據處理系統中內存資源激烈競爭的系統,其特征 在于,內存信息反饋模塊部署在每個工作節點上,追蹤每一個線程任務運行過程中消耗的 內存量S mem,并且記錄內存不足時,內存數據溢出到磁盤的數據量Sspm,接著當線程任務運 行完后,根據線程任務消耗的內存總量S_+S spm,以及工作節點分配給計算所需的最大內 存空間Smax和線程任務所允許的最大并發度CL max(申請的CPU核數),計算出適合當前資源環 境的最佳并發度CUP反饋給主節點的信息采樣與分析模塊;當S spm = 0時,說明當前的內存 比較充足,CUP = CLmax;否則,內存資源不足,競爭激烈,8. 根據權利要求5所述的解決大數據處理系統中內存資源激烈競爭的系統,其特征在 于,信息采樣與分析模塊通過哈希表來管理采樣數據,將各個工作節點收集的采樣數據快 速地分配到各個對應的處理模塊進行分析處理,收到采樣數據后,更新用來記錄對應工作 節正在運行的線程任務數量T num = Tnum-l;每個模塊在指定的采樣次數SN達到之后,將累加 收集到的所有采樣數據CUP,得到Σ ,最后計算出適合工作節點當前最佳的并 iG-SN- 發度交給決策與任務分發模塊。9. 根據權利要求6所述的解決大數據處理系統中內存資源激烈競爭的系統,其特征在 于,決策與任務分發模塊根據當前工作節點的并發度信息CU ur_t,以及信息采樣與分析模 塊提交的CLbe3St,用CL be3St直接賦值來更新當前的并發度信息CUurre3nt和采樣次數SN;最后任 務分發模塊根據更新后的CU urrent值和工作節點當前正在運行的線程任務數量Tnum決策剩 余線程任務是否分發到工作節點,當CU urre3nt>Tnum時,繼續分發任務到該工作子節點,并且 更新 Tnum = Tnum+1。10. 根據權利要求5所述的解決大數據處理系統中內存資源激烈競爭的系統,其特征在 于,在信息采樣與分析模塊收集采樣數據的次數未達到SN的過程中,如果收集到CU P< CUurre3I^t,說明當前內存資源競爭非常激烈,按照原來的CUurre3nt值分發任務,不能快速的 緩解競爭壓力,需要實時做出調整CU urre3nt=CUP。
【文檔編號】G06F9/50GK105868025SQ201610189095
【公開日】2016年8月17日
【申請日】2016年3月30日
【發明人】石宣化, 金海 , 裴成, 張 雄
【申請人】華中科技大學