本發(fā)明涉及計算機技術領域,特別涉及一種自動化控制器、系統(tǒng)和跨節(jié)點訪問測試方法。
背景技術:
隨著計算機行業(yè)的快速發(fā)展,為了提高服務器的運行速率,常常將多個節(jié)點組成一個服務器,并將一個運行系統(tǒng)運行在該多個節(jié)點上,那么,對該多個節(jié)點組成的服務器的運行效率進行測試是研發(fā)過程中重要的一環(huán)。
目前,對于多節(jié)點組成的服務器的測試,主要是對服務器總體運行性能如訪問帶寬和訪問延遲等的測試,而不能對服務器內部跨節(jié)點訪問進行測試。
技術實現要素:
本發(fā)明實施例提供了一種自動化控制器、系統(tǒng)和跨節(jié)點訪問測試方法,能夠實現跨節(jié)點訪問測試。
一種自動化控制器,應用于服務器,包括:控制單元、測試單元及輸出單元,其中,
所述控制單元,用于接收到第一命令,根據所述第一命令,控制安裝外設的語言編譯器,并接收到第二命令,根據所述第二命令,控制外設的測試工具運行在所述外設的語言編譯器上;
所述測試單元,用于獲取各個外設節(jié)點的信息,根據每一個外設節(jié)點的信息,控制所述外設的測試工具測試各個外設節(jié)點交叉訪存;
所述輸出單元,用于設置結果存儲文件,將所述測試單元測試得到的交叉訪存結果以表格形成存儲到所述結果存儲文件中。
優(yōu)選地,上述自動化控制器,進一步包括:設置單元,其中,
所述設置單元,用于確定外設節(jié)點個數,根據所述外設節(jié)點個數,設置測試次數;
所述測試單元,用于控制所述外設的測試工具執(zhí)行所述設置單元設置的測試次數。
優(yōu)選地,所述測試單元,用于控制stream工具測試每一個外設節(jié)點訪問其他各個外設節(jié)點時,采集每一個外設節(jié)點中CPU和內存中的訪問帶寬和訪問延遲;
所述輸出單元,進一步用于對所述測試單元采集的訪問帶寬和訪問延遲進行格式化,輸出格式化后的訪問帶寬和訪問延遲。
優(yōu)選地,上述自動化控制器,進一步包括:解壓單元,其中,
所述解壓單元,用于接收外設的測試工具的壓縮包,并對所述壓縮包進行解壓;
所述控制單元,用于根據所述第二命令,控制解壓后的外設的測試工具運行在所述外設的語言編譯器上。
優(yōu)選地,
所述第一命令,包括:expect命令;
所述第二命令,包括:numa命令。
一種自動化控制系統(tǒng),應用于服務器,包括:上述任一所述的自動化控制器、測試工具、語言編譯器及各個節(jié)點,其中,
所述測試工具,用于接收所述自動化控制器的控制,運行在所述語言編譯器上,測試各個節(jié)點交叉訪存;
所述語言編譯器,用于承載所述測試工具,順序運行在所述各個節(jié)點上。
優(yōu)選地,所述測試工具,包括:stream工具。
一種跨節(jié)點訪問測試方法,應用于具有至少兩個節(jié)點的服務器,包括:
接收到第一命令,根據所述第一命令,控制安裝語言編譯器;
接收到第二命令,根據所述第二命令,控制測試工具運行在所述語言編譯器上;
獲取服務器中各個節(jié)點的信息,根據每一個節(jié)點的信息,控制所述測試工具測試各個外設節(jié)點交叉訪存;
將交叉訪存結果以表格形成存儲到預設的結果存儲文件中。
優(yōu)選地,上述方法進一步包括:確定節(jié)點個數,根據所述節(jié)點個數,設置測試次數;
所述控制所述測試工具測試各個外設節(jié)點交叉訪存,包括:控制所述測試工具執(zhí)行所述測試次數,進行測試各個外設節(jié)點交叉訪存。
優(yōu)選地,所述控制所述測試工具測試各個外設節(jié)點交叉訪存,包括:控制所述測試工具測試每一個節(jié)點訪問其他各個外設節(jié)點時,采集每一個節(jié)點中CPU和內存中的訪問帶寬和訪問延遲;
所述將交叉訪存結果以表格形成存儲到預設的結果存儲文件中,包括:對采集的訪問帶寬和訪問延遲進行格式化,輸出格式化后的訪問帶寬和訪問延遲。
優(yōu)選地,上述方法進一步包括:接收測試工具的壓縮包,并對所述壓縮包進行解壓;
所述控制測試工具運行在所述語言編譯器上,包括:控制解壓后的測試工具運行在所述語言編譯器上。
優(yōu)選地,
所述第一命令,包括:expect命令;
所述第二命令,包括:numa命令;
優(yōu)選地,
所述測試工具,包括:stream工具。
本發(fā)明實施例提供了一種自動化控制器、系統(tǒng)和跨節(jié)點訪問測試方法,該自動化控制器應用于服務器,通過控制單元接收到第一命令,根據第一命令,控制安裝外設的語言編譯器,并接收到第二命令,根據第二命令,控制外設的測試工具運行在外設的語言編譯器上,通過該過程實現了測試工具的運行,通過測試單元獲取各個外設節(jié)點的信息,根據每一個外設節(jié)點的信息,控制外設的測試工具測試各個外設節(jié)點交叉訪存,通過輸出單元設置結果存儲文件,將測試單元測試得到的交叉訪存結果以表格形成存儲到結果存儲文件中,通過自動化控制器中的測試單元能夠控制測試工具測試測試每個外設節(jié)點交叉訪存,從而實現跨節(jié)點訪問測試。
附圖說明
為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發(fā)明一個實施例提供的一種自動化控制器的結構示意圖;
圖2是本發(fā)明另一個實施例提供的一種自動化控制器的結構示意圖;
圖3是本發(fā)明又一個實施例提供的一種自動化控制器的結構示意圖;
圖4是本發(fā)明一個實施例提供的一種自動化控制系統(tǒng)的結構示意圖;
圖5是本發(fā)明一個實施例提供的一種跨節(jié)點訪問測試方法的流程圖;
圖6是本發(fā)明另一個實施例提供的一種跨節(jié)點訪問測試方法的流程圖。
具體實施方式
為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例,基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
如圖1所示,本發(fā)明實施例提供一種自動化控制器,應用于服務器,包括:控制單元101、測試單元102及輸出單元103,其中,
所述控制單元101,用于接收到第一命令,根據所述第一命令,控制安裝外設的語言編譯器,并接收到第二命令,根據所述第二命令,控制外設的測試工具運行在所述外設的語言編譯器上,并觸發(fā)所述測試單元;
所述測試單元102,用于接收所述控制單元101的觸發(fā),獲取各個外設節(jié)點的信息,根據每一個外設節(jié)點的信息,控制所述外設的測試工具測試各個外設節(jié)點交叉訪存;
所述輸出單元103,用于設置結果存儲文件,將所述測試單元102測試得到的交叉訪存結果以表格形成存儲到所述結果存儲文件中。
在圖1所示的實施例中,通過控制單元接收到第一命令,根據第一命令,控制安裝外設的語言編譯器,并接收到第二命令,根據第二命令,控制外設的測試工具運行在外設的語言編譯器上,通過該過程實現了測試工具的運行,通過測試單元獲取各個外設節(jié)點的信息,根據每一個外設節(jié)點的信息,控制外設的測試工具測試各個外設節(jié)點交叉訪存,通過輸出單元設置結果存儲文件,將測試單元測試得到的交叉訪存結果以表格形成存儲到結果存儲文件中,通過自動化控制器中的測試單元能夠控制測試工具測試測試每個外設節(jié)點交叉訪存,從而實現跨節(jié)點訪問測試。
如圖2所示,在本發(fā)明另一實施例中,上述自動化控制器,進一步包括:設置單元201,其中,
所述設置單元201,用于確定外設節(jié)點個數,根據所述外設節(jié)點個數,設置測試次數;
所述測試單元102,用于控制所述外設的測試工具執(zhí)行所述設置單元201設置的測試次數。
在本發(fā)明又一實施例中,所述測試單元102,用于控制stream工具測試每一個外設節(jié)點訪問其他各個外設節(jié)點時,采集每一個外設節(jié)點中CPU和內存中的訪問帶寬和訪問延遲;
所述輸出單元103,進一步用于對所述測試單元102采集的訪問帶寬和訪問延遲進行格式化,輸出格式化后的訪問帶寬和訪問延遲。
如圖3所示,在本發(fā)明另一實施例中,上述自動化控制器,進一步包括:解壓單元301,其中,
所述解壓單元301,用于接收外設的測試工具的壓縮包,并對所述壓縮包進行解壓;
所述控制單元101,用于根據所述第二命令,控制解壓后的外設的測試工具運行在所述外設的語言編譯器上。
在本發(fā)明另一實施例中,所述第一命令,包括:expect命令;
所述第二命令,包括:numa命令。
上述裝置內的各單元之間的信息交互、執(zhí)行過程等內容,由于與本發(fā)明方法實施例基于同一構思,具體內容可參見本發(fā)明方法實施例中的敘述,此處不再贅述。
如圖4所示,本發(fā)明實施例提供一種自動化控制系統(tǒng),應用于服務器,包括:上述任一所述的自動化控制器401、測試工具402、語言編譯器403及各個節(jié)點404,其中,
所述測試工具402,用于接收所述自動化控制器401的控制,運行在所述語言編譯器403上,測試各個節(jié)點404交叉訪存;
所述語言編譯器403,用于承載所述測試工具402,順序運行在所述各個節(jié)點404上。
在本發(fā)明另一實施例中,所述測試工具,包括:stream工具。
如圖5所示,本發(fā)明實施例提供了一種跨節(jié)點訪問測試方法,應用于具有至少兩個節(jié)點的服務器,該方法可以包括以下步驟:
步驟501:接收到第一命令,根據所述第一命令,控制安裝語言編譯器;
步驟502:接收到第二命令,根據所述第二命令,控制測試工具運行在所述語言編譯器上;
步驟503:獲取服務器中各個節(jié)點的信息,根據每一個節(jié)點的信息,控制所述測試工具測試各個外設節(jié)點交叉訪存;
步驟504:將交叉訪存結果以表格形成存儲到預設的結果存儲文件中。
在本發(fā)明一個實施例中,為了能夠保證交叉訪存的完整性,上述方法進一步包括:確定節(jié)點個數,根據所述節(jié)點個數,設置測試次數;步驟503的具體實施方式,包括:控制所述測試工具執(zhí)行所述測試次數,進行測試各個外設節(jié)點交叉訪存。例如:節(jié)點個數為3個,則可將測試次數設置為3次,即節(jié)點1和節(jié)點2之間一次,節(jié)點2和節(jié)點3之間1次,節(jié)點1和節(jié)點3之間1次,從而對每兩個節(jié)點間的訪存進行了測試。
在本發(fā)明一個實施例中,步驟503的具體實施方式,包括:控制所述測試工具測試每一個節(jié)點訪問其他各個外設節(jié)點時,采集每一個節(jié)點中CPU和內存中的訪問帶寬和訪問延遲;步驟504的具體實施方式,包括:對采集的訪問帶寬和訪問延遲進行格式化,輸出格式化后的訪問帶寬和訪問延遲。
在本發(fā)明一個實施例中,為了進一步實現自動化,上述方法進一步包括:接收測試工具的壓縮包,并對所述壓縮包進行解壓;步驟502的具體實施方式,包括:控制解壓后的測試工具運行在所述語言編譯器上。
在本發(fā)明一個實施例中,所述第一命令,包括:expect命令;所述第二命令,包括:numa命令;使測試過程操作簡便。
在本發(fā)明一個實施例中,所述測試工具,包括:stream工具。
如圖6所示,本發(fā)明另一實施例提供了一種跨節(jié)點訪問測試方法,應用于具有至少兩個節(jié)點的服務器,該方法可以包括以下步驟:
步驟601:接收stream工具的壓縮包,并對所述壓縮包進行解壓;
在該步驟中,實現了解壓自動化,另外,在該步驟中可以搭建系統(tǒng)測試環(huán)境,如安裝K-UX操作系統(tǒng)等,并通過將測試工具壓縮包Stream.zip和上述自動化控制器的壓縮包l_ccompxe_intel64_2013.5.192.tgz導入K-UX系統(tǒng)下,并通過#tar zxvf Stream.zip和#tar zxvf l_ccompxe_intel64_2013.5.192.tgz過程實現智能的對測試工具壓縮包和自動化控制器的壓縮包的解壓。
步驟602:接收到expect命令,根據所述expect命令,控制安裝語言編譯器;
該步驟的實現過程可以通過在上述自動化控制器中設置下述代碼實現:
expect<<-END
spawn/opt/l_ccompxe_intel64_2013.2.146/install.sh
sleep 30
#Press Enter key to continue or q to quit:enter
expect"DONTCARE"
send"\r"
#--More Press space to continue q to quit:q
expect"DONTCARE"
send"q"
#Type accept to continue or decline to back to the previous menu:accept
expect"DONTCARE"
send"accept\r"
#Please type a selection or press enter to accept default choice[1]:2
expect"DONTCARE"
send"2\r"
#Please type a selection or press"enter"to accept default choice[1]:2
#expect"DONTCARE"
#send"2\r"
#sleep 10
#Please type the full path to your licensefile(s):/opt/l_ccompxe_intel64_2013.2.146
#expect"DONTCARE"
#send"/opt/l_ccompxe_intel64_2013.2.146\r"
#sleep 10
#Press Enter key to continue:enter
expect"DONTCARE"
send"\r"
sleep 10
#Please type a selection:1
expect"DONTCARE"
send"1\r"
sleep 10
#Please type a selection or press enter to accept default choice[1]:1
expect"DONTCARE"
send"1\r"
sleep 60
#Please type a selection or press enter to accept default choice[q]:enter
expect"DONTCARE"
send"\r"
sleep 1
expect"DONECARE"
send"\r"
expect eof
exit
END。
步驟603:接收到numa命令,根據所述numa命令,控制解壓后的stream工具運行在所述語言編譯器上;
步驟604:確定節(jié)點個數,根據所述節(jié)點個數,設置測試次數;
該確定節(jié)點個數的過程為:
nodenum=$(numactl--show|grep cpubind|awk'{print NF-2}'|awk'NR==2{print$1}
')
設置測試次數的過程:
read-p"Please input number:"num
workfile=/home/Stream
resultfile=/home/streamresults
echo$num
即該測試次數可以跟節(jié)點個數相關,也可以是用戶任意設定的。
步驟605:獲取服務器中各個節(jié)點的信息;
步驟606:根據每一個節(jié)點的信息,控制所述stream工具執(zhí)行所述測試次數,進行測試各個外設節(jié)點交叉訪存;
該步驟主要是,控制所述stream工具測試每一個節(jié)點訪問其他各個外設節(jié)點時,采集每一個節(jié)點中CPU和內存中的訪問帶寬和訪問延遲;
該步驟可以通過下述程序實現:
步驟607:對采集的訪問帶寬和訪問延遲進行格式化,輸出格式化后的訪問帶寬和訪問延遲。
該步驟具體實現代碼可以為:
另外,可以通過下述程序,將運行結果格式化輸出到屏幕上:
根據上述方案,本發(fā)明的各實施例,至少具有如下有益效果:
1.通過控制單元接收到第一命令,根據第一命令,控制安裝外設的語言編譯器,并接收到第二命令,根據第二命令,控制外設的測試工具運行在外設的語言編譯器上,通過該過程實現了測試工具的運行,通過測試單元獲取各個外設節(jié)點的信息,根據每一個外設節(jié)點的信息,控制外設的測試工具測試各個外設節(jié)點交叉訪存,通過輸出單元設置結果存儲文件,將測試單元測試得到的交叉訪存結果以表格形成存儲到結果存儲文件中,通過自動化控制器中的測試單元能夠控制測試工具測試測試每個外設節(jié)點交叉訪存,從而實現跨節(jié)點訪問測試。
2.通過控制stream工具測試每一個外設節(jié)點訪問其他各個外設節(jié)點時,采集每一個外設節(jié)點中CPU和內存中的訪問帶寬和訪問延遲;對所述測試單元采集的訪問帶寬和訪問延遲進行格式化,輸出格式化后的訪問帶寬和訪問延遲,使得各個節(jié)點間的訪問帶寬和訪問延遲能夠被獲得,同時,通過格式化,避免輸出結果出現亂碼,使用戶能夠準確的獲知測試結果。
3.通過解壓單元接收外設的測試工具的壓縮包,并對所述壓縮包進行解壓;并通過控制單元根據所述第二命令,控制解壓后的外設的測試工具運行在所述外設的語言編譯器上,使得從解壓過程到測試過程均實現自動化。
4.由于本發(fā)明實施例實現對各個節(jié)點交叉訪問的每個節(jié)點的訪問帶寬和訪問延遲進行測試,并為用戶提供該測試結果,從而使用戶能夠更加準確的判定該服務器是否合格,保證測試的準確性。
需要說明的是,在本文中,諸如第一和第二之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個······”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同因素。
本領域普通技術人員可以理解:實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲在計算機可讀取的存儲介質中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質中。
最后需要說明的是:以上所述僅為本發(fā)明的較佳實施例,僅用于說明本發(fā)明的技術方案,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內所做的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內。