一種優化處理資源的方法及裝置的制造方法
【專利摘要】本發明提供了一種優化處理資源的方法及裝置,包括:將數據按照磁盤陣列Raid條帶進行劃分,劃分后的數據子集分別分派到不同的CPU進行處理并分派到與之對應的CPU的專用cache中;分別將所述劃分后的數據子集綁定到所述與之對應的CPU的線程中異步執行,并將劃分后的數據保存到所述CPU的專用cache中。本發明以均衡和減少沖突為原則達成的優化處理資源的方法及裝置,具有很高的IOPS吞吐能力,資源使用平衡,不沖突,因為頂層設計清晰,系統具有很好的可靠性和擴展性。
【專利說明】
一種優化處理資源的方法及裝置
技術領域
[0001]本發明涉及計算機技術領域,尤其涉及一種優化處理資源的方法及裝置。
【背景技術】
[0002]存儲系統的軟件框架設計,一般來說有很多種技術,比如:
[0003]1.工作線程組
[0004]2.線程CPU綁定
[0005]3.異步工作隊列
[0006]4.預分配內存池
[0007]在實現本發明過程中,發明人發現現有技術中至少存在如下問題:
[0008]1.只是簡單的使用多種流行技術,沒有統一的策略指導,沒有有機的綜合;比如工作線程組,沒有對數據進行拆分,則需要處理多線程訪問共享數據的帶來的問題(資源加鎖,造成spirulock沖突或者mutex線程切換)。這種問題不是處理邏輯引入(比如異步分布式1鎖是邏輯引入),而是數據處理方式引入,本可以避免。若不規避這些問題,在要求極高的1PS條件下,會因為鎖沖突、線程切換等原因導致1PS性能瓶頸。
[0009]2.沒有從整體上對CPU資源,內存資源做劃分,綁定,導致資源使用沒有最優化甚至沖突,降低性能。
【發明內容】
[0010]為解決上述技術問題,本發明提出了一種優化處理資源的方法及裝置,該方法以訪問局部化,資源平均化為原則實現分布式處理框架,提高存儲系統1PS性能。
[0011]本發明提供了一種優化處理資源的方法,該方法包括:
[0012]將數據按照磁盤陣列Raid條帶進行劃分,劃分后的數據子集分別分派到不同的CPU進行處理并分派到與之對應的CPU的專用cache中;
[0013]分別將所述劃分后的數據子集綁定到所述與之對應的CPU的線程中異步執行,并將劃分后的數據保存到所述CPU的專用cache中。
[0014]優選地,所述將數據按照Raid條帶進行劃分之前還包括:
[0015]獲取所述數據的Raid條帶占用信息。
[0016]優選地,所述線程設有與之對應的頁內存管理。
[0017]優選地,所述線程對保存在之對應的CPU的專用cache中的數據采用無并發的單線程數據處理模式進行數據處理。
[0018]優選地,所述方法還包括:
[0019]將當前沒有進行數據子集綁定的CPU設置為冗余CPU。
[0020]相應的,本發明還提出了一種優化處理資源的裝置,所述裝置包括:
[0021]數據拆分模塊,用于將數據按照磁盤陣列Raid條帶進行劃分,劃分后的數據子集分別分派到不同的CPU進行處理并分派到與之對應的CPU的專用cache中;
[0022]資源綁定模塊,用于分別將所述劃分后的數據子集綁定到所述與之對應的CPU的線程中異步執行,并將劃分后的數據保存到所述CPU的專用cache中。
[0023]優選地,所述裝置還包括:
[0024]獲取模塊,用于在將數據按照Raid條帶進行劃分之前,獲取所述數據的Raid條帶占用?目息O
[0025]采用本發明提出的一種優化處理資源的方法及裝置,通過數據拆分,相當于先對數據做了均衡的Hash,將大數據拆分為小數據分而治之;資源綁定,將多線程并發處理模型簡化為單線程數據處理模型;從頂層整體分配所有資源(CPU資源和內存資源),以均衡和減少沖突為原則達成的存儲系統,具有很高的1PS吞吐能力,資源使用平衡,不沖突,因為頂層設計清晰,系統具有很好的可靠性和擴展性。
【附圖說明】
[0026]通過參考附圖會更加清楚的理解本發明的特征和優點,附圖是示意性的而不應理解為對本發明進行任何限制,在附圖中:
[0027]圖1為本發明實施例一提出的一種優化處理資源的方法流程圖;
[0028]圖2為本發明實施例中提出的拆分b1的流程圖;
[0029]圖3為本發明實施例二提出的一種優化處理資源的裝置模塊圖。
【具體實施方式】
[0030]為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0031]存儲系統要具有極高的1PS能力,并且支持雙控乃至集群,必須分布式并行處理,降低數據訪問沖突、資源占用沖突,將訪問局部化,資源平均化。在系統框架設計上,很好的用以上原則融合多種技術的設計框架,才是好的框架。
[0032]圖1為本發明實施例一提出的一種優化處理資源的方法流程圖,如圖1所示,該方法包括以下步驟:
[0033]S101,將數據按照磁盤陣列Raid條帶進行劃分,劃分后的數據子集分別分派到不同的CPU進行處理并分派到與之對應的CPU的專用cache中;
[0034]S102,分別將所述劃分后的數據子集綁定到所述與之對應的CPU的線程中異步執行,并將劃分后的數據保存到所述CPU的專用cache中。
[0035]其中,線程對保存在之對應的CPU的專用cache中的數據采用無并發的單線程數據處理模式進行數據處理。本發明實施例中,線程要處理的數據是自己獨有的,所以數據處理模式是單線程,不用考慮并發訪問數據。
[0036]本發明實施例中,在所述將數據按照Raid條帶進行劃分之前,本方法還包括:
[0037]獲取所述數據的Raid條帶占用信息。
[0038]其中,所述線程設有與之對應的頁內存管理,每個Per_CPU work有本地化的頁內存管理。
[0039]本發明實施例中,所述方法還包括:
[0040]將當前沒有進行數據子集綁定的CPU設置為冗余CPU,將剩余的CPU核用于系統中其他上層模塊。
[0041]本發明實現的構架方案如下:
[0042]1.數據拆分
[0043]將數據按照Raid條帶進行劃分,分派到不同的CPU核(可擴展到雙控制器乃至集群)上去處理(CPU資源),分派到不同的CPU的專用cache即Per_CPU cache中(內存資源)。
[0044]數據拆分相當于先對數據做了均衡的Hash,將大數據拆分為小數據分而治之。
[0045]2.資源綁定
[0046]將拆分后的數據子集(sub_1)分派(綁定)到某個CPU核的Per_CPU work中異步執行,存儲到CPU對應的Per_CPU cache中。
[0047]這樣,每個CPU核的Per_CPU work都有自己局部化的內存資源Per_CPU cache (以及Per_CPU頁內存管理);Per_CPU work都是無并發的單線程模型。
[0048]資源綁定后自然達成的好的效果是,將多線程并發處理模型簡化為單線程數據處理模型。
[0049]本發明實施例的具體工作流程,如下:
[0050]1.將雙控通訊設定到一個真CPU核心上執行;
[0051]2.將異步雙控范圍鎖(包括1鎖和條帶鎖)設定到一個真CPU核心上執行;
[0052]3.將cache的1處理,產生flush 1等work設定到一組CPU核心上執行;
[0053]外部的10拆分到雙控的每個cache Per_CPU work上執行;flush在每個Per_CPU本地產生;
[0054]4.將Raid的10處理等work設定到一組CPU核心上執行,與cache有M比N的關系;
[0055]5.剩余CPU核用于系統中其他上層模塊;
[0056]6.每個Per_CPU work有本地化的頁內存管理。
[0057]圖2為拆分b1的流程圖,具體包括:
[0058]初始化task_array、start_pos等信息;獲取cache的條帶大小;
[0059]遍歷next_range,將b1拆分為pcpu_b1_task,并初始化,放入局部變量task_array ψ ;
[0060]出現錯誤則根據task_array 數組 rollback 所有 pcpu_b1_task ;
[0061]無錯誤則將task_array中所有pcpu_b1_task放入對應的pcpu_work中執行。
[0062]其中,task_array是任務數組,pcpu_b1_task是每CPU的b1任務,b1是存儲系統中專用的數據,保存了一個數據塊的訪問請求的所有信息。
[0063]圖3為本發明實施例二提出的一種優化處理資源的裝置模塊圖,如圖3所示,該裝置包括:
[0064]數據拆分模塊301,用于將數據按照磁盤陣列Raid條帶進行劃分,劃分后的數據子集分別分派到不同的CPU進行處理并分派到與之對應的CPU的專用cache中;
[0065]資源綁定模塊302,用于分別將所述劃分后的數據子集綁定到所述與之對應的CPU的線程中異步執行,并將劃分后的數據保存到所述CPU的專用cache中。
[0066]本發明實施例中所述的優化處理資源的裝置還包括:
[0067]獲取模塊,用于在將數據按照Raid條帶進行劃分之前,獲取所述數據的Raid條帶占用?目息O
[0068]本發明提出的一種優化處理資源的方法及裝置取得了以下有益效果:
[0069]1.設計達成的存儲系統,具有很高的1PS吞吐能力;
[0070]2.資源使用平衡,不沖突;
[0071]3.因為頂層設計清晰,系統具有很好的可靠性和擴展性。
[0072]通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發明可以通過硬件實現,也可以借助軟件加必要的通用硬件平臺的方式來實現。基于這樣的理解,本發明的技術方案可以以軟件產品的形式體現出來,該軟件產品可以存儲在一個非易失性存儲介質(可以是CD-ROM,U盤,移動硬盤等)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述的方法。
[0073]本領域技術人員可以理解附圖只是一個優選實施例的示意圖,附圖中的模塊或流程并不一定是實施本發明所必須的。
[0074]以上公開的僅為本發明的幾個具體實施例,但是,本發明并非局限于此,任何本領域的技術人員能思之的變化都應落入本發明的保護范圍。
【主權項】
1.一種優化處理資源的方法,其特征在于,所述方法包括: 將數據按照磁盤陣列Raid條帶進行劃分,劃分后的數據子集分別分派到不同的CPU進行處理并分派到與之對應的CPU的專用cache中; 分別將所述劃分后的數據子集綁定到所述與之對應的CPU的線程中異步執行,并將劃分后的數據保存到所述CPU的專用cache中。2.根據權利要求1所述的方法,其特征在于,所述將數據按照Raid條帶進行劃分之前還包括: 獲取所述數據的Raid條帶占用信息。3.根據權利要求1所述的方法,其特征在于,所述線程設有與之對應的頁內存管理。4.根據權利要求1所述的方法,其特征在于,所述線程對保存在之對應的CPU的專用cache中的數據采用無并發的單線程數據處理模式進行數據處理。5.根據權利要求1所述的方法,其特征在于,所述方法還包括: 將當前沒有進行數據子集綁定的CPU設置為冗余CPU。6.一種優化處理資源的裝置,其特征在于,所述裝置包括: 數據拆分模塊,用于將數據按照磁盤陣列Raid條帶進行劃分,劃分后的數據子集分別分派到不同的CPU進行處理并分派到與之對應的CPU的專用cache中; 資源綁定模塊,用于分別將所述劃分后的數據子集綁定到所述與之對應的CPU的線程中異步執行,并將劃分后的數據保存到所述CPU的專用cache中。7.根據權利要求6所述的裝置,其特征在于,所述裝置還包括: 獲取模塊,用于在將數據按照Raid條帶進行劃分之前,獲取所述數據的Raid條帶占用?目息O
【文檔編號】G06F9/50GK105988873SQ201510058673
【公開日】2016年10月5日
【申請日】2015年2月4日
【發明人】王俊
【申請人】北京神州云科數據技術有限公司