您好,登錄后才能下訂單哦!
小編給大家分享一下壓測工具swingbench和sysbench有什么區別,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
swingbench
先來說說swingbench,這款工具是Oracle英國的一個員工用Java開發的,沒想到一下子成了壓測Oracle的不二之選。當然Oracle還有不少這樣的工具,比如DUL(Data UnLoader),是新西蘭的一個員工用c開發,一個可以直接讀取數據文件的工具,基本是ACS部門在提供高級服務所用。還有一款是SQLT也叫作SQLTXPLAIN,是Oracle Server Technologies Center of Expertise - ST CoE 提供的一款工具,可以通過MOS ID(ID 215187.1)下載,當然這樣的工具還不少。
回到我們的話題,swingbench因為基于Java的原因,所以跨平臺的支持還是很不錯的。基本上我們是在Windows平臺上測試服務端的數據庫性能,用到了Java,那么使用JDBC是很自然的一件事情。
swingbench的設計風格是完全的組件化,每個組件可以單獨抽出來使用,所以你如果到支持的站點去查看。宣傳的組件圖還是很霸氣的。比如swingbench的主界面,數據生成器,追蹤分析。
還有更炫的。監控數據庫的多項指標,DB time等。這效果和商用的spotlight監控有一拼。
毫無疑問,swingbench是個好東西,一個工具箱繼續發揚光大,得靠大家的使用和推廣普及。有句話說得好,世上只有兩種工具,一種是被人罵的,另一種是沒人用的,被罵的越多,側面反映出關注度越高,使用率越高,越用越成熟,這個MySQL就是一個很不錯的例子。
swingbench支持的功能如此豐富,可以指定多個數據倉庫,可以生成指定大小的數據,測試是基于訂單業務,模擬的場景更加豐富,它有什么缺點嗎?有的。
首先個人感覺最大的一點是它只支持Oracle,其實基于JDBC就是一個輕量級的接口,可以連接多種數據庫。數據庫工具松鼠就是這樣,一個JDBC可以適配很多的數據庫。如果在這一點上有所突破,我覺得還是有很大的潛力的。
還有基于這個工具的特性,支持Oracle平臺,似乎離開源社區還有一定的距離,盡管這個工具確實是開源的,我查了下github上暫時還沒有看到,目前的支持是通過站點來維護的,目前最新的版本是2.6,已經支持12c.
sysbench
這款工具和swingbench有一個共同點,那就是它也是Oracle的一個員工開發的,不過屬于MySQL team,后來到了Percona.
一個公司竟然能夠產出兩種風格的軟件,和本身支持的數據庫是有明顯的關系的,這句話可能比較繞。我逐漸展開來說,先說說我最近安裝,使用sysbench的一些感受。
如果使用sysbench比較早一些的版本,應該就是0.4.12了。這個版本最早也是有一個單獨的站點來維護的,目前已經全面轉移到github上了。
這個工具基于c開發,目前支持的數據庫種類很豐富。
# find . -name "drv*.c"
./drizzle/drv_drizzle.c
./pgsql/drv_pgsql.c
./mysql/drv_mysql.c
./oracle/drv_oracle.c
./attachsql/drv_attachsql.c其中MySQL,這是原生支持,默認就有的。還支持PostgreSQL和Oracle,還有一個MySQL的分支drizzle也是支持的。
0.4.12的版本很多年前就在用,優點很多,可以壓測內存,CPU,IO,mutext等都可以測試,支持的數據庫壓測是其中的一個部分。這部分功能基于c的優勢就很明顯了。
但是0.4.12這個版本限制還是比較多,比如只能基于一個數據庫的一個一個表來壓測,這一點來說限制就很大了。所以能夠測試的場景還是很有限的。
到了0.5的版本,這個情況改觀了,可以一個庫里多表了,而且可以設置interval參數來查看一個實時的變化了。因為它支持Oracle,所以我就很有興趣的測試了一下,結果讓我有點受挫。
為什么呢,0.5的版本中安裝Oracle,主要就是一個動態鏈接庫的配置要到位,但是配置好之后要開啟測試的時候,發現數據庫的驅動選擇了oracle,但是測試卻提示unknown database,帶著疑問細看,原來測試的模板里竟然沒有Oracle.這個怎么辦自己動手豐衣足食,不過要寫還確實有難度,為什么呢,因為模板是基于腳本語言Lua的,這又多了一道坎。
不過行業里也有不少朋友寫了一些Lua的模板可以參考。
這里我訴訴苦,那就是sysbench最新版本是1.0.3,我想新版本支持Oracle應該已經做得很好了,看官方的提示,對于Oracle安裝還單獨提供了一個README-Oracle.md,但是里面的安裝提示還是和我預期的有一些差別。
首先是安裝的客戶端,目前提供的是12c的精簡版,這個沒有問題,但是基于的操作系統是ubuntu 14,對于Oracle企業版來說是沒有官方認證的,Linux版本Oracle官方可查到的,支持的系統基本是下面的這幾個,版本會有一些變化。
Red Hat Enterprise Linux AS/ES
Oracle Enterprise Linux ( OEL)
SUSE Linux Enterprise Server
AsianuxUbuntu也是Linux,但是后面的安裝就讓我有了不少的難度,需要安裝Cuda,而且是使用dpkg,這部分很陌生,查了下原來dpkg 是Debian package的簡寫,為"Debian" 操作系統專門開發的套件管理系統,用于軟件的安裝,更新和移除。
安裝一套Cuda環境,我查了下,要花的功夫還真不少,最后輾轉嘗試,算是放棄了。
于是回到0.5的版本來,配置了動態鏈接庫,很快就配置好了,但是沒有Lua模板,這個時候可以參考osdba提供的一套定制版,可以支持MySQL,Oracle,PostgreSQL,我試了下,還不錯。
整個過程如果使用git分分鐘即可搞定。
抓取sysbench的安裝部分
# git clone https://github.com/osdba/sysbench_bin.git然后抓取Lua腳本部分
# git clone https://github.com/osdba/sysbench_lua 然后創建一個sysbench目錄,把抓取到的兩個目錄整合起來。
# mkdir sysbench
# cd sysbench
# cp ../sysbench_bin/bin/* .
# cp -r ../sysbench_lua/lua . 這樣一來目錄下就有了3個執行文件,和直接使用sysbench的命令方式基本一樣,只是有所側重。
-rwxr-xr-x 1 root root 3307216 Mar 24 16:09 sysbench_mysql
-rwxr-xr-x 1 root root 3324397 Mar 24 16:09 sysbench_ora
-rwxr-xr-x 1 root root 3253979 Mar 24 16:09 sysbench_pg
看完了這篇文章,相信你對“壓測工具swingbench和sysbench有什么區別”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。