1. 程式人生 > >使用COSBench工具對ceph s3介面進行壓力測試

使用COSBench工具對ceph s3介面進行壓力測試

標籤:des   class   style   log   com   http   it   si   使用   

一、COSBench安裝

COSBench是Intel團隊基於java開發,對雲端儲存的測試工具,全稱是Cloud object Storage Bench

吐槽下,貌似這套工具是intel上海團隊開發的,竟然沒有中文的相關資料。

同所有的效能測試工具一樣,COSBench也分控制檯和發起請求的driver,且driver可以分散式部署。可以支援swift、s3、Openstack等介面

1、 下載COSBench工具

下載地址為:https://github.com/intel-cloud/cosbench,一定要下載最新的包
不然可能會執行失敗,本人就遇到啟動失敗的問題

2、 下載完成後,將包放至linux任意目錄中,進行解壓unzip xxx.zip

3、 解壓後,裡面有說明文件:COSBenchUserGuide.pdf,不過是英文的

4、 安裝第三方裝件,在centos下,需要安裝java 和curl

yum install java curl

COSBench底層呼叫了linux nc來做資料分析,所以如果linux沒裝nc的需要手工安裝nc

5、 解壓完成後,cd進入目錄,如目錄最新版本的示例0.4.2.c3,將sh檔案賦予執行許可權,這裡使用http協議進行傳送命令

[[email protected]_rbd_01]# cd 0.4.2.c3
[[email protected]
_rbd_01
0.4.2.c3]# chmod +x *.sh [[email protected]_rbd_01 0.4.2.c3]# unset http_proxy

二、 啟動

直接執行./start_all.sh檔案,會同時將control、driver同時執行,但driver只能在一臺上啟動,後續會說新增多臺driver

啟動成功後輸入http://127.0.0.1:19088/controller/index.html就會出現頁面,如果是在windows上檢視,這裡的ip需要換成linux的本機IP地址,並確定19088埠是放行的。

如下圖所示:

技術分享

在這裡遇到一個問題,每次啟動後時區都顯示不對,且發起請求後,時間也會更改,原來是要修改啟動指令碼cosbench-start.sh

修改java啟動如下:

