sysbench的安裝和做性能測試

sysbench是一個模塊化的、跨平臺、多線程基準測試工具,主要用于評估測試各種不同系統參數下的數據庫負載情況。關于這個項目的詳細介紹請看:http://sysbench.sourceforge.net。
它主要包括以下幾種方式的測試:
1、cpu性能
2、磁盤io性能
3、調度程序性能
4、內存分配及傳輸速度
5、POSIX線程性能
6、數據庫性能(OLTP基準測試)
目前sysbench主要支持 MySQL,pgsql,oracle 這3種數據庫。

一、安裝
首先,在 http://sourceforge.net/projects/sysbench 下載源碼包。
接下來,按照以下步驟安裝:

tar zxf sysbench-0.4.8.tar.gz
cd sysbench-0.4.8
./configure && make && make install
strip /usr/local/bin/sysbench

以上方法適用于 MySQL 安裝在標準默認目錄下的情況,如果 MySQL 并不是安裝在標準目錄下的話,那么就需要自己指定 MySQL 的路徑了。比如我的 MySQL 喜歡自己安裝在 /usr/local/mysql 下,則按照以下方法編譯:

/configure --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/local/mysql/lib && make && make install

當然了,用上面的參數編譯的話,就要確保你的 MySQL lib目錄下有對應的 so 文件,如果沒有,可以自己下載 devel 或者 share 包來安裝。
另外,如果想要讓 sysbench 支持 pgsql/oracle 的話,就需要在編譯的時候加上參數
--with-pgsql
或者
--with-oracle
這2個參數默認是關閉的,只有 MySQL 是默認支持的。

二、開始測試
編譯成功之后,就要開始測試各種性能了,測試的方法官網網站上也提到一些,但涉及到 OLTP 測試的部分卻不夠準確。在這里我大致提一下:
1、cpu性能測試

sysbench --test=cpu --cpu-max-prime=20000 run

cpu測試主要是進行素數的加法運算,在上面的例子中,指定了最大的素數為 20000,自己可以根據機器cpu的性能來適當調整數值。

2、線程測試

sysbench --test=threads --num-threads=64 --thread-yields=100 --thread-locks=2 run

3、磁盤IO性能測試

sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw prepare
sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw run
sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw cleanup

上述參數指定了最大創建16個線程,創建的文件總大小為3G,文件讀寫模式為隨機讀。

4、內存測試

sysbench --test=memory --memory-block-size=8k --memory-total-size=4G run

上述參數指定了本次測試整個過程是在內存中傳輸 4G 的數據量,每個 block 大小為 8K。

5、OLTP測試

sysbench --test=oltp --mysql-table-engine=myisam --oltp-table-size=1000000 --mysql-socket=/tmp/mysql.sock --mysql-user=test --mysql-host=localhost --mysql-password=test prepare

上述參數指定了本次測試的表存儲引擎類型為 myisam,這里需要注意的是,官方網站上的參數有一處有誤,即 --mysql-table-engine,官方網站上寫的是 --mysql-table-type,這個應該是沒有及時更新導致的。另外,指定了表最大記錄數為 1000000,其他參數就很好理解了,主要是指定登錄方式。測試 OLTP 時,可以自己先創建數據庫 sbtest,或者自己用參數 --mysql-db 來指定其他數據庫。--mysql-table-engine 還可以指定為 innodb 等 MySQL 支持的表存儲引擎類型。

http://blog.chinaunix.net/u/19673/showart.php?id=369872

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/535622.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/535622.shtml
英文地址,請注明出處:http://en.pswp.cn/news/535622.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

加密解密

PKI public key Infrastructure 公鑰基礎設施 CRl 證書吊銷列表 CA證書頒發機構 Certificate Authority x509 證書 包括公鑰、過期時間、證書的合法擁有者、證書如何被使用 CA的信息 CA的校驗碼等等 Pki實現方式 TLS/ssl:x509 opengpg ssl安全的套接字層…

高性能MySQL(1)——MYSQL架構

MySQL最重要、最與眾不同的特性是它的存儲引擎架構,這種架構將查詢處理與數據的存儲/提取相分離,使得可以在使用時根據不同的需求來選擇數據存儲的方式。 一、Mysql邏輯架構 如果能在頭腦中構建出一幅MySQL各組件之間如何協同工作的架構圖,就…

數據庫設計中的14個關鍵技巧

1. 原始單據與實體之間的關系  可以是一對一、一對多、多對多的關系。在一般情況下,它們是一對一的關系:即一張原始單據對應且只對應一個實體。在特殊情況下,它們可能是一對多或多對一的關系,即一張原始單證對應多個實體&#xf…

高性能MySQL(2)——Schema與數據類型的優化

良好的邏輯設計和物理設計是高性能的基石,應該根據系統將要執行的查詢語句來設計 schema,這往往需要權衡各種因素。 一、選擇優化的數據類型 MySQL支持的數據類型非常多,選擇正確的數據類型對于獲得高性能至關重要。不管 存儲哪種類型的數據&#xff0c…

用戶權限sudo、suid、sgid以及facl等

su 切換用戶或以指定用戶運行命令。 使用su可以指定運行命令的身份(user/group/uid/gid)。 為了向后兼容,su默認不會改變當前目錄,且僅設置HOME和SHELL這兩個環境變量(若目標用戶非root,則還設置USER和LOGNAME環境變量)。推薦使用--login選項…

