BenchmarkSQL配置参数介绍
props配置文件的參數說明:
配置文件重要參數如下:
?? ?? ? 1)warehouse:(每個倉庫負責十個區域的供貨,每個區域 3000 個客戶服務,每個倉庫維護 100000 種商品的庫存紀錄,每個倉庫至多有10個終端)
?? ??? ?? ? BenchmarkSQL數據庫每個warehouse大小大概是100MB,如果該參數設置為10,那整個數據庫的大小大概在1000MB。建議將數據庫的大小設置為服務器物理內存的2-5倍,如果服務器內存為16GB,那么warehouse設置建議在328~819之間。
?? ?? ? 2)terminals:
?? ??? ?? ? terminals指的是并發連接數,建議設置為服務器CPU總線程數的2-6倍。如果服務器為雙核16線程(單核8線程),那么建議配置在32~96之間。
配置文件詳解:
1.db=mysql?? ?//數據庫類型,postgres/oracle/mysql/firebird/goldilocks
2.driver=org.mariadb.jdbc.Driver??//客戶端驅動
conn=jdbc:mysql://192.168.18.32:3306/bmsdb??//mysql數據庫連接字符串
user=bms? ? //數據庫登錄用戶名,需要我們提前在數據庫中建立benchmarksql用戶
password=bms? ? //如上用戶密碼
3.warehouses=1? ? //倉庫數量,每個warehouse大小大概是100MB
4.loadWorkers=4? ? //用于在數據庫中初始化數據的加載進程數量,默認為4,實際使用過程中可以根據實際情況調整,加載速度會隨worker數量的增加而有所提升
5.terminals=1? ? //終端數,即并發客戶端數量,通常設置為CPU線程總數的2~6倍
6.?runTxnsPerTerminal=10
//To run specified transactions per terminal- runMins must equal zero
//每個終端(terminal)運行的固定事務數量,例如:如果該值設置為10,意味著每個terminal運行10個事務,如果有32個終端,那整體運行320個事務后,測試結束。該參數配置為非0值時,下面的runMins參數必須設置為0
//To run for specified minutes- runTxnsPerTerminal must equal zero
//要測試的整體時間,單位為分鐘,如果runMins設置為60,那么測試持續1小時候結束。該值設置為非0值時,runTxnsPerTerminal參數必須設置為0。這兩個參數不能同時設置為正整數,如果設置其中一個,另一個必須為0,主要區別是runMins定義時間長度來控制測試時間;runTxnsPerTerminal定義事務總數來控制時間。
測試吞吐量時,需要將此值設置極大(無限大),這樣就能夠保證不會出現某個終端sleep現象。
//每分鐘事務總數限制,該參數主要控制每分鐘處理的事務數,事務數受terminals參數的影響,如果terminals數量大于limitTxnsPerMin值,意味著并發數大于每分鐘事務總數,該參數會失效,想想也是如此,如果有1000個并發同時發起,那每分鐘事務數設置為300就沒意義了,上來就是1000個并發,所以要讓該參數有效,可以設置數量大于并發數,或者讓其失效,測試過程中目前采用的是默認300。
//測試過程中的整體邏輯通過一個例子來說明:假如limitTxnsPerMin參數使用默認300,termnals終端數量設置為150并發,實際會計算一個值A=limitTxnsPerMin/terminals=2(此處需要注意,A為int類型,如果terminals的值大于limitTxnsPerMin,得到的A值必然為0,為0時該參數失效),此處記住A=2;接下來,在整個測試運行過程中,軟件會記錄一個事務的開始時間和結束時間,假設為B=2000毫秒;然后用60000(毫秒,代表1分鐘)除以A得到一個值C=60000/2=30000,假如事務運行時間B<C,那么該事務執行完后,sleep C-B秒再開啟下一個事務;假如B>C,意味著事務超過了預期時間,那么馬上進行下一個事務。在本例子中,每分鐘300個事務,設置了150個并發,每分鐘執行2個并發,每個并發執行2秒鐘完成,每個并發sleep 28秒,這樣可以保證一分鐘有兩個并發,反推回來整體并發數為300/分鐘。
9.terminalWarehouseFixed=true
?//終端和倉庫的綁定模式,設置為true時可以運行4.x兼容模式,意思為每個終端都有一個固定的倉庫。設置為false時可以均勻的使用數據庫整體配置。TPCC規定每個終端都必須有一個綁定的倉庫,所以一般使用默認值true。
10.newOrderWeight=45
paymentWeight=43
orderStatusWeight=4
deliveryWeight=4
stockLevelWeight=4
//下面五個值的總和必須等于100,默認值為:45, 43, 4, 4 & 4 ,與TPC-C測試定義的比例一致,實際操作過程中,可以調整比重來適應各種場景。
11.resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
//測試數據生成目錄,默認無需修改,默認生成在run目錄下面,名字形如my_result_xxxx的文件夾。
12.osCollectorScript=./misc/os_collector_linux.py
//操作系統性能收集腳本,默認無需修改,需要操作系統具備有python環境
13.??osCollectorInterval=1
//操作系統收集操作間隔,默認為1秒
14.//osCollectorSSHAddr=user@dbhost
//操作系統收集所對應的主機,如果對本機數據庫進行測試,該參數保持注銷即可,如果要對遠程服務器進行測試,請填寫用戶名和主機名。
15.osCollectorDevices=net_eth0 blk_sda
//操作系統中被收集服務器的網卡名稱和磁盤名稱,例如:使用ifconfig查看操作系統網卡名稱,找到測試所走的網卡,名稱為enp1s0f0,那么下面網卡名設置為net_enp1s0f0(net_前綴固定);使用df -h查看數據庫數據目錄,名稱為(/dev/sdb????????????????33T???18T???16T???54% /hgdata),那么下面磁盤名設置為blk_sdb(blk_前綴固定)
參考:https://blog.csdn.net/fuqiangnxn/article/details/98758707
總結
以上是生活随笔為你收集整理的BenchmarkSQL配置参数介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: debian和archlinux下使用f
- 下一篇: Benchmark 第一篇 了解Benc