/usr/bin/nohup java  -Duser.timezone=Asia/Shanghai -Dcosbench.tomcat.config=$TOMCAT_CONFIG -server -cp main/* org.eclipse.equinox.launcher.Main -configuration $OSGI_CONFIG -console $OSGI_CONSOLE_PORT 1> $BOOT_LOG 2>&1 &

三、配置

Control.conf的配置

配置基本資訊及driver資訊,

注意,driver必須以driver<n>的形式新增,不然無法識別,如下:

[driver1]
name = driver1
url = http://*.11:18088/driver

[driver2]
name = driver2
url = http://*.12:18088/driver

[driver3]
name = driver3
url = http://*.13:18088/driver

[driver4]
name = driver4
url = http://*.14:18088/driver

Driver.conf的配置

配置你需要發起壓力的dirver,可以不啟動,如果沒有啟動,在controller overview中將看不到driver

如果要在不同機器啟動dirver,需要分別執行start-driver.sh,並確保通訊是否正常,可以通過 curl http://<dirver-host>:18088/driver/index.html確定通訊是否正常

四、 指令碼配置

有很多模板的例子,在conf目錄下,如librados-config-sample.xml、s3-config-sample.xml

這裡只測試s3的介面,所以先關注s3的相關配置

S3的配置在頁面上選擇時沒有顯示出來,所以我們就進行手工配置

<workstage name="prepare">
<storage type="s3" config="accesskey=<accesskey>;secretkey=<scretkey>;proxyhost=<proxyhost>;proxyport=<proxyport>;endpoint=<endpoint>" />
      <work type="prepare" workers="1" config="cprefix=s3testqwer;containers=r(1,2);objects=r(1,10);sizes=c(64)KB" />
</workstage>

配置的說明如下(參考userGuide.pdf)

<workstage name="prepare">

屬性型別預設值備註
NameString名字,隨便取
<work type="prepare" workers="1" config="cprefix=s3testqwer;containers=r(1,2);objects=r(1,10);sizes=c(64)KB" />

這裡插入pdf中的說明:

技術分享技術分享

對於s3介面來說,一般有下面幾種work type: init、prepare、dispose、cleanup,具體可以參考demo文件

這裡給出幾個示例配置文件:

建立buckets

- <workload name="initBucket" description="sample benchmark for s3">
  <storage type="s3" config="accesskey=V02TU7BTTHYSVINSRB7P;secretkey=b2u6ZgiNVlnfsDUpBigEbZKX9Na7kvM7UWEMrtPN;endpoint=http://xx.xx.xx.xx/" /> 
- <workflow>
- <workstage name="init_create_bucket">
  <work type="init" workers="1" config="cprefix=test;containers=r(1,2)" /> 
  </workstage>
  </workflow>
  </workload>

獲取資料

<?xml version="1.0" encoding="UTF-8" ?> 
- <workload name="get-100Workers-64k" description="sample benchmark for s3">
  <storage type="s3" config="accesskey=V02TU7BTTHYSVINSRB7P;secretkey=b2u6ZgiNVlnfsDUpBigEbZKX9Na7kvM7UWEMrtPN;endpoint=http://xx.xx.xx.xx/" /> 
- <workflow>
- <workstage name="get 64k data with 100 workers">
- <work name="Get64KBData" workers="25" totalOps="75000" driver="sv40">
  <operation type="read" ratio="100" config="cprefix=test;oprefix=100wks_64k;containers=c(1);objects=u(1,75000)" /> 
  </work>
  </workstage>
  </workflow>
  </workload>

這裡的workers表示併發數,totalOps表示總的運算元,driver為不同的壓力機器,根據userGuide文件,裡面有很多引數可選,如下:

屬性型別預設值說明
workers整型必須配併發數
interval整型5s

間隔時間

division字元"none"可選:[“none”|
“container”|
“object”]
runtime整型0執行多長時間
rampup整型0

多長時間啟動完後所有的併發,與jmeter

中類似,與runtime衝突,不能一起配

rampdown整型0結束數,與runtime也不能一起配

上傳資料

<?xml version="1.0" encoding="UTF-8" ?> 
- <workload name="put-100Workers-4MB" description="sample benchmark for s3">
  <storage type="s3" config="accesskey=V02TU7BTTHYSVINSRB7P;secretkey=b2u6ZgiNVlnfsDUpBigEbZKX9Na7kvM7UWEMrtPN;endpoint=http://x.x.x.x/" /> 
- <workflow>
- <workstage name="put 4MB data with 100 workers">
- <work name="Put64KBData1" workers="25" totalOps="75000" driver="sv40">
  <operation type="write" ratio="100" config="cprefix=test;oprefix=100wks_64k;containers=c(1);objects=s(1,75000);sizes=c(4)MB" /> 
  </work>
  </workstage>
  </workflow>
  </workload>

五、檢視結果

下圖為測試完成後的一個結果截圖

技術分享

從圖中我們可以看到與任務一個壓力工具都是的指標

1、Avg-ResTime  響應平均時間

2、Avg-ProcTime 平均處理時間

3、Throughput:吞吐量,也就是我們常說的TPS

4、bandwith:頻寬

5、succ-ratio :成功數

這裡有一個遺憾點是,效能測試中的資源監控沒辦法加入,比如cpu記憶體之類的,只能自己寫指令碼收集資料。

標籤:des   class   style   log   com   http   it   si   使用   

原文:http://www.cnblogs.com/landhu/p/5843282.html

相關推薦

使用COSBench工具ceph s3介面進行壓力測試

標籤:des   class   style   log   com   http   it   si   使用   一、COSBench安裝COSBench是Intel團隊基於java開發,對雲端儲存的測試工具,全稱是Cloud object Storage Benc

使用 WRK 壓力測試工具 ASP.NET Core 的介面進行壓力測試

0. 簡要介紹 WRK 是一款輕量且易用的 HTTP 壓力測試工具,通過該工具我們可以方便地對我們所開發的 WebAPI 專案進行壓力測試,並且針對測試的情況返回結果。 PS:Wrk 並不能針對測試的結果生成動態的圖表,如果有這種需要,可以嘗試使用另一款工具 Vegeta。該專案使用的 Golang 進行編

(轉)用mysql自帶工具mysqlslap對數據庫進行壓力測試

執行 fec syntax counter stat autoload show 多少 creat http://aolens.blog.51cto.com/7021142/1901557-------用mysql自帶工具mysqlslap對數據庫進行壓力測試 mysqls

springboot dao層介面進行單元測試-springboot(4)

前言 接著之前的springboot專案,來寫springboot對dao層介面測試。 正文 之前我的springboot專案在初始化就自動引入了測試依賴,所以無需再次引入其他。 新增函式 mybatis自動生成了6個基本函式,但是開發中這些函式遠遠不夠

利用ab壓力工具服務器進行壓力測試

因此 win request 過大 .exe http cond don bin 假如我們需要對http://letv.com進行壓力測試,指定請求總數為100,並發用戶數為10,我們可以以下面的方式進行測試 $ ab -n 100 -c 10 http://letv

使用Jmeter工具tomcat進行壓力測試(7)

本文主要使用jmeter工具對tomcat8進行壓力測試,並使用java visualVM進行壓測效能監控,通過監控資料調整tomcat引數 步入正題: 首先作業系統已優化完成,java版本為1.8以上,tomcat版本8.0.48,根據自己實際情況而定 使用tomcat預設引數進行壓測 #vi

linux下使用ab工具伺服器進行壓力測試

ab 安裝 yum -y install httpd-tools (centos) 安裝完成後使用ab -v 檢視ab版本確認是否安裝成功 選項 選項 含義 -A auth-username:password 對伺服器提供BASIC認證信任。 使

使用abweb服務進行壓力測試

服務器 時間限制 pac 0.10 字節 -s 重復 最小 傳輸速率 ab  需要先安裝httpd -A auth-username:密碼 向服務器提供BASIC認證憑證。用戶名和密碼由一個單獨分隔 -c並發 一次執行的多個請求數。默認是一次一個請求。 -C cookie-

【MySQL】【壓測】使用sysbenchMySQL進行壓力測試

usr with sleep library val repos then plot 停止 1.背景 ? 出自percona公司,是一款多線程系統壓測工具,可以根據影響數據庫服務器性能的各種因素來評估系統的性能。例如,可以用來測試文件IO,操作系統調度器,內存分配和傳輸

開發者測試-采用精準測試工具Spring Boot應用進行測試

新建 之間 分享 maven倉庫 第一個 項目 數據傳輸 寫實 blog 簡介:本文主要介紹把現今主流的springboot框架項目和精準測試工具進行結合和應用,通過精準測試的數據穿透、數據采集、測試用例與代碼的雙向追溯、數據分析等一系列精準測試的特有功能,達到對項目質量的

使用ab網站進行壓力測試

進行 壓力 測試 oca tools ray local too install 1、安裝yum install httpd-tools 2、ab -kc 1000 -n 1000 http://localhost/ab.html 這個指令會使用1000個並發,進行連接

.net core 使用ConcurrentTest元件方法進行壓力測試

工欲善其事,必先利其器!在編寫服務中首先要有一個好的測試工具,在dontecore下效能測試有BenchmarkDotNet,只需要簡單的配置一下就可以對方法的效能進行詳細的測試。但有時候需要對不同併發下看其處理效率和延時統計檢視,如HTTP服務對應著大量的測試工具如ab,bombardier等等。由於找不到

非同步處理的http介面進行效能測試

對非同步處理的http介面進行效能測試 以前對介面做效能測試,介面都是同步處理的,請求之後等待響應結果就知道處理結果了,這樣只要看這個介面是否異常,如果無異常無報錯記錄這個介面的響應時間、TPS等效能指標進行分析就可以了,最近在工作中遇到了非同步處理的介面,邏輯是隻要你請求引數全部合法,即返回成

【星雲測試】開發者測試-採用精準測試工具Spring Boot應用進行測試

簡介:本文主要介紹把現今主流的springboot框架專案和精準測試工具進行結合和應用,通過精準測試的資料穿透、資料採集、測試用例與程式碼的雙向追溯、資料分析等一系列精準測試的特有功能,達到對專案質量的保證。   本次環境搭建分為基礎環境準備、springboot環境搭建、精準測試環境搭建、精準

使用abTomcat8.5進行壓力測試

背景 一直不是很清楚tomcat能力大約是個什麼水平,到底算不算web伺服器中的高手,今天決定試試這傢伙的深淺。 恰好了解到apache自帶的ab(apache benchmark)工具可以進行簡單的壓力測試,所以就用它來試試。 流程 先配置tomcat8.5,

QT——如何在不同執行緒中同一個UI介面進行操作

最近在做一個介面,這個介面的功能有兩個: (1)點選開始按鈕,進入迴圈,等待裝置插入; (2)點選停止按鈕,中止等待過程。 對於“開始”按鈕,很自然的就寫了個while,在迴圈裡等待裝置插入。但是這就出現一個問題:這個執行緒就直接陷進了while裡,就是說點選“取消”沒

使用MonkeyAPP進行壓力測試

最近在對新開發的APP進行壓力測試,學習了Monkey。在這裡進行一下總結和記錄。 monkey是手機系統自帶的一個軟體,它存在於adb shell中,對使用者是不可見的,但是可以通過ADB(Android Debug Bridge)進入手機系統裡面,它主要是生成使用者

linux實訓第三天--linux使用ab命令來web網站進行壓力測試/DDOS攻擊

ab -n 100 -c 10 http://127.0.0.1/index.html -n requests     Number of requests to perform     要執行的請求數量 -c concurrenc

使用JMeterTomcat進行壓力測試與Tomcat效能調優

一、準備工作。       1、安裝JDK1.6或1.6版本以後的,並配置環境變數。       2、在Apache的官網下載最新的Jmeter,  http://jmeter.apache.org/download_jmeter.cgi,截止目前為止,最新的Jmeter是

什麼是壓測,為什麼要進行壓力測試?JMETER工具的使用.

1.背景介紹 效能測試是通過自動化的測試工具模擬多種正常峰值和異常負載條件來對系統的各項效能指標進行測試。 效能測試包括,負載測試,強度測試,容量測試 通過負載測試,確定在各種工作負載下系統的效能,目標是當負載逐漸增加時,測試系統各項效能指標的變 化的情況. 壓力測試是