MySQL 服務器調優

關于 MySQL 調優 有 3 種方法可以加快 MySQL 服務器的運行速度,效率從低到高依次為: 替換有問題的硬件。 對 MySQL 進程的設置進行調優。 對查詢進行優化。 替換有問題的硬件通常是我們的第一考慮,主要原因是數據庫會占用大量資源。不過這…

通過腳本啟動批量服務

/app/all_start_script/wwyt/此目錄服務如下:apigateway.sh auth.sh config.sh register.sh zipkin.sh /app/all_start_script/other/此目錄服務如下: tomcat.sh wwyt_base.sh wwyt_cache.sh wwyt_flow.sh wwyt_risk_login.sh ww…

高性能MySQL(3)——創建高性能索引

索引對于良好的性能非常關鍵。尤其是當表中的數據量越來越大時,索引對性能的影響愈發重要。 一、索引的類型 在MySQL中,索引是在存儲引擎層而不是服務器層實現的。所以沒用統一的索引標準,不同存儲引擎的索引工作方式并不相同。 1.1、B-Tre…

linux 調優系列

Linux系統內核:修改TCP/IP調優參數 所有的TCP/IP調優參數都位于/proc/sys/net/目錄。例如, 下面是最重要的一些調優參數, 后面是它們的含義: 1. /proc/sys/net/core/rmem_max — 最大的TCP數據接收緩沖。 2. /proc/sys/net/core/wmem_max — 最大的TCP數據發送緩沖。 3.…

java中的構造方法與代碼塊

一、構造方法 1.1、java中的構造方法跟普通方法有很大的區別: 構造方法的方法名跟類名相同構造方法沒有返回值類型,連void也沒有,也不能用return返回值每次創建一個對象,都會調用構造方法,如果沒有寫構造方法,系統會默認加上一個空參的構造,如果已經寫了構造方法,…

bash shell是如何識別特殊符號的

一 、 shell命令解析以及識別通配符 Shell是系統的用戶界面,提供了用戶與內核進行交互操作的一種接口。它接收用戶輸入的命令并把它送入內核去執行 。 實際上Shell是一個命令解釋器,它解釋由用戶輸入的命令并且把它們送到內核。不僅如此,Shell有自己的編程語言用于對命令的編…

linux 調優系列(續)

linux 的各大發行版,都有些不必要的服務被默認開啟了,針對ubuntu,我們 可以采用選擇性關閉的方法加速起動,提高系統性能。 這里我們安裝一個軟件: sudo apt-get install sysv-rc-conf 然后這樣起動: 在這個…

配置文件bashrc與profile的區別

1、當登入系統時候獲得-個shell進程時,其讀取環境設定檔有三步 首先讀入的是全局環境變量設定檔/ete/profile,然后根據其內容讀取額外的設定的文檔,如/etc/profile. d和/ etc/ inputre 然后根據不同使用者帳號,去其家目錄讀取, bash, pr…

高性能MySQL(4)——查詢性能優化

査詢優化、索引優化、庫表結構優化需要齊頭并進,一個不落。 一、為什么查詢速度為變慢 在嘗試編寫快速的查詢之前,需要清楚一點,真正重要是響應時間。如果把查詢看作是一個任務,那么他由一系列子任務組成,每個子任務都會消耗一定的時間。如果…

GooglePerformanceTools--tcmalloc

TCmalloc全稱是Thread-Caching malloc,作者宣稱tcmalloc相對于glibc2.3 malloc(aka ptmalloc2)有6倍的性能提高,tcmalloc的常用場景是用于加速MySQL,不過據Wikipedia的hacker Domas Mituzas說,tcmalloc不僅僅對MySQL起作用&#x…

linux基本命令以及命令常用選項

linux基本命令以及命令常用選項touch 創建文件,改變恩建時間戳,如果直接跟上一個文件,該文件不存在則創建文件-c文件不存在不創建文件,存在則改變文件的時間戳-a只改變文件的訪問時間-m改變文件的修改時間-t時間格式CCYYMMDDhhmm…

Java獲取上一周、上一個月、上一年的時間

SimpleDateFormat format new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”); Calendar c Calendar.getInstance(); 1.過去七天 c.setTime(new Date()); c.add(Calendar.DATE, - 7); Date d c.getTime(); String day format.format(d); System.out.println(“過去七天&#…

遠程網絡安裝RHEL5

一:Linux安裝工作原理 眾所周知,在安裝過程中Linux首先需要一個引導程序來讓安裝光盤啟動,再實行配置與安裝。但目前轉化為遠程網絡安裝那么就需要我們的安裝程序能夠遠程地通過網絡傳送給客戶端。因此在搭建遠程Linux安裝服務器時候首先要值…

sed命令操作

sed 是一種數據流編輯器,它一次處理一行內容,處理時,把當前處理的行存儲在臨時緩沖區(pattern space稱為“模式空間”)中,在內存中處理,完成后把該行發送到屏幕上,清理pattern space中的內容,接著重復剛才的動作,讀入下一行,直到文件處理結束。文件內容并沒有 改變,…

Portainer簡介及部署

一、介紹 Portainer是Docker的圖形化管理工具,提供狀態顯示面板、應用模板快速部署、容器鏡像網絡數據卷的基本操作(包括上傳下載鏡像,創建容器等操作)、事件日志顯示、容器控制臺操作、Swarm集群和服務等集中管理和操作、登錄用…