專利名稱:進行分布式數(shù)據(jù)庫系統(tǒng)性能測試的方法及系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及性能測試技術,尤其涉及進行分布式數(shù)據(jù)庫系統(tǒng)性能測試的方法及系統(tǒng)。
背景技術:
隨著互聯(lián)網(wǎng)技術的不斷發(fā)展,大型應用場景越來越多,分布式數(shù)據(jù)庫系統(tǒng)在各種應用中充當著越來越重要的角色,分布式數(shù)據(jù)庫系統(tǒng)的性能也越來越受到重視。獲取一個分布式數(shù)據(jù)庫系統(tǒng)的性能時,需要對該系統(tǒng)包含的各節(jié)點上的數(shù)據(jù)庫性能進行統(tǒng)計,對統(tǒng)計的結(jié)果進行分析,以得到該分布式數(shù)據(jù)庫系統(tǒng)的性能。以需要統(tǒng)計的性能為內(nèi)存使用率進行說明先統(tǒng)計出某一時刻各節(jié)點數(shù)據(jù)庫的內(nèi)存使用率,對統(tǒng)計得到的該時刻的各節(jié)點數(shù)據(jù)庫的內(nèi)存使用率進行運算,得到分布式數(shù)據(jù)庫系統(tǒng)的內(nèi)存使用率?,F(xiàn)有的進行分布式數(shù)據(jù)庫系統(tǒng)性能測試的方法具體包括當需要檢測分布式數(shù)據(jù)庫系統(tǒng)的性能時,手工啟動該系統(tǒng)包含的各節(jié)點上的性能獲取程序;性能獲取程序運行后得到數(shù)據(jù)庫性能數(shù)據(jù),工作人員再手工從各節(jié)點導出數(shù)據(jù)庫性能數(shù)據(jù);然后,對得到的各個節(jié)點的性能進行統(tǒng)一分析,得到系統(tǒng)的數(shù)據(jù)庫性能數(shù)據(jù)。現(xiàn)有性能測試方法存在以下缺點需要人為手工啟動各個節(jié)點上的性能獲取程序,并手工從各個節(jié)點導出得到數(shù)據(jù)庫性能數(shù)據(jù),其花費較多人力,花費較大;并且,對系統(tǒng)某一時刻的數(shù)據(jù)庫性能數(shù)據(jù)進行獲取時,由于手工同時對各節(jié)點進行程序啟動存在一定的時間差異,不能準備獲取某一時刻各節(jié)點的數(shù)據(jù)庫性能數(shù)據(jù),導致得到的系統(tǒng)某一時刻的數(shù)據(jù)庫性能數(shù)據(jù)存在誤差。更重要地,在實際應用中,常需要獲取用戶對分布式數(shù)據(jù)庫系統(tǒng)的操作,與分布式數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫性能數(shù)據(jù)之間的關系,但目前還沒有這方面的方案??梢姡F(xiàn)有性能測試方案存在測試結(jié)果不準確,且不能獲取用戶操作與數(shù)據(jù)庫性能數(shù)據(jù)之間關系的缺陷。
發(fā)明內(nèi)容
本發(fā)明提供了一種進行分布式數(shù)據(jù)庫系統(tǒng)性能測試的方法,該方法能夠獲得用戶操作與數(shù)據(jù)庫性能數(shù)據(jù)之間的關系,且能夠提高測試結(jié)果的準確性。本發(fā)明還提供了一種進行分布式數(shù)據(jù)庫系統(tǒng)性能測試的系統(tǒng),該系統(tǒng)能夠獲得用戶操作與數(shù)據(jù)庫性能數(shù)據(jù)之間的關系,且能夠提高測試結(jié)果的準確性。一種進行分布式數(shù)據(jù)庫系統(tǒng)性能測試的方法,該方法包括編寫用于對數(shù)據(jù)庫進行操作的操作腳本,將操作腳本布署成web頁面上的鏈接;編寫點擊腳本,執(zhí)行點擊腳本,模擬用戶點擊web頁面上的鏈接以執(zhí)行對應的操作腳本;向分布式數(shù)據(jù)庫系統(tǒng)的各節(jié)點發(fā)送關于數(shù)據(jù)庫性能數(shù)據(jù)的獲取指令,接收各節(jié)點反饋的數(shù)據(jù)庫性能數(shù)據(jù);
對得到的各節(jié)點數(shù)據(jù)庫性能數(shù)據(jù)進行分析,得到用戶操作與數(shù)據(jù)庫性能數(shù)據(jù)之間的關系。一種進行分布式數(shù)據(jù)庫系統(tǒng)性能測試的系統(tǒng),該系統(tǒng)包括頁面布署單元、人為模擬單元、數(shù)據(jù)獲取單元和數(shù)據(jù)分析單元;所述頁面布署單元,用于編寫對數(shù)據(jù)庫進行操作的操作腳本,將操作腳本布署成 web頁面上的鏈接;所述人為模擬單元,用于編寫點擊腳本,執(zhí)行點擊腳本,模擬用戶點擊web頁面上的鏈接以執(zhí)行對應的操作腳本;所述數(shù)據(jù)獲取單元,用于向分布式數(shù)據(jù)庫系統(tǒng)的各節(jié)點發(fā)送關于數(shù)據(jù)庫性能數(shù)據(jù)的獲取指令,接收各節(jié)點反饋的數(shù)據(jù)庫性能數(shù)據(jù),傳送給所述數(shù)據(jù)分析單元;所述數(shù)據(jù)分析單元,用于對得到的各節(jié)點數(shù)據(jù)庫性能數(shù)據(jù)進行分析,得到用戶操作與數(shù)據(jù)庫性能數(shù)據(jù)之間的關系。從上述方案可以看出,采用本發(fā)明方案,預先布署web頁面,編寫點擊腳本之后, 執(zhí)行點擊腳本,便可模擬用戶點擊web頁面的操作腳本,并向分布式數(shù)據(jù)庫系統(tǒng)的各節(jié)點發(fā)送關于數(shù)據(jù)庫性能數(shù)據(jù)的獲取指令以獲取各節(jié)點數(shù)據(jù)庫性能數(shù)據(jù),進而通過分析得到用戶操作與數(shù)據(jù)庫性能數(shù)據(jù)之間的關系。采用本發(fā)明方案,實現(xiàn)了獲取用戶操作與數(shù)據(jù)庫性能數(shù)據(jù)之間的關系;并且,整個過程無需手工啟動各節(jié)點上的性能獲取程序,再手工從各節(jié)點導出數(shù)據(jù)庫性能數(shù)據(jù),本發(fā)明方案節(jié)省了測試時的人力成本;也不存在手工對各節(jié)點進行程序啟動時的時間誤差,提高了測試結(jié)果的準確性。
圖I為本發(fā)明進行分布式數(shù)據(jù)庫系統(tǒng)性能測試的方法示意性流程圖;圖2為本發(fā)明進行分布式數(shù)據(jù)庫系統(tǒng)性能測試的系統(tǒng)結(jié)構示意圖。
具體實施例方式為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,下面結(jié)合實施例和附圖,對本發(fā)明進一步詳細說明。本發(fā)明提供了能夠獲取用戶操作與數(shù)據(jù)庫性能數(shù)據(jù)之間關系的方案,且該方案無需手工啟動各節(jié)點上的性能獲取程序,再手工從各節(jié)點導出數(shù)據(jù)庫性能數(shù)據(jù)。參見圖1,為本發(fā)明進行分布式數(shù)據(jù)庫系統(tǒng)性能測試的方法示意性流程圖,其包括以下步驟步驟101,編寫用于對數(shù)據(jù)庫進行操作的操作腳本,將操作腳本布署成web頁面上的鏈接。所述對數(shù)據(jù)庫進行的操作包括對數(shù)據(jù)庫進行的更新操作、刪除操作、插入操作或查詢操作等。具體實現(xiàn)時,可采用軟件python編寫操作腳本,各操作腳本對應了不同的對數(shù)據(jù)庫的操作;而后,可采用軟件Uwsgi運行操作腳本,再通過軟件nginx將運行的操作腳本布署成web頁面上的鏈接。將腳本布署成web頁面上的鏈接需先運行該腳本,相當于激活該腳本;這里采用軟件Uwsgi運行操作腳本,就是為了將操作腳本激活后布署成web頁面上的鏈接。操作腳本中包含操作類型、操作的數(shù)據(jù)庫地址等信息;如果模擬點擊web頁面上的鏈接,web服務器便執(zhí)行對應的操作腳本,以對相應的數(shù)據(jù)庫進行相應的操作。python是公知的編程語言,在確定對數(shù)據(jù)庫進行的操作之后,由python編寫操作腳本是本領域技術人員易于實現(xiàn)的;Uwsgi為網(wǎng)絡服務器網(wǎng)關接口工具,也是本領域技術人員常用的用于運行腳本的軟件;且軟件nginx為將腳本布署成web頁面上鏈接的專用軟件,具有將運行的腳本布署成web頁面上鏈接的功能;這里不再過多贅述。步驟102,編寫點擊腳本,執(zhí)行點擊腳本,模擬用戶點擊web頁面上的鏈接以執(zhí)行對應的操作腳本。具體實現(xiàn)時,可采用軟件負載運行工具(Loadrunner)編寫點擊腳本,執(zhí)行點擊腳本后,便可模擬用戶點擊web頁面上的鏈接。點擊腳本中包含web上的鏈接地址、點擊次數(shù)、 模擬用戶數(shù)、點擊的時間間隔等點擊參數(shù);執(zhí)行點擊腳本后,便可模擬用戶按照點擊參數(shù)點擊web頁面上的相應鏈接。例如,可以同時模擬50個用戶對某一節(jié)點數(shù)據(jù)庫進行插入操作, 同時模擬50個用戶對某一節(jié)點進行查詢操作,等等。各節(jié)點上設置了最大用戶連接數(shù),設為M,節(jié)點數(shù)據(jù)庫在同一時刻最多只允許M個用戶的操作,本發(fā)明中,為了防止某些節(jié)點上的最大用戶連接數(shù)小于模擬用戶數(shù),可預先對節(jié)點上的最大用戶連接數(shù)進行配置,以符合模擬用戶人數(shù)的要求,即大于或等于模擬用戶數(shù)。對各節(jié)點最大用戶連接數(shù)進行配置的方法包括在各節(jié)點進行最初配置時,將各節(jié)點默認的最大用戶連接數(shù)進行配置成足夠大,以大于或等于模擬用戶數(shù)。各節(jié)點的配置文件中包含默認的最大用戶連接數(shù),在使用過程中,各可點可能對默認的最大用戶連接數(shù)進行了修改,因此,還可以直接對各節(jié)點的配置文件中的最大用戶連接數(shù)進行修改;具體實現(xiàn)時,可向分布式數(shù)據(jù)庫系統(tǒng)的各節(jié)點下發(fā)包含最大用戶連接數(shù)的配置指令,各節(jié)點接收后,對配置文件中的最大用戶連接數(shù)進行修改。web服務器接收關于某鏈接的點擊后,執(zhí)行與該鏈接對應的操作腳本,以對相應的節(jié)點數(shù)據(jù)庫進行操作;步驟101中通過軟件nginx將運行的操作腳本布署成web頁面上的鏈接,這里將web服務器稱為nginx服務器。具體實現(xiàn)時,nginx服務器接收關于某鏈接的點擊后,使用軟件Uwsgi執(zhí)行與該鏈接對應的操作腳本,以對相應的節(jié)點數(shù)據(jù)庫進行操作。Loadrunner為人為模擬點擊web上鏈接的專用軟件,在確定需要點擊的web 頁面上的鏈接地址、點擊次數(shù)、模擬用戶數(shù)、點擊的時間間隔等點擊參數(shù)之后,采用軟件 Loadrunner編寫點擊腳本,是本領域技術人員易于實現(xiàn)的,這里不多贅述。步驟103,向分布式數(shù)據(jù)庫系統(tǒng)的各節(jié)點發(fā)送關于數(shù)據(jù)庫性能數(shù)據(jù)的獲取指令,接收各節(jié)點反饋的數(shù)據(jù)庫性能數(shù)據(jù)。所述數(shù)據(jù)庫性能數(shù)據(jù)包括cpu使用率、內(nèi)存使用率、磁盤輸入輸出指標和網(wǎng)絡吞吐率等中的至少一項。具體實現(xiàn)時,可采用站點觀測(Sitescope)軟件實現(xiàn)關于數(shù)據(jù)庫性能數(shù)據(jù)的獲取指令的編寫。Sitescope軟件為專用的從目標對象獲取數(shù)據(jù)的軟件,編寫時,按照 Sitescope軟件的規(guī)定設置參數(shù)即可,本實例中,設置的參數(shù)包括節(jié)點IP地址、獲取性能數(shù)據(jù)的頻率、獲取的內(nèi)容等;所述獲取的內(nèi)容為節(jié)點數(shù)據(jù)庫的使用情況,即節(jié)點數(shù)據(jù)庫的性能數(shù)據(jù)。各節(jié)點接收關于數(shù)據(jù)庫性能數(shù)據(jù)的獲取指令后,運行性能獲取程序,并反饋請求的性能數(shù)據(jù)。
Sitescope軟件為專用的從目標對象獲取所需數(shù)據(jù)的軟件,提供分布式監(jiān)視解決方案,這里不贅述。步驟104,對得到的各節(jié)點數(shù)據(jù)庫性能數(shù)據(jù)進行分析,得到用戶操作與數(shù)據(jù)庫性能數(shù)據(jù)之間的關系。本步驟可具體包括獲取編寫點擊腳本時配置的點擊參數(shù),點擊參數(shù)包含了用戶操作的信息;結(jié)合點擊參數(shù),對得到的各節(jié)點數(shù)據(jù)庫性能數(shù)據(jù)進行分析,得到用戶操作與數(shù)據(jù)庫性能數(shù)據(jù)之間的關系。具體地實現(xiàn)時,對人為點擊參數(shù)和得到的各節(jié)點數(shù)據(jù)庫性能數(shù)據(jù)進行結(jié)合分析, 可通過Loadrunner本身自帶的分析器實現(xiàn)。根據(jù)軟件Loadrunner的特點,其自帶有分析器,該分析器具有分析用戶操作與數(shù)據(jù)庫性能數(shù)據(jù)之間關系的功能,在獲知用戶對各節(jié)點的操作信息以及相應節(jié)點的數(shù)據(jù)庫性能數(shù)據(jù)之后,將用戶操作信息和數(shù)據(jù)庫性能數(shù)據(jù)作為分析參數(shù),輸入分析器,并進行必要的其他設置,分析器便可得計算出某一時刻用戶操作與數(shù)據(jù)庫性能數(shù)據(jù)之間的關系;例如,得到的關于CPU使用率的分析結(jié)果包括某一時刻,當對分布式數(shù)據(jù)庫系統(tǒng)進行操作的用戶人數(shù)為50時,系統(tǒng)的cpu使用率為10%;當對分布式數(shù)據(jù)庫系統(tǒng)進行操作的用戶人數(shù)為90 時,系統(tǒng)的cpu使用率為20%;等等。還可以,將分析器得到的結(jié)果設置為以圖形化界面方式進行顯示。分析用戶操作與數(shù)據(jù)庫性能數(shù)據(jù)之間關系,為分析器本身具有的功能,這里不過多贅述。采用本發(fā)明方案,預先布署web頁面,編寫點擊腳本之后,執(zhí)行點擊腳本,便可模擬用戶點擊web頁面的操作腳本,并向分布式數(shù)據(jù)庫系統(tǒng)的各節(jié)點發(fā)送關于數(shù)據(jù)庫性能數(shù)據(jù)的獲取指令以獲取各節(jié)點數(shù)據(jù)庫性能數(shù)據(jù),進而通過分析得到用戶操作與數(shù)據(jù)庫性能數(shù)據(jù)之間的關系。整個過程無需手工啟動各節(jié)點上的性能獲取程序,再手工從各節(jié)點導出數(shù)據(jù)庫性能數(shù)據(jù),本發(fā)明方案節(jié)省了測試時的人力成本;也不存在手工對各節(jié)點進行程序啟動時的時間誤差,提高了測試結(jié)果的準確性。參見圖2,為本發(fā)明進行分布式數(shù)據(jù)庫系統(tǒng)性能測試的系統(tǒng)結(jié)構示意圖,圖中將該系統(tǒng)稱為性能測試系統(tǒng),該系統(tǒng)包括頁面布署單元、人為模擬單元、數(shù)據(jù)獲取單元和數(shù)據(jù)分析單元;頁面布署單元,用于編寫對數(shù)據(jù)庫進行操作的操作腳本,將操作腳本布署成web 頁面上的鏈接;人為模擬單元,用于編寫點擊腳本,執(zhí)行點擊腳本,模擬用戶點擊web頁面上的鏈接以執(zhí)行對應的操作腳本;數(shù)據(jù)獲取單元,用于向分布式數(shù)據(jù)庫系統(tǒng)的各節(jié)點發(fā)送關于數(shù)據(jù)庫性能數(shù)據(jù)的獲取指令,接收各節(jié)點反饋的數(shù)據(jù)庫性能數(shù)據(jù),傳送給所述數(shù)據(jù)分析單元;數(shù)據(jù)分析單元,用于對得到的各節(jié)點數(shù)據(jù)庫性能數(shù)據(jù)進行分析,得到用戶操作與數(shù)據(jù)庫性能數(shù)據(jù)之間的關系。具體的,頁面布署單元編寫的對數(shù)據(jù)庫進行操作的操作腳本包括對數(shù)據(jù)庫進行的更新操作、刪除操作、插入操作或查詢操作的操作腳本。數(shù)據(jù)獲取單元接收到各節(jié)點反饋的數(shù)據(jù)庫性能數(shù)據(jù)包括cpu使用率、內(nèi)存使用率、磁盤輸入輸出指標和網(wǎng)絡吞吐率中的至少一項。頁面布署單元、人為模擬單元、數(shù)據(jù)獲取單元和數(shù)據(jù)分析單元分別置于不同的設備上,或者,置于同一設備上。本發(fā)明采用一個性能測試系統(tǒng)完成對分布式數(shù)據(jù)庫系統(tǒng)性能的測試,避免了測試時人為啟動各節(jié)點程序時產(chǎn)生的時間誤差,提高了測試結(jié)果的準確性。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內(nèi)。
權利要求
1.一種進行分布式數(shù)據(jù)庫系統(tǒng)性能測試的方法,其特征在于,該方法包括編寫用于對數(shù)據(jù)庫進行操作的操作腳本,將操作腳本布署成web頁面上的鏈接; 編寫點擊腳本,執(zhí)行點擊腳本,模擬用戶點擊web頁面上的鏈接以執(zhí)行對應的操作腳本;向分布式數(shù)據(jù)庫系統(tǒng)的各節(jié)點發(fā)送關于數(shù)據(jù)庫性能數(shù)據(jù)的獲取指令,接收各節(jié)點反饋的數(shù)據(jù)庫性能數(shù)據(jù);對得到的各節(jié)點數(shù)據(jù)庫性能數(shù)據(jù)進行分析,得到用戶操作與數(shù)據(jù)庫性能數(shù)據(jù)之間的關系O
2.如權利要求I所述的方法,其特征在于,所述對得到的各節(jié)點數(shù)據(jù)庫性能數(shù)據(jù)進行分析包括獲取編寫點擊腳本時配置的點擊參數(shù);結(jié)合點擊參數(shù),對得到的各節(jié)點數(shù)據(jù)庫性能數(shù)據(jù)進行分析,得到用戶操作與數(shù)據(jù)庫性能數(shù)據(jù)之間的關系。
3.如權利要求2所述的方法,其特征在于,所述點擊參數(shù)包括點擊的鏈接地址、點擊次數(shù)、模擬用戶數(shù)和點擊時間間隔。
4.如權利要求3所述的方法,其特征在于,所述編寫用于對數(shù)據(jù)庫進行操作的操作腳本之前,該方法還包括對各節(jié)點的最大用戶連接數(shù)進行配置,使最大用戶連接數(shù)大于或等于所述模擬用戶數(shù)。
5.如權利要求2、3或4所述的方法,其特征在于,所述對得到的各節(jié)點數(shù)據(jù)庫性能數(shù)據(jù)進行分析,通過負載運行工具Loadrunner本身自帶的分析器實現(xiàn)。
6.如權利要求I至4中任一項所述的方法,其特征在于,所述數(shù)據(jù)庫性能數(shù)據(jù)包括cpu 使用率、內(nèi)存使用率、磁盤輸入輸出指標和網(wǎng)絡吞吐率中的至少一項。
7.一種進行分布式數(shù)據(jù)庫系統(tǒng)性能測試的系統(tǒng),其特征在于,該系統(tǒng)包括頁面布署單元、人為模擬單元、數(shù)據(jù)獲取單元和數(shù)據(jù)分析單元;所述頁面布署單元,用于編寫對數(shù)據(jù)庫進行操作的操作腳本,將操作腳本布署成web 頁面上的鏈接;所述人為模擬單元,用于編寫點擊腳本,執(zhí)行點擊腳本,模擬用戶點擊web頁面上的鏈接以執(zhí)行對應的操作腳本;所述數(shù)據(jù)獲取單元,用于向分布式數(shù)據(jù)庫系統(tǒng)的各節(jié)點發(fā)送關于數(shù)據(jù)庫性能數(shù)據(jù)的獲取指令,接收各節(jié)點反饋的數(shù)據(jù)庫性能數(shù)據(jù),傳送給所述數(shù)據(jù)分析單元;所述數(shù)據(jù)分析單元,用于對得到的各節(jié)點數(shù)據(jù)庫性能數(shù)據(jù)進行分析,得到用戶操作與數(shù)據(jù)庫性能數(shù)據(jù)之間的關系。
8.如權利要求I所述的系統(tǒng),其特征在于,所述頁面布署單元、人為模擬單元、數(shù)據(jù)獲取單元和數(shù)據(jù)分析單元分別置于不同的設備上,或者,置于同一設備上。
9.如權利要求I所述的系統(tǒng),其特征在于,所述對數(shù)據(jù)庫進行的操作包括對數(shù)據(jù)庫進行的更新操作、刪除操作、插入操作或查詢操作。
10.如權利要求7至9中任一項所述的系統(tǒng),其特征在于,所述數(shù)據(jù)庫性能數(shù)據(jù)包括cpu使用率、內(nèi)存使用率、磁盤輸入輸出指標和網(wǎng)絡吞吐率中的至少一項。
全文摘要
本發(fā)明提供了進行分布式數(shù)據(jù)庫系統(tǒng)性能測試的方法及系統(tǒng),其中,該方法包括編寫用于對數(shù)據(jù)庫進行操作的操作腳本,將操作腳本布署成web頁面上的鏈接;編寫點擊腳本,執(zhí)行點擊腳本,模擬用戶點擊web頁面上的鏈接以執(zhí)行對應的操作腳本;向分布式數(shù)據(jù)庫系統(tǒng)的各節(jié)點發(fā)送關于數(shù)據(jù)庫性能數(shù)據(jù)的獲取指令,接收各節(jié)點反饋的數(shù)據(jù)庫性能數(shù)據(jù);對得到的各節(jié)點數(shù)據(jù)庫性能數(shù)據(jù)進行分析,得到用戶操作與數(shù)據(jù)庫性能數(shù)據(jù)之間的關系。本發(fā)明方案能夠獲得用戶操作與數(shù)據(jù)庫性能數(shù)據(jù)之間的關系,且能夠提高測試結(jié)果的準確性。
文檔編號G06F17/30GK102609472SQ20121001579
公開日2012年7月25日 申請日期2012年1月18日 優(yōu)先權日2012年1月18日
發(fā)明者劉堃, 顏春芳 申請人:深圳市同洲視訊傳媒有限公司