sysbench

SysBench是一個模塊化的、跨平臺、多線程基準測試工具,主要用於評估測試各種不同系統參數下的數據庫負載情況。它主要包括以下幾種方式的測試:
       1、cpu性能
       2、磁盤io性能
       3、調度程序性能
       4、內存分配及傳輸速度
       5、POSIX線程性能
       6、數據庫性能(OLTP基準測試)      
目前sysbench主要支持 MySQL,pgsql,oracle 這3種數據庫。
  • 項目主頁: [url]http://sysbench.sourceforge.net/[/url]
  • 文檔地址: [url]http://sysbench.sourceforge.net/docs/[/url]
  • 下載地址: [url]http://sourceforge.net/projects/sysbench
  • Sysbench-開源的性能測試工具

    sysbench是一款開源的性能測試工具,可以對多種數據庫的性能進行測試,包括用來對MySQL,ORACLE,POSTGRESQL進行性能測試。
    sysbench按照指定的數量開啓線程,每個線程與MySQL建立一個連接,每個線程不停地進行事務操作,打開事務,然後進行一些查詢、更新、插入操作,提交事務,再開始新的事務;所有的SQL只訪問一個表--sbtest,是由sysbench的prepare命令建好的。其中的記錄數,也是在prepare時指定好並創建的。測試結束,會有一個統計結果,包括例如每秒事務數、平均響應時間等等;
    以下是sysbench的配置使用方法:
    1, 下載安裝包 到網站http://www.filewatcher.com/_/?q=sysbench 下載安裝包比如 : sysbench-0.4.6.tar.gz
    2, 安裝MySQL開發支持包(這裏假設MySQL已經安裝好在/usr/local/mysql目錄下)
    下載MySQL devel或者 share 包。(比如:MySQL-shared-compat-5.0.41-0.rhel4.i386.rpm,MySQL-devel-community-5.0.37-0.rhel4.rpm),保證你的 MySQL lib目錄下有對應的so 文件。
    3, 解壓,編譯安裝sysbench
    解壓到目錄sysbench-0.4.6:
    # tar -zxvf sysbench-0.4.6.tar.gz
    配置sysbench:
    #cd sysbench-0.4.6
    命令爲:
    [root@localhost sysbench-0.4.6]# ./configure --prefix=/usr/local/sysbench/ --with-mysql-includes=/usr/local/mysql/include/ --with-mysql-libs=/usr/local/mysql
    如果想要讓 sysbench 支持 pgsql/oracle 的話,就需要在編譯的時候加上參數 --with-pgsql或者--with-oracle。這2個參數默認是關閉的,只有 MySQL 是默認支持的。

    編譯安裝sysbench:
    #make;make install
    出現錯誤了:


    仔細看了下,原來是” 保證你的 MySQL lib目錄下有對應的 so 文件”
    把MySQL-shared-compat-5.0.41-0.rhel4.i386.rpm包安裝上,一切ok啦!
    # rpm -ivh MySQL-shared-compat-5.0.41-0.rhel4.i386.rpm
    現在配置完畢.後續怎樣測試.

    一、安裝
    首先,在 http://sourceforge.net/projects/sysbench 下載源碼包。

    wget http://downloads.sourceforge.net/project/sysbench/sysbench/0.4.12/sysbench-0.4.12.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fsysbench%2F&ts=1305636705&use_mirror=nchc
    接下來,按照以下步驟安裝:
    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

    Xml代碼  收藏代碼
    1.  ./configure  --with-mysql-includes=/usr/local/webserver/mysql5.1.57/include --with-mysql-libs=/usr/local/webserver/mysql5.1.57/lib  
    2. make  
    3. make install  


    當然了,用上面的參數編譯的話,就要確保你的 MySQL lib目錄下有對應的 so 文件,如果沒有,可以自己下載 devel 或者 share 包來安裝。

    注意,因爲本服務器是靜態編譯安裝,無法正常安裝,下載了一個noinstall版本的安裝的


    Configure代碼  收藏代碼
    1. 開始前,執行./autogen.sh  
    2.  ./configure   --with-mysql-includes=/mnt/sdb/soft/mysql-5.1.57-linux-x86_64-glibc23/include/ --with-mysql-libs=/mnt/sdb/soft/mysql-5.1.57-linux-x86_64-glibc23/lib/   
    3.   
    4. make  
    5. make install  


    另外,如果想要讓 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 支持的表存儲引擎類型。 .


    Sysbench 代碼  收藏代碼
    1. sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=1000000 \--mysql-socket=/tmp/mysql.sock --mysql-user=root --mysql-db=test --num-threads=4 run  


    Sysbench-install 代碼  收藏代碼
    1. sysbench – Linux test bench. Easy as pie to test CPU, memory, threads, mysql, and disk performance.  
    2.   
    3. Full description is available here: http://sysbench.sourceforge.net/docs/  
    4.   
    5. install mysql, mysql-devel  
    6. wget http://superb-west.dl.sourceforge.net/sourceforge/sysbench/sysbench-0.4.8.tar.gz  
    7. tar xvzf sysbench*gz  
    8. cd sysbench*  
    9. ./configure && make install  
    10. mysql tests  
    11.   
    12. This will run 10 separate consecutive mysql tests using an InnoDB table type, each with 100 mysql threads, doing a total of 1000 various SQL operations per test. Then it will print the total time they took to finish:  
    13.   
    14. sysbench --test=oltp --mysql-user=USER --mysql-password=PASS --mysql-db=test \  
    15.   --mysql-host='HOST' --mysql-table-engine=innodb prepare  
    16.    
    17. time perl -e "foreach(1..10){print \`sysbench --max-requests=1000 --test=oltp \  
    18.   --mysql-user=USER --mysql-password=PASS --mysql-db=test --mysql-host='HOST' \  
    19.   --mysql-table-engine=innodb --num-threads=100 run\`}"  
    20.    
    21. sysbench --test=oltp --mysql-user=USER --mysql-password=PASS --mysql-db=test \  
    22.   --mysql-host='HOST' cleanup  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章