本發明涉及集群測試技術領域,特別涉及一種RDMA模式下Ceph存儲集群測試方法及系統。
背景技術:
當前,在對Ceph存儲集群進行性能測試的時候,通常存在兩種常規測試手段。其中一種是,在測試每個測試用例之前,根據測試用例重新編譯可執行程序;另外一種是,根據測試用例設計測試程序的參數類型,通過參數傳入來對每個測試用例進行測試。這兩種方法存在一些缺陷,其共同的缺陷在于對每個測試用例進行測試時,都需要重新啟動測試程序。這樣不能測試出Ceph存儲集群系統對壓力改變的敏感程度,系統的抗壓能力也不能測試到。
綜上所述可以看出,如何測試出Ceph存儲集群的抗壓能力以及對壓力改變的敏感程度是目前有待解決的問題。
技術實現要素:
有鑒于此,本發明的目的在于提供一種RDMA模式下Ceph存儲集群測試方法及系統,能夠測試出Ceph存儲集群的抗壓能力以及對壓力改變的敏感程度。其具體方案如下:
一種RDMA模式下Ceph存儲集群測試方法,包括:
預先創建目標測試程序;其中,所述目標測試程序為包含信號處理函數的測試程序;所述信號處理函數為根據預設的對應關系創建的用于將接收到的信號轉換成相應被測參數的函數,所述對應關系為預先確定的信號與被測參數之間的對應關系;
向所述信號處理函數傳送第一信號,得到由所述信號處理函數輸出的第一被測參數,并利用所述第一被測參數,控制所述目標測試程序對Ceph存儲集群進行相應測試;
在利用所述第一被測參數進行相應測試的過程中,若需要將所述目標測試程序中的被測參數由所述第一被測參數更改為第二被測參數,則根據所述對應關系,確定與所述第二被測參數對應的第二信號;
向所述信號處理函數傳送所述第二信號,得到由所述信號處理函數輸出的與所述第二信號對應的被測參數,然后利用該被測參數,控制所述目標測試程序對所述Ceph存儲集群進行相應測試。
可選的,任一被測參數的參數類型均為時間參數。
可選的,所述目標測試程序為xio_client程序。
可選的,向所述信號處理函數傳送任一信號的過程,包括:
利用kill命令、pkill命令或killall命令,向所述信號處理函數發送該信號。
可選的,所述預先創建目標測試程序的過程之后,還包括:
確定本輪測試所對應的所有被測參數,得到被測參數集;
根據所述對應關系,確定出與所述被測參數集中的每個被測參數對應的信號,得到相應的信號集;
將所述信號集中的每個信號依次傳送至所述信號處理函數,以依次啟動與每個信號對應的測試過程。
可選的,在所述目標測試程序對所述Ceph存儲集群進行的每次測試過程中,均還包括:
記錄相應的數據寫入速率、內存壓力以及CPU占用率,得到與本次測試對應的性能表現參數;
利用本次測試對應的性能表現參數,確定出與本次測試對應的被測參數的性能指數。
可選的,所述方法,還包括:
從本輪測試所對應的所有被測參數中篩選出性能指數最高的被測參數作為所述Ceph存儲集群的性能最優參數。
本發明還公開了一種RDMA模式下Ceph存儲集群測試系統,包括:
測試程序創建模塊,用于預先創建目標測試程序;其中,所述目標測試程序為包含信號處理函數的測試程序;所述信號處理函數為根據預設的對應關系創建的用于將接收到的信號轉換成相應被測參數的函數,所述對應關系為預先確定的信號與被測參數之間的對應關系;
第一測試模塊,用于向所述信號處理函數傳送第一信號,得到由所述信號處理函數輸出的第一被測參數,并利用所述第一被測參數,控制所述目標測試程序對Ceph存儲集群進行相應測試;
信號確定模塊,用于在所述第一測試模塊利用所述第一被測參數進行相應測試的過程中,若需要將所述目標測試程序中的被測參數由所述第一被測參數更改為第二被測參數,則根據所述對應關系,確定與所述第二被測參數對應的第二信號;
第二測試模塊,用于向所述信號處理函數傳送所述第二信號,得到由所述信號處理函數輸出的與所述第二信號對應的被測參數,然后利用該被測參數,控制所述目標測試程序對所述Ceph存儲集群進行相應測試。
可選的,任一被測參數的參數類型均為時間參數。
可選的,所述系統,還包括:
參數集確定模塊,用于確定本輪測試所對應的所有被測參數,得到被測參數集;
信號集確定模塊,用于根據所述對應關系,確定出與所述被測參數集中的每個被測參數對應的信號,得到相應的信號集;
壓力測試模塊,用于將所述信號集中的每個信號依次傳送至所述信號處理函數,以依次啟動與每個信號對應的測試過程。
本發明中,RDMA模式下Ceph存儲集群測試方法,包括:預先創建目標測試程序;其中,目標測試程序為包含信號處理函數的測試程序;信號處理函數為根據預設的對應關系創建的用于將接收到的信號轉換成相應被測參數的函數,預設的對應關系為預先確定的信號與被測參數之間的對應關系;向信號處理函數傳送第一信號,得到由信號處理函數輸出的第一被測參數,并利用第一被測參數,控制目標測試程序對Ceph存儲集群進行相應測試;在利用第一被測參數進行相應測試的過程中,若需要將目標測試程序中的被測參數由第一被測參數更改為第二被測參數,則根據上述對應關系,確定與第二被測參數對應的第二信號;向信號處理函數傳送第二信號,得到由信號處理函數輸出的與第二信號對應的被測參數,然后利用該被測參數,控制目標測試程序對Ceph存儲集群進行相應測試。
可見,本發明中的Ceph存儲集群測試方法是在RDMA模式下展開的,該方法中,在正式測試之前,預先創建了包含信號處理函數的目標測試程序,其中,上述信號處理函數可將接收到的信號轉換成相應被測參數的函數;在進行測試時,將會把相應的信號發送至上述信號處理函數,然后利用信號處理函數對接收到的信號進行轉化后得到的被測參數,控制目標測試程序對Ceph存儲集群展開相應的測試;而在利用某個被測參數進行相應測試的過程中,如果這時候需要更換被測參數,本發明只需向位于目標測試程序中的信號處理函數傳送相應的信號,便可實現對當前被測參數的更新,而無需重新啟動測試程序,從而便于測試出Ceph存儲集群的抗壓能力以及對壓力改變的敏感程度。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
圖1為本發明實施例公開的一種Ceph存儲集群測試方法流程圖;
圖2為本發明實施例公開的一種Ceph存儲集群測試系統結構示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
本發明實施例公開了一種RDMA模式下Ceph存儲集群測試方法,參見圖1所示,該方法包括:
步驟S11:預先創建目標測試程序;其中,上述目標測試程序為包含信號處理函數的測試程序;上述信號處理函數為根據預設的對應關系創建的用于將接收到的信號轉換成相應被測參數的函數,上述預設的對應關系為預先確定的信號與被測參數之間的對應關系。
需要說明的是,本實施例中的Ceph存儲集群測試方法是在RDMA模式(RDMA,即Remote Direct Memory Access)下展開的。本實施例在Ceph存儲集群中使用了基于accelio類庫的應用層xio封裝,這種應用層xio封裝對數據寫入頻率有要求。本實施例中,任一被測參數的參數類型均為時間參數。其次,上述目標測試程序具體可以為xio_client程序。
可以理解的是,本實施例是在正式對Ceph存儲集群展開測試之前,先創建出上述目標測試程序。如果在對Ceph存儲集群展開測試之前,上述目標測試程序已經創建完畢,則可以直接使用該目標測試程序即可。
本實施例中,不同的信號對應于不同的被測參數,當信號發生變化時,相應的被測參數也會隨著發生相應的變化。
步驟S12:向信號處理函數傳送第一信號,得到由信號處理函數輸出的第一被測參數,并利用第一被測參數,控制目標測試程序對Ceph存儲集群進行相應測試。
也即,本實施例在進入正式測試階段時,將會向位于上述目標測試程序的信號處理函數發送上述第一信號,其中,上述第一信號是指上述預設的對應關系中所記錄的所有信號中的任一信號。當位于上述目標測試程序的信號處理函數接收到上述第一信號之后,將會把該第一信號轉換成與第一信號對應的被測參數,也即得到上述第一被測參數,接著上述目標測試程序便可根據上述第一被測參數展開相應的測試。
步驟S13:在利用第一被測參數進行相應測試的過程中,若需要將目標測試程序中的被測參數由第一被測參數更改為第二被測參數,則根據上述對應關系,確定與第二被測參數對應的第二信號。
可以理解的是,上述第二信號是指上述預設的對應關系中所記錄的所有信號中的任一信號,并且與上述第一信號互異。
步驟S14:向信號處理函數傳送第二信號,得到由信號處理函數輸出的與第二信號對應的被測參數,然后利用該被測參數,控制目標測試程序對Ceph存儲集群進行相應測試。
也即,向位于上述目標測試程序中的信號處理函數發送上述第二信號,然后信號處理函數將會輸出與上述第二信號對應的被測參數,也即輸出上述第二被測參數,這樣,上述目標測試程序在沒有重啟的情況下,獲得了新的被測參數,然后根據這個新的被測參數對Ceph存儲集群進行相應測試。同理,如果在利用上述第二被測參數進行相應測試的過程中,若需要將目標測試程序中的被測參數由當前的第二被測參數更改為第三被測參數,則可以向上述目標測試程序中的信號處理函數傳送與上述第三被測參數對應的第三信號,以使目標測試程序在沒有重啟的情況下再次獲取到新的被測參數,從而不間斷地展開新的測試。
另外,需要說明的是,本實施例中,向信號處理函數傳送任一信號的過程,包括:利用kill命令、pkill命令或killall命令,向信號處理函數發送該信號。也即,本實施例具體可以利用kill命令、pkill命令或killall命令,向位于上述目標測試程序中的信號處理函數傳送信號。
可見,本發明實施例中的Ceph存儲集群測試方法是在RDMA模式下展開的,該方法中,在正式測試之前,預先創建了包含信號處理函數的目標測試程序,其中,上述信號處理函數可將接收到的信號轉換成相應被測參數的函數;在進行測試時,將會把相應的信號發送至上述信號處理函數,然后利用信號處理函數對接收到的信號進行轉化后得到的被測參數,控制目標測試程序對Ceph存儲集群展開相應的測試;而在利用某個被測參數進行相應測試的過程中,如果這時候需要更換被測參數,本發明實施例只需向位于目標測試程序中的信號處理函數傳送相應的信號,便可實現對當前被測參數的更新,而無需重新啟動測試程序,從而便于測試出Ceph存儲集群的抗壓能力以及對壓力改變的敏感程度。
本發明實施例公開了一種具體的RDMA模式下Ceph存儲集群測試方法,包括如下步驟:
步驟S21:預先創建目標測試程序;其中,上述目標測試程序為包含信號處理函數的測試程序;上述信號處理函數為根據預設的對應關系創建的用于將接收到的信號轉換成相應被測參數的函數,上述預設的對應關系為預先確定的信號與被測參數之間的對應關系。
步驟S22:確定本輪測試所對應的所有被測參數,得到被測參數集;
步驟S23:根據預設的對應關系,確定出與被測參數集中的每個被測參數對應的信號,得到相應的信號集;
步驟S24:將信號集中的每個信號依次傳送至信號處理函數,以依次啟動與每個信號對應的測試過程。
其中,啟動與任一個信號對應的測試過程,具體包括:將該信號傳送至位于上述目標測試程序的信號處理函數,從而得到信號處理函數輸出的相應被測參數,接著利用該被測參數,控制目標測試程序對Ceph存儲集群進行相應的測試。
另外,本實施例在目標測試程序對Ceph存儲集群進行的每次測試過程中,均還可以包括:
記錄相應的數據寫入速率、內存壓力以及CPU占用率,得到與本次測試對應的性能表現參數,然后利用本次測試對應的性能表現參數,確定出與本次測試對應的被測參數的性能指數。
進一步的,本實施例還可以包括:從本輪測試所對應的所有被測參數中篩選出性能指數最高的被測參數作為Ceph存儲集群的性能最優參數。
相應的,本發明實施例還公開了一種RDMA模式下Ceph存儲集群測試系統,參見圖2所示,該系統包括:
測試程序創建模塊11,用于預先創建目標測試程序;其中,目標測試程序為包含信號處理函數的測試程序;信號處理函數為根據預設的對應關系創建的用于將接收到的信號轉換成相應被測參數的函數,上述對應關系為預先確定的信號與被測參數之間的對應關系;
第一測試模塊12,用于向信號處理函數傳送第一信號,得到由信號處理函數輸出的第一被測參數,并利用第一被測參數,控制目標測試程序對Ceph存儲集群進行相應測試;
信號確定模塊13,用于在第一測試模塊利用第一被測參數進行相應測試的過程中,若需要將目標測試程序中的被測參數由第一被測參數更改為第二被測參數,則根據上述對應關系,確定與第二被測參數對應的第二信號;
第二測試模塊14,用于向信號處理函數傳送第二信號,得到由信號處理函數輸出的與第二信號對應的被測參數,然后利用該被測參數,控制目標測試程序對Ceph存儲集群進行相應測試。
本實施例中,任一被測參數的參數類型均為時間參數。
另外,本實施例還可以進一步包括參數集確定模塊、信號集確定模塊和壓力測試模塊;其中,
參數集確定模塊,用于確定本輪測試所對應的所有被測參數,得到被測參數集;
信號集確定模塊,用于根據對應關系,確定出與被測參數集中的每個被測參數對應的信號,得到相應的信號集;
壓力測試模塊,用于將信號集中的每個信號依次傳送至信號處理函數,以依次啟動與每個信號對應的測試過程。
其中,關于上述系統更加具體的工作過程可以參考前述實施例中公開的相應內容,在此不再進行贅述。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
以上對本發明所提供的一種RDMA模式下Ceph存儲集群測試方法及系統進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及其核心思想;同時,對于本領域的一般技術人員,依據本發明的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。