[發(fā)明專利]數(shù)據(jù)庫壓力測試方法、裝置及系統(tǒng)在審
| 申請?zhí)枺?/td> | 202010725194.7 | 申請日: | 2020-07-24 |
| 公開(公告)號: | CN112000466A | 公開(公告)日: | 2020-11-27 |
| 發(fā)明(設(shè)計)人: | 不公告發(fā)明人 | 申請(專利權(quán))人: | 周志燕 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06F9/48 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100104 北京市順義*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 數(shù)據(jù)庫 壓力 測試 方法 裝置 系統(tǒng) | ||
本發(fā)明公開了一種數(shù)據(jù)庫壓力測試方法、裝置及系統(tǒng),其中,該方法包括:接收壓力測試參數(shù)并判斷所述壓力測試參數(shù)是否滿足設(shè)定條件;若所述壓力測試參數(shù)滿足設(shè)定條件以及主線程資源充足,則啟動計時器計時并在設(shè)定個線程的設(shè)定個管道中創(chuàng)建多個子任務(wù);在計時器計時的設(shè)定計時內(nèi),基于所述設(shè)定個線程的設(shè)定個管道中創(chuàng)建多個子任務(wù)讀取數(shù)據(jù)庫SQL文本,基于所述SQL文本請求數(shù)據(jù)庫并計算回寫數(shù)據(jù);在設(shè)定時間內(nèi)基于所述回寫數(shù)據(jù)統(tǒng)計分析壓測數(shù)據(jù)。本發(fā)明可靈活定制壓力測試的參數(shù)去模擬不同的業(yè)務(wù)場景,可以將業(yè)務(wù)壓測時間處于可控范圍內(nèi);基于多線程的多個子任務(wù)進(jìn)行壓力測試,可以使得數(shù)據(jù)庫、數(shù)據(jù)庫生態(tài)系統(tǒng)處理高并發(fā)極限壓測工作。
技術(shù)領(lǐng)域
本發(fā)明涉及計算機(jī)信息處理領(lǐng)域,尤其是一種數(shù)據(jù)庫壓力測試方法、裝置及系統(tǒng)。
背景技術(shù)
壓力測試工具,是用于壓力測試、流量測試以及其他高并發(fā)網(wǎng)絡(luò)測試情形使用的測試工具。但是,目前現(xiàn)有技術(shù)的大多數(shù)的壓力測試工具或者壓力測試方法,是使用多線程、多進(jìn)程來創(chuàng)建多任務(wù)的,對于數(shù)據(jù)庫億萬級以上規(guī)模的并發(fā)請求,會耗費巨大的計算機(jī)資源。但是,現(xiàn)有技術(shù)無法提供一種脫離操作系統(tǒng)運行庫、開發(fā)運行環(huán)境,可在物理機(jī)、虛擬機(jī)、云原生環(huán)境下運行的高性能、高容錯數(shù)據(jù)庫壓力測試系統(tǒng)或方法。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實施例所要解決的一個技術(shù)問題是如何提供一種能夠支持云原生環(huán)境下運行的高性能、高容錯數(shù)據(jù)庫壓力測試系統(tǒng)或方法以解決現(xiàn)有技術(shù)的技術(shù)問題。
本發(fā)明提供一種數(shù)據(jù)庫壓力測試方法,包括:接收壓力測試參數(shù)并判斷所述壓力測試參數(shù)是否滿足設(shè)定條件;
若所述壓力測試參數(shù)滿足設(shè)定條件,啟動主線程并判斷主線程資源是否充足;
若主線程資源充足,則啟動計時器計時并在設(shè)定個線程的設(shè)定個管道中創(chuàng)建多個子任務(wù);
在計時器計時的設(shè)定計時內(nèi),基于所述設(shè)定個線程的設(shè)定個管道中創(chuàng)建多個子任務(wù)讀取數(shù)據(jù)庫結(jié)構(gòu)化查詢語言SQL文本,基于所述結(jié)構(gòu)化查詢語言文本請求數(shù)據(jù)庫,并計算回寫數(shù)據(jù);
在設(shè)定時間內(nèi)基于所述回寫數(shù)據(jù)統(tǒng)計分析壓測數(shù)據(jù)。
進(jìn)一步地,在如果主線程資源充足,則啟動計時器并在設(shè)定個線程的設(shè)定個管道中創(chuàng)建多個子任務(wù)包括:
以協(xié)程的方式創(chuàng)建子任務(wù)進(jìn)程;
更新工作狀態(tài)為真值到子任務(wù)工作狀態(tài)的單向鏈表的數(shù)據(jù)結(jié)構(gòu)中,然后進(jìn)入無限循環(huán)體中,對所述SQL文本進(jìn)行無限輪訓(xùn)訪問,用于獲取所述SQL語句進(jìn)行壓力測試;
如果訪問數(shù)據(jù)庫成功則將訪問數(shù)據(jù)庫的響應(yīng)時間和訪問次數(shù)更新在壓測結(jié)果的單向鏈表中,下次訪問數(shù)據(jù)庫如果還是成功直接追加更新消耗時間和每秒向服務(wù)發(fā)送的請求數(shù)量峰值QPS值,使其子任務(wù)的單向鏈表數(shù)據(jù)結(jié)構(gòu)始終維持在設(shè)定的內(nèi)存空間中;
如果連接數(shù)據(jù)庫、執(zhí)行數(shù)據(jù)庫超時原因?qū)е率。尤蝿?wù)追加更新錯誤計數(shù)器的值 ErrCount,直到子任務(wù)被父進(jìn)程停止。
進(jìn)一步地,所述啟動計時器并在設(shè)定個線程的設(shè)定個管道中創(chuàng)建多個子任務(wù)還包括:
計時器基于觸發(fā)時間來超時進(jìn)行響應(yīng);
串型、高并發(fā)模型開始工作前,上游并行器基于高并發(fā)數(shù)量進(jìn)行分配子任務(wù)壓測結(jié)果使用的內(nèi)存空間以及子任務(wù)工作狀態(tài)使用內(nèi)存空間,并將子任務(wù)序號、內(nèi)存空間地址作為數(shù)據(jù)結(jié)構(gòu)有序?qū)懭氩煌膯蜗蜴湵砗螅_始初始化子任務(wù)并傳遞壓測結(jié)果鏈表、工作狀態(tài)鏈表給子任務(wù),隨即異步啟動子任務(wù);
子任務(wù)啟動后,領(lǐng)取壓測結(jié)果鏈表、工作狀態(tài)鏈表進(jìn)行更新狀態(tài)更新、數(shù)據(jù)更新;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于周志燕,未經(jīng)周志燕許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010725194.7/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)庫
- 數(shù)據(jù)庫管理系統(tǒng)及數(shù)據(jù)庫
- 數(shù)據(jù)庫構(gòu)筑裝置、數(shù)據(jù)庫檢索裝置、數(shù)據(jù)庫裝置、數(shù)據(jù)庫構(gòu)筑方法、以及數(shù)據(jù)庫檢索方法
- 數(shù)據(jù)庫和數(shù)據(jù)庫處理方法
- 數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫更新方法、數(shù)據(jù)庫以及數(shù)據(jù)庫更新程序
- 容器數(shù)據(jù)庫
- 數(shù)據(jù)庫同步方法及數(shù)據(jù)庫
- 一種MongoDB數(shù)據(jù)庫對象復(fù)制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲方法、裝置、電子設(shè)備及存儲介質(zhì)
- 數(shù)據(jù)庫語句執(zhí)行方法及裝置





