TW201821991A - 透過核心程式在通訊埠上進行壓力測試之系統及其方法 - Google Patents
透過核心程式在通訊埠上進行壓力測試之系統及其方法 Download PDFInfo
- Publication number
- TW201821991A TW201821991A TW105141288A TW105141288A TW201821991A TW 201821991 A TW201821991 A TW 201821991A TW 105141288 A TW105141288 A TW 105141288A TW 105141288 A TW105141288 A TW 105141288A TW 201821991 A TW201821991 A TW 201821991A
- Authority
- TW
- Taiwan
- Prior art keywords
- test
- network card
- program
- processor
- port
- Prior art date
Links
Abstract
一種透過核心程式在通訊埠上進行壓力測試之系統及其方法,其透過設定與連接埠對應之發送參數後,依據發送參數在處理器上建立測試程序,使處理器依據發送參數透過執行於電腦中之核心程式使用網路卡之驅動程式在連接埠上收發測試封包之技術手段,可以產生足夠大量之資料流以對網路卡進行壓力測試,並達成可以直接對安裝有不同網路卡之網路裝置上進行測試的技術功效。
Description
一種壓力測試之系統及其方法,特別係指一種透過核心程式在通訊埠上進行壓力測試之系統及其方法。
為了確認網路服務的效能以及確保網路服務的穩定性,在網路伺服器上線之前,通常需要對網路伺服器的網路卡進行壓力測試。
常見對網路卡進行壓力測試的方式為傳送或接收檔案,但此一方式往往受限於傳送與接收檔案的兩端讀寫資料的速度,也就是傳送檔案的網路裝置由硬碟中讀取檔案的速度或接收檔案的網路裝置將檔案寫入硬碟中的速度通常會影響壓力測試的結果。
為了解決資料傳送速度受限於硬碟讀寫瓶頸的問題,目前也有直接對應用層操作以產生大量封包並傳送的解決方案。但目前直接對應用層操作而產生封包的方式中,資料需要由應用層(第七層)逐層向底層的實體層(第一層)傳遞而被封裝為完整封包後,才會被傳遞,這需要使用處理器來進行封裝,因此,這樣的解決方案並沒有辦法產生足夠大量的資料流來進行壓力測試。
綜上所述,可知先前技術中長期以來一直存在無法在網路卡上產生足夠大量之資料流以進行壓力測試的問題,因此有必要提出改進的技術手段,來解決此一問題。
有鑒於先前技術存在無法在網路卡上產生足夠大量之資料流以進行壓力測試的問題,本發明遂揭露一種透過核心程式在通訊埠上進行壓力測試之系統及其方法,其中:
本發明所揭露之透過核心程式在通訊埠上進行壓力測試之系統,應用於電腦上,該電腦安裝有處理器及網路卡,該系統至少包含:環境調整模組,用以修改網路卡之連接埠之最大封包尺寸為最大值;網卡服務模組,用以取得網路卡之網卡資訊;參數設定模組,用以設定與連接埠對應之發送參數;程序處理模組,用以依據發送參數於處理器上建立測試程序,使處理器依據發送參數透過執行於電腦中之核心程式使用網路卡之驅動程式在連接埠收發測試封包,藉以對網路卡進行壓力測試。
本發明所揭露之透過核心程式在通訊埠上進行壓力測試之方法,應用於電腦上,該電腦安裝有處理器及網路卡,其步驟至少包括:修改網路卡之連接埠之最大封包尺寸為最大值;取得網路卡之網卡資訊;設定與連接埠對應之發送參數;依據發送參數於處理器上建立測試程序,使處理器依據發送參數透過執行於電腦中之核心程式使用網路卡之驅動程式在連接埠收發測試封包,藉以對網路卡進行壓力測試。
本發明所揭露之系統與方法如上,與先前技術之間的差異在於本發明透過設定與連接埠對應之發送參數後,依據發送參數在處理器上建立測試程序,使處理器依據發送參數透過執行於電腦中之核心程式使用網路卡之驅動程式在連接埠上收發測試封包,藉以解決先前技術所存在的問題,並可以達成在安裝有不同網路卡之網路裝置上直接進行測試的技術功效。
以下將配合圖式及實施例來詳細說明本發明之特徵與實施方式,內容足以使任何熟習相關技藝者能夠輕易地充分理解本發明解決技術問題所應用的技術手段並據以實施,藉此實現本發明可達成的功效。
本發明可以設定與網路卡上之各個連接埠相對應的發送參數,並依據發送參數在處理器上建立測試程序,使得處理器執行測試程序後,測試程序可以依據被設定的發送參數透過核心程式(kenrel)使用網路卡的驅動程式直接發送預先建立的測試封包,藉以對網路卡產生足夠大的壓力來測試網路卡。
以下先以「第1圖」本發明所提之透過核心程式在通訊埠上進行壓力測試之系統架構圖來說明本發明的系統運作。如「第1圖」所示,本發明之系統含有環境調整模組110、網卡服務模組120、參數設定模組130、以及程序處理模組150。
環境調整模組110負責將執行本發明之電腦100中被定義的連接埠之最大封包尺寸修改為最大值。其中,環境調整模組110所修改之最大封包尺寸通常為執行於電腦100中之作業系統所定義的系統參數105,用來表示安裝於電腦100上之網路卡410的連接埠可以傳送乙太網路封包之大小。另外,表示最大封包尺寸的參數名稱隨著執行於電腦100中之作業系統不同而有所不同,例如,表示最大封包尺寸的參數名稱可能是「MaxFrameSize」、「JumboMTU」、「JumboPacket」等,但本發明並不以此為限。
網卡服務模組120負責取得安裝於電腦100上之網路卡410的網卡資訊。一般而言,網卡服務模組120可以搜尋執行於電腦100中之作業系統的系統參數105,藉以取得安裝於電腦100中之所有網路卡410,以及安裝於電腦100中之所有網路卡410的網卡資訊。
在部分的實施例中,網卡服務模組120可以鎖定所取得的一個或多個網路卡410,使被鎖定的網路卡410成為本發明的獨佔資源,無法被本發明之外的其他程序所使用。
另外,網卡服務模組120也可以關閉(disable)連接埠後再重新啟動(enable)被關閉的連接埠,使得參數設定模組130所設定之與連接埠對應的發送參數可以發生作用。
參數設定模組130負責設定發送參數。參數設定模組130所設定的發送參數可以與網卡服務模組120所搜尋到之網路卡520上的連接埠相對應,例如連接埠與處理器的對應關係、連接埠間的連接關係、尋址方式、封包大小、測試程序同時間所發送之封包的最大值(在本發明中也以「最大封包發送數量」表示)等。一般而言,參數設定模組130可以透過應用層的命令介面來設定各個連接埠的發送參數。參數設定模組130所設定的發送參數也可能與網路卡及/或處理器有關,例如處理器對同一網路卡執行的測試程序數量等,但本發明所提之發送參數並不以上設為限。
其中,參數設定模組130所設定之連接埠間的連接關係,隨著電腦100的不同或是測試目的的不同而有單連接埠的迴路(loopback)測試以及多連接埠的測試兩種。在單連接埠的迴路測試中,被測連接埠與一個測試工具連接,使得被測連接埠所傳送的測試封包可以通過測試工具被傳回被測連接埠,也就是說,在單連接埠的迴路測試中,參數設定模組130設定被測連接埠與被測連接埠相連接。而在多連接埠的測試中,被測的不同連接埠可以透過網路線連接,參數設定模組130可以記錄兩兩配對連接的連接埠。
程序處理模組150負責依據參數設定模組130所設定之發送參數在安裝於電腦100之處理器420上建立測試程序300,使處理器420可以依據參數設定模組130所設定的發送參數透過作業系統的核心程式使用網路卡410之驅動程式在網路卡410的連接埠上收發測試封包,藉以對網路卡410進行壓力測試。例如,程序處理模組150所建立的測試程序300可以符合網路驅動程式介面規範(Network Driver Interface Specification, NDIS),藉以透過核心程式(kernel)指定服務網路卡410的處理器420以及指定由服務網路卡410之處理器420來執行自身(測試程序300)。其中,網路驅動程式介面規範橫跨傳輸層、網路層和資料連結層,且定義了網卡驅動程式與上層協定驅動程式間之通信的介面規範,讓底層硬體的不同架構可以被忽略,使上層協定的驅動程式可以和底層任何型號的網路卡通訊。
在部分的實施例中,程序處理模組150所建立的測試程序300可以鈎上(hook)安裝於電腦100上之網路卡410之驅動程式的封包發送函數,並使用所鈎上的封包發送函數發送預先產生的測試封包,如此,測試程序300預先產生的測試封包將不需要經過任何通訊協定的處理,而直接被測試程序不斷發送。
在部分的實施例中,程序處理模組150可以延遲在安裝於電腦100之處理器420上建立測試程序300的時間,使得被網卡服務模組120關閉的連接埠在被重新啟動後可以被指定由執行測試程序300的處理器420給服務。
接著以一個實施例來解說本發明的運作系統與方法,並請參照「第2圖」本發明所提之透過核心程式在通訊埠上進行壓力測試之方法流程圖。
在使用者使用本發明對安裝於電腦100上的網路卡410進行壓力測試時,首先需要修改網路卡410之連接埠的最大封包尺寸為最大值(步驟210)。在本實施例中,假設環境調整模組110可以提供使用者在電腦100所執行之作業系統的註冊表(Registry)(系統參數105)中找到名稱為「MaxFrameSize」的參數,並提供使用者將名稱為「MaxFrameSize」的參數修改為可以被安裝於電腦100上之網路卡410接受的最大封包尺寸,例如「1500」。
在安裝於電腦100上之網路卡之連接埠的最大封包尺寸被修改為最大值後,網卡服務模組120可以取得安裝於電腦100上之網路卡410的網卡資訊(步驟220)。在本實施例中,假設網卡服務模組120可以由電腦100所執行之作業系統的註冊表(系統參數105)中的特定位置找到安裝於電腦100上之所有網路卡410的網卡資訊。
在網卡服務模組120取得網路卡410的網卡資訊(步驟220)後,參數設定模組130可以設定與網卡服務模組120所搜尋到之各個網路卡410之連接埠相對應的發送參數(步驟230)。在本實施例中,假設參數設定模組130除了自動設定尋址方式、封包大小、測試程序之同時最大封包發送數量、處理器對網路卡執行之測試程序數量等項目之外,也提供使用者設定連接埠與處理器的對應關係以及各個連接埠之間的連接關係。
在參數設定模組130設定與網卡服務模組120所搜尋到之各個網路卡410的連接埠相對應的發送參數(步驟230)後,網卡服務模組120可以鎖定使用者欲測試的網路卡410(步驟240)。在本實施例中,假設網卡服務模組120符合網路驅動程式介面規範,如此,網卡服務模組120可以依據參數設定模組130提供使用者設定的連接埠與處理器的對應關係及/或連接埠之間的連接關係判斷使用者欲測試的網路卡410,也就是將具有被設定為與處理器對應之連接埠的網路卡判斷為使用者欲測試的網路卡410,或是將具有被設定有連接關係之連接埠的網路卡判斷為使用者欲測試的網路卡410,之後,網卡服務模組120可以使用網路驅動程式介面規範所提供之旋轉鎖的功能將使用者欲測試的網路卡410鎖定。
同樣在參數設定模組130設定與網卡服務模組120所搜尋到之各個網路卡410的連接埠相對應的發送參數(步驟230)後,程序處理模組150可以依據發送參數於處理器420上建立測試程序,使處理器420依據與網路卡410對應之發送參數透過核心程式(kenrel)使用網路卡410之驅動程式在網路卡410的連接埠上收發測試封包,藉以對網路卡410進行壓力測試(步驟270)。在本實施例中,假設電腦100上安裝有三張網路卡與五個處理器,其中一張網路卡有兩個連接埠(A、B),另外兩張網路卡各只有一個連接埠(C、D)。若參數設定模組130設定連接埠A與連接埠C相連,連接埠A與連接埠C相連。同時,由連接埠A到連接埠C的資料由第一處理器服務、由連接埠C到連接埠A的資料由第二處理器服務;且由連接埠B到連接埠D的資料由第三處理器服務、由連接埠D到連接埠B的資料由第四處理器服務。
程序處理模組150可以先建立符合網路驅動程式介面規範的四個測試程序300,在各個測試程序300被任何一個處理器420執行後,測試程序300可以先初始化,也就是透過「KAFFINITY」的變數連結自身與特定的處理器420,以及配置可以被自身使用的記憶體。如此,透過參數設定模組130提供使用者設定之處理器420與網路卡410的對應關係,測試程序300將可以與特定的網路卡410對應。例如,當第一測試程序連結第一處理器、第二測試程序連結第二處理器、第三測試程序連結第三處理器、第四測試程序連結第四處理器時,第一測試程序可以與由第一處理器所服務之連接埠A到連接埠C的連接對應、第二測試程序可以與由第二處理器所服務之連接埠C到連接埠A的連接對應、第三測試程序可以與由第三處理器所服務之連接埠B到連接埠D的連接對應、第四測試程序可以與由第四處理器所服務之連接埠D到連接埠B的連接對應。
在測試程序300完成初始化後,測試程序300可以休眠,藉以等待所指定的處理器420呼叫。一旦開始進行測試,四個測試程序300將分別被第一至第四處理器呼叫並執行。在測試程序被處理器420執行時,測試程序300將可以先產生測試封包,再透過核心程式鈎上(hook)安裝於電腦100上之網路卡410之驅動程式的封包發送函數,並使用所鈎上的封包發送函數持續發送預先產生的測試封包,藉以直接在網路卡的通訊埠上產生大量的資料流,進而對網路卡進行壓力測試,直到測試時間結束後,測試程序300將會被停止執行,使得測試程序300再次進入休眠,等待下一次被呼叫。
如此,在本發明對網路卡進行壓力測試時,測試程序300將可以透過核心程式直接在網路卡的通訊埠上發送測試封包,造成足夠大量的資料流來對網路卡進行可靠的壓力測試。
上述的實施例中,在參數設定模組130設定與網卡服務模組120所搜尋到之各個網路卡的連接埠相對應的發送參數(步驟230)後,網卡服務模組120可以關閉連接埠後再重新啟動被關閉的連接埠(步驟260),使得參數設定模組130所設定的發送參數可以在被重新啟動的連接埠上發生作用。在本實施例中,網卡服務模組120可以依據參數設定模組130提供使用者設定的連接埠與處理器的對應關係及/或連接埠之間的連接關係判斷需要關閉再重新啟動的連接埠,也就是說,網卡服務模組120可以將被設定為與處理器對應之連接埠關閉後再重新啟動,及/或將被設定有連接關係之連接埠關閉後再重新啟動。
綜上所述,可知本發明與先前技術之間的差異在於具有設定與連接埠對應之發送參數後,依據發送參數在處理器上建立測試程序,使處理器依據發送參數透過執行於電腦中之核心程式使用網路卡之驅動程式在連接埠上收發測試封包之技術手段,藉由此一技術手段可以解決先前技術所存在無法在網路卡上產生足夠大量之資料流以對網路卡進行壓力測試的問題,進而達成在安裝不同網路卡之網路裝置上直接進行測試的技術功效。
再者,本發明之透過核心程式在通訊埠上進行壓力測試之方法,可實現於硬體、軟體或硬體與軟體之組合中,亦可在電腦系統中以集中方式實現或以不同元件散佈於若干互連之電腦系統的分散方式實現。
雖然本發明所揭露之實施方式如上,惟所述之內容並非用以直接限定本發明之專利保護範圍。任何本發明所屬技術領域中具有通常知識者,在不脫離本發明所揭露之精神和範圍的前提下,對本發明之實施的形式上及細節上作些許之更動潤飾,均屬於本發明之專利保護範圍。本發明之專利保護範圍,仍須以所附之申請專利範圍所界定者為準。
100‧‧‧電腦
105‧‧‧系統參數
110‧‧‧環境調整模組
120‧‧‧網卡服務模組
130‧‧‧參數設定模組
150‧‧‧程序處理模組
300‧‧‧測試程序
410‧‧‧網路卡
420‧‧‧處理器
步驟210‧‧‧修改網路卡之連接埠之最大封包尺寸為最大值
步驟220‧‧‧取得網路卡之網卡資訊
步驟230‧‧‧設定與各連接埠對應之發送參數
步驟240‧‧‧鎖定網路卡
步驟260‧‧‧關閉連接埠後再重新啟動連接埠
步驟270‧‧‧依據發送參數於處理器上建立測試程序,使處理器依據發送參數透過核心程式使用網路卡之驅動程式在連接埠收發測試封包,藉以對網路卡進行壓力測試
第1圖為本發明所提之透過核心程式在通訊埠上進行壓力測試之系統架構圖。 第2圖為本發明所提之透過核心程式在通訊埠上進行壓力測試之方法流程圖。
Claims (10)
- 一種透過核心程式在通訊埠上進行壓力測試之方法,係應用於一電腦上,該電腦安裝有至少一處理器及至少一網路卡,該方法至少包含下列步驟: 修改該些網路卡之各連接埠之最大封包尺寸為最大值; 取得該些網路卡之網卡資訊; 設定與各該連接埠對應之各發送參數;及 依據各該發送參數於一該處理器上建立至少一測試程序,使各該處理器依據各該發送參數透過執行於該電腦中之一核心程式使用各該網路卡之驅動程式在各該連接埠收發測試封包,藉以對各該網路卡進行壓力測試。
- 如申請專利範圍第1項所述之透過核心程式在通訊埠上進行壓力測試之方法,其中設定與各該網路卡對應之發送參數之步驟包含定義與各該連接埠對應之各處理器、設定各該連接埠間之連接關係、設定尋址方式、設定封包大小、設定測試程序之同時最大封包發送數量、設定各該處理器對一該網路卡執行之測試程序數量。
- 如申請專利範圍第1項所述之透過核心程式在通訊埠上進行壓力測試之方法,其中各該處理器依據各該發送參數使用各該連接埠收發測試封包之步驟,更包含該處理器呼叫各該測試程序之步驟。
- 如申請專利範圍第1項所述之透過核心程式在通訊埠上進行壓力測試之方法,其中該方法於設定與各該網路卡上之各該連接埠對應之各該發送參數之步驟後,更包含關閉各該連接埠後再重新啟動各該連接埠之步驟。
- 如申請專利範圍第1項所述之透過核心程式在通訊埠上進行壓力測試之方法,其中各該處理器依據各該發送參數透過核心程式使用各該網路卡之驅動程式在各該連接埠收發測試封包之步驟更包含各該處理器執行各該測試程序,使各該測試程序透過該核心程式鈎上各該網路卡之驅動程式之一封包發送函數,並使用該封包發送函數發送預先產生之測試封包之步驟。
- 一種透過核心程式在通訊埠上進行壓力測試之系統,係應用於一電腦上,該電腦安裝有至少一處理器及至少一網路卡,該系統至少包含: 一環境調整模組,用以修改該些網路卡之各連接埠之最大封包尺寸為最大值; 一網卡服務模組,用以取得該些網路卡之網卡資訊; 一參數設定模組,用以設定與各該連接埠對應之各發送參數;及 一程序處理模組,用以依據各該發送參數於一該處理器上建立至少一測試程序,使各該處理器依據各該發送參數透過執行於該電腦中之一核心程式使用各該網路卡之驅動程式在各該連接埠收發測試封包,藉以對各該網路卡進行壓力測試。
- 如申請專利範圍第6項所述之透過核心程式在通訊埠上進行壓力測試之系統,其中與各該網路卡對應之各該發送參數包含各該連接埠與各該處理器之對應關係、各該連接埠間之連接關係、尋址方式、封包大小、測試程序之同時最大封包發送數量、各該處理器對一該網路卡執行之測試程序數量。
- 如申請專利範圍第6項所述之透過核心程式在通訊埠上進行壓力測試之系統,其中該網卡服務模組更用以鎖定各該網路卡。
- 如申請專利範圍第6項所述之透過核心程式在通訊埠上進行壓力測試之系統,其中該網卡服務模組更用以關閉各該連接埠後再重新啟動各該連接埠。
- 如申請專利範圍第6項所述之透過核心程式在通訊埠上進行壓力測試之系統,其中各該測試程序是透過該核心程式鈎上各該網路卡之驅動程式之封包發送函數一封包發送函數,並使用該封包發送函數發送預先產生之測試封包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105141288A TW201821991A (zh) | 2016-12-13 | 2016-12-13 | 透過核心程式在通訊埠上進行壓力測試之系統及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105141288A TW201821991A (zh) | 2016-12-13 | 2016-12-13 | 透過核心程式在通訊埠上進行壓力測試之系統及其方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201821991A true TW201821991A (zh) | 2018-06-16 |
Family
ID=63258412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105141288A TW201821991A (zh) | 2016-12-13 | 2016-12-13 | 透過核心程式在通訊埠上進行壓力測試之系統及其方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TW201821991A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309529A (zh) * | 2018-12-11 | 2020-06-19 | 英业达科技有限公司 | 依处理器信息完整测试处理器内通信链路的系统及方法 |
-
2016
- 2016-12-13 TW TW105141288A patent/TW201821991A/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309529A (zh) * | 2018-12-11 | 2020-06-19 | 英业达科技有限公司 | 依处理器信息完整测试处理器内通信链路的系统及方法 |
CN111309529B (zh) * | 2018-12-11 | 2022-04-19 | 英业达科技有限公司 | 依处理器信息完整测试处理器内通信链路的系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10698717B2 (en) | Accelerator virtualization method and apparatus, and centralized resource manager | |
US11593138B2 (en) | Server offload card with SoC and FPGA | |
US11048569B1 (en) | Adaptive timeout mechanism | |
WO2016184045A1 (zh) | 一种网络业务扩容的方法和装置 | |
WO2019178756A1 (zh) | Sd-wan系统、sd-wan系统的使用方法及相关装置 | |
US20220052904A1 (en) | Managing network ports in a virtualization environment | |
JP5960186B2 (ja) | 仮想通信路構築システム、仮想通信路構築方法、及び仮想通信路構築プログラム | |
US20180131595A1 (en) | System For Using Kernel To Perform Pressure Test On Communication Port And Method | |
US20170155717A1 (en) | Direct memory access for endpoint devices | |
WO2014206105A1 (zh) | 虚拟交换方法、相关装置和计算机系统 | |
JP2005524908A (ja) | ネットワークのトポロジーを変更するための方法及びシステム | |
US8429717B2 (en) | Method for activating virtual machine, apparatus for simulating computing device and supervising device | |
US11743117B2 (en) | Streamlined onboarding of offloading devices for provider network-managed servers | |
CN107749807B (zh) | 一种面向nfv的网络功能验证方法及验证系统 | |
US11843508B2 (en) | Methods and apparatus to configure virtual and physical networks for hosts in a physical rack | |
US20140032889A1 (en) | Network booting a machine coupled to the network by a link aggregation group | |
US20230325266A1 (en) | Multi-tenant radio-based application pipeline processing system | |
TW201821991A (zh) | 透過核心程式在通訊埠上進行壓力測試之系統及其方法 | |
KR102623631B1 (ko) | Nfv 환경에서의 vnf 자동 설정 방법 및 이를 위한 nfv mano | |
US7433814B2 (en) | Network emulator architecture | |
US9189370B2 (en) | Smart terminal fuzzing apparatus and method using multi-node structure | |
JP3628514B2 (ja) | 計算機間データ送受信方法 | |
US11621893B2 (en) | Methods, systems, and computer readable media for establishing dynamic agent associations in a cloud computing environment | |
KR20050080704A (ko) | 프로세서간 데이터 전송 장치 및 방법 | |
WO2021258861A1 (zh) | 一种作业处理方法以及相关设备 |