一種基于地震數據的作業調度方法
【技術領域】
[0001] 本發明屬于集群技術領域,具體涉及一種基于地震數據的作業調度方法的設計。
【背景技術】
[0002] 隨著技術的不斷發展,雖然單個計算機的性能越來越高,但是在針對地震數據等 大規模數據的處理時,只靠不斷增強單個計算機的能力已經不能滿足應用的日益增長的需 求。一般大型地震數據可以高達幾百GB,且對其進行的計算非常復雜,一次地震數據處理的 運行時間最長可達十幾天,因此采用集群技術為我們提供了一個解決方案。
[0003] 集群(cluster)技術是一種較新的技術,通過集群技術,可以在付出較低成本的 情況下獲得在性能、可靠性、靈活性方面的相對較高的收益,其中任務調度則是集群系統中 的核心技術。
[0004] 在集群資源管理軟件中,作業調度方法在很大程度上影響了整個系統的效率,一 個好的作業調度方法可以在一定的時間內減少運行作業所需的節點數目,可以運行更多的 作業,提高系統資源利用率。針對不同的應用環境與目標,調度方法也會有很大的不同,影 響任務調度的主要因素有作業類型與結構、計算機性能與系統機制、網絡通信性能等。所以 不會存在一種適合于任何環境任何應用下的作業調度系統,目前的許多主流作業管理系統 都提供了靈活的調度算法接口,以達到更好的調度效果。我們需要根據實際項目中的軟硬 件需求,在通用調度算法基礎上設計出適合本系統的調度方法,才能夠實現真正實用與高 效的調度方案。
[0005] 調度算法好壞的評價依賴于多種標準,從使用的角度應考慮調度系統的簡便性、 靈活性、穩定性,從性能的角度應考慮調度系統的調度效率、系統資源利用率、系統吞吐率、 系統負載均衡等。
[0006] 系統的調度效率與調度算法設計有緊密的聯系,要盡可能的縮短作業的等待時 間。作業等待時間是指集群中各作業從提交到開始運行所等待的時間長度,減少調度算法 本身所耗費的系統資源,提高系統的響應速度。
[0007] 系統吞吐率是指一定時間段內系統完成的作業數量,系統吞吐率不僅依賴于系統 中的軟硬件資源,還與調度方法有很大的關系。一般來說系統資源利用率的提高能使系統 在單位時間內運行更多的作業,提高系統的吞吐率。
[0008] 負載均衡所要達到的目標是讓集群中每個節點承擔的作業任務量盡可能的相同。 考慮系統的負載均衡就是根據集群中節點的資源利用情況將作業分配到負載較低的節點 上,下文中所涉及的一些調度算法主要是根據作業的提交時間和作業大小依次對作業進行 調度,所以需要把負載均衡的考慮加入到調度算法的設計中,才能得到好的調度方法。
[0009] 由于Iinux系統開源軟件的特性,大多數的系統信息都是通過讀取配置文件的形 式進行獲取。因此為了獲取節點的CPU利用率、網絡I/O利用情況等信息,需要讀取proc 文件系統。
[0010] proc文件系統是一個偽文件系統,它只存在內存當中,而不占用外存空間。它以文 件系統的方式為訪問系統內核數據的操作提供接口。用戶和應用程序可以通過proc得到 系統的信息,并可以改變內核的某些參數。由于系統的信息,如進程,是動態改變的,所以用 戶或應用程序讀取/proc目錄中的文件時,proc文件系統是動態從系統內核讀出所需信息 并提交的。
[0011] 混沌現象是非線性確定性系統中的一種內在隨機過程的表現,普遍存在于自然界 中,其表現形式是一種"無序的有序"。確定性為其"有序性",而最終結果的不可預測性則為 其"無序性"。然而從嚴格意義上講,對于混沌的性質判斷,從數學上沒有一個統一的定義。 比較常用的有Li-Yorke、Devaney、Matotto意義下的三種混純,實際上為了刻畫混純動力 學性質往往用到Lyapunov指數和熵。
[0012] -個混沌系統的行為是許多有序行為的集合,但是每一個有序行為在正常情況下 都不占主導地位。如果以某種方式擾亂一個混沌系統,就能使該系統以它許多有序行為中 的一個來起作用。由于混沌系統能在許多不同的行為方式之間進行轉換,所以顯得特別靈 活。歷史上混沌的研究開始于數學和物理學,然后擴展到工程領域,近來人們將混沌理論逐 漸應用到工程設計領域。
[0013] 按照混沌應用方法的不同,可以分為穩定性、綜合和分析幾個方面。穩定性就是利 用初值的敏感性,給系統加入微小擾動,使之進入某一希望的狀態,如混沌控制;綜合就是 利用人為生成的混沌以獲取混沌動力學的可能的功能,如避免局部最小;分析是分析從自 然和人為復雜系統中觀察得到的混沌信號以尋找隱藏其中的規律,如時間序列的非線性確 定性預測。
【發明內容】
[0014] 本發明的目的是為了解決現有技術中執行控制系統只實現了簡單的FCFS調度算 法、沒有考慮地震作業總的處理時間最優、負載均衡的問題,提出了一種基于地震數據的作 業調度方法。
[0015] 本發明的技術方案為:一種基于地震數據的作業調度方法,包括以下步驟:
[0016] Sl、獲取集群節點的資源信息;
[0017] S2、計算地震作業的復雜度;
[0018] S3、通過基于混沌算法的作業調度策略對地震作業進行調度。
[0019] 進一步地,步驟Sl包括以下分步驟:
[0020] Sl 1、計算集群節點;
[0021] S12、讀取配置文件;
[0022] S13、進行數據處理。
[0023] 進一步地,步驟S12中的配置文件包括/proc/stat系統文件、/proc/net/dev系 統文件以及/etc/mtab系統文件。
[0024] 進一步地,步驟S13中數據處理具體包括:計算節點CPU利用率、計算節點1/0利 用率、計算節點磁盤利用率以及計算集群節點的性能指標。
[0025] 進一步地,步驟S2中地震作業的復雜度基于地震作業的大小以及地震作業采用 的處理模塊的類型。
[0026] 進一步地,步驟S3包括以下分步驟:
[0027] S31、算法初始化;
[0028] S32、對混沌變量進行第一次載波;
[0029] S33、用第一次載波后的混沌變量進行迭代搜索;
[0030] S34、判斷經步驟S33的迭代搜索后混沌變量是否保持不變,若是則進入步驟S35, 否則返回步驟S33 ;
[0031] S35、對混沌變量進行第二次載波;
[0032] S36、用第二次載波后的混沌變量繼續進行迭代搜索;
[0033] S37、判斷經步驟S36的迭代搜索后混沌變量是否保持不變,若是則進入步驟S38, 否則返回步驟S36 ;
[0034] S38、輸出最優解。
[0035] 本發明的有益效果是:本發明基于總的處理時間最優、負載均衡等條件的地震作 業調度策略,通過獲取到的集群節點的資源信息和地震作業的復雜度,利用混沌算法的地 震作業調度策略,可以達到以下有益效果:
[0036] (1)本發明中獲取集群節點的資源信息可以幫助用戶詳細的了解集群節點的資源 利用情況;
[0037] (2)本發明將地震作業復雜度量化為基于地震作業的大小和地震模塊的類型的作 業運行的復雜度;
[0038] (3)通過本發明建立的地震作業調度模型,利用了混沌算法的優化策略,考慮了節 點的負載平衡和作業運行時間最少的優化目標,最終完成對地震作業的調度。
【附圖說明】
[0039] 圖1為本發明提供的一種基于地震數據的作業調度方法流程圖。
[0040] 圖2為本發明步驟Sl的分步驟流程圖。
[0041 ] 圖3為本發明步驟S3的分步驟流程圖。
【具體實施方式】
[0042] 下面結合附圖對本發明的實施例作進一步的說明。
[0043] 本發明提供了一種基于地震數據的作業調度方法,如圖1所示,包括以下步驟:
[0044] Sl、獲取集群節點的資源信息。
[0045] 如圖2所示,該步驟包括以下分步驟:
[0046] Sl 1、計算集群節點。
[0047] S12、讀取配置文件,包括/proc/stat系統文件、/proc/net/dev系統文件以及/ etc/mtab系統文件。
[0048] 其中,/proc/stat系統文件包含了系統啟動以來的許多關于kernel和系統的統 計信息,其中包括CPU運行情況、中斷統計、啟動時間、上下文切換次數、運行中的進程等信 息。
[0049] /proc/net/dev系統文件包含了系統網卡統計信息。
[0050] /etc/mtab系統文件記載的是現在系統已經裝載的文件系統,包括操作系統建立 的虛擬文件等。
[0051] S13、進行數據處理,具體包括:計算節點CPU利用率、計算節點I/O利用率、計算節 點磁盤利用率以及計算集群節點的性能指標。
[0052] 為了計算節點CPU利用率,需要從/proc/stat系統文件中提取四個數據:用戶 模式(user)、低優先級的用戶模式(nice)、內核模式(system)以及空閑的處理器時間 (idle)。它們均位于/proc/stat系統文件的第一行。則節點CPU利用率如公式(1)所示:
[0053] cpu_usage = 100*(user+nice+system)/(user+nice+system+idle) (I)
[0054] 為了得到節點I/O利用率的相關數據,需要從/proc/net/dev系統文件中獲得兩 個數據:從本機輸出的數據包數,流入本機的數據包數,它們都位于/proc/