linux磁盤fio壓力測試,fio進行磁盤壓力測試

fio可以用來測試磁盤IO

常用的參數如下:

filename=/dev/emcpowerb 支持文件系統或者裸設備,-filename=/dev/sda2或-filename=/dev/sdb

direct=1? ? ? ? ? ? ? ? 測試過程繞過機器自帶的buffer,使測試結果更真實

rw=randwread? ? ? ? ? ? 測試隨機讀的I/O

rw=randwrite? ? ? ? ? ? 測試隨機寫的I/O

rw=randrw? ? ? ? ? ? ? ? 測試隨機混合寫和讀的I/O

rw=read? ? ? ? ? ? ? ? ? 測試順序讀的I/O

rw=write測試順序寫的I/O

rw=rw? ? ? ? ? ? ? ? ? ? 測試順序混合寫和讀的I/O

bs=4k? ? ? ? ? ? ? ? ? ? 單次io的塊文件大小為4k

bsrange=512-2048? ? ? ? 同上,提定數據塊的大小范圍

size=5g? ? ? ? ? ? ? ? ? 本次的測試文件大小為5g,以每次4k的io進行測試

numjobs=30? ? ? ? ? ? ? 本次的測試線程為30

runtime=1000? ? ? ? ? ? 測試時間為1000秒,如果不寫則一直將5g文件分4k每次寫完為止

ioengine=psync? ? ? ? ? io引擎使用pync方式,如果要使用libaio引擎,需要yum install libaio-devel包

rwmixwrite=30在混合讀寫的模式下,寫占30%group_reporting? ? ? ? ? 關于顯示結果的,匯總每個進程的信息

此外

lockmem=1g? ? ? ? ? ? ? 只使用1g內存進行測試

zero_buffers? ? ? ? ? ? 用0初始化系統buffer

nrfiles=8每個進程生成文件的數量

測試:

測試隨即讀:

fio -filename=/home/intellif/pandaTest -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=10G -numjobs=50 -runtime=180 -group_reporting -name=rand_100read_4k

輸出如下:

9bd8faf371bf

輸出結果

輸出結果的說明:

read列,io表明讀寫磁盤的數據量。bw代表磁盤的帶寬,隨即讀還是很慢的,大約5M/s(和此前自己認為的相差甚遠),iops是每秒的io數量,runt是總共花費的時間。

lat(usec),代表io的延遲,單位是納秒,250=0.02%,表示有0.02%的io花費了250ns

lat(msec0,代表延遲,單位是毫秒,2=0.24%表示有0.24的io花費了3ms,

大部分磁盤隨機讀的io在10-100ms之間。

其他的輸出,現在還不知道什么意思,以后再研究。

測試隨即寫:

fio -filename=/home/intellif/pandaTest -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=10G -numjobs=50 -runtime=180 -group_reporting -name=rand_100write_4k

輸出如下:

9bd8faf371bf

測試結果

隨即寫的話速率更低,4.4M/秒。

順序讀的測試如下:

fio -filename=/home/intellif/pandaTest -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=4k -size=10G -numjobs=50 -runtime=180 -group_reporting -name=sqe_100read_4k

輸出如下:

9bd8faf371bf

測試結果

順序讀達到了848M/秒!!!!沒有那么夸張吧,大部分讀只需要2ns!!!!!!!!!!!!!!!!難道用到了預讀,緩存這些???

順序寫的測試如下:

fio -filename=/home/intellif/pandaTest -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=4k -size=10G -numjobs=50 -runtime=180 -group_reporting -name=sqe_100write_4k

輸出如下:

9bd8faf371bf

輸出結果

順序寫的帶寬在25M/s左右,和順序讀的速率差別太大了吧。

100%隨機,70%讀,30%寫

fio -filename=/home/intellif/pandaTest -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=4k -size=10G -numjobs=50 -runtime=180 -group_reporting -name=randrw_70read_4k

輸出結果如下:

9bd8faf371bf

測試結果

隨機的話讀寫速度都不咋地。

io=執行了多少M的IO

bw=平均IO帶寬

iops=IOPS

runt=線程運行時間

slat=提交延遲

clat=完成延遲

lat=響應時間

bw=帶寬

cpu=利用率

IO depths=io隊列

IO submit=單個IO提交要提交的IO數

IO complete=Like the above submit number, but for completions instead.

IO issued=The number of read/write requests issued, and how many of them were short.

IO latencies=IO完延遲的分布

io=總共執行了多少size的IO

aggrb=group總帶寬

minb=最小.平均帶寬.

maxb=最大平均帶寬.

mint=group中線程的最短運行時間.

maxt=group中線程的最長運行時間.

ios=所有group總共執行的IO數.

merge=總共發生的IO合并數.

ticks=Number of ticks we kept the disk busy.

io_queue=花費在隊列上的總共時間.

util=磁盤利用率

4、擴展之IO隊列深度

在某個時刻,有N個inflight的IO請求,包括在隊列中的IO請求、磁盤正在處理的IO請求。N就是隊列深度。

加大硬盤隊列深度就是讓硬盤不斷工作,減少硬盤的空閑時間。

加大隊列深度 -> 提高利用率 -> 獲得IOPS和MBPS峰值 ->注意響應時間在可接受的范圍內,

增加隊列深度的辦法有很多,使用異步IO,同時發起多個IO請求,相當于隊列中有多個IO請求,多線程發起同步IO請求,相當于隊列中有多個IO請求。

增大應用IO大小,到達底層之后,會變成多個IO請求,相當于隊列中有多個IO請求 隊列深度增加了。

隊列深度增加了,IO在隊列的等待時間也會增加,導致IO響應時間變大,這需要權衡。

為何要對磁盤I/O進行并行處理呢?主要目的是提升應用程序的性能。這一點對于多物理磁盤組成的虛擬磁盤(或LUN)顯得尤為重要。

如果一次提交一個I/O,雖然響應時間較短,但系統的吞吐量很小。

相比較而言,一次提交多個I/O既縮短了磁頭移動距離(通過電梯算法),同時也能夠提升IOPS。

假如一部電梯一次只能搭乘一人,那么每個人一但乘上電梯,就能快速達到目的地(響應時間),但需要耗費較長的等待時間(隊列長度)。

因此一次向磁盤系統提交多個I/O能夠平衡吞吐量和整體響應時間。

Linux系統查看默認隊列深度:

lsscsi -l

9bd8faf371bf

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

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

相關文章

SpringMVC 實例 --非注解【過時的,留作回憶】

練習項目:test SpringMVC 實例 --非注解,只用于學習理解。到了spring 3.0以后或許部分東西已經過時了,在實際工作中并不一定好用。 但對于理解SpringMVC的實現方式很有幫助,在以后使用注解時,會明白是怎么個來龍去脈&a…

云場景實踐研究第27期:袋鼠云

更多云場景實踐研究案例,點擊這里:【云場景實踐研究合集】聯合不是簡單的加法,而是無限的生態,誰會是下一個獨角獸 隨著網站論壇粉絲數高漲,原有系統架構和服務器性能已無法滿足熱情高漲的粉絲需求。同時,網…

怎么在電腦上看磁盤分配單元的大小_電腦磁盤到底該不該分區?怎么分區?

“哥,在嗎?在你家新買的adolbook14 2020怎么只有一個C盤啊?”“電腦磁盤怎么重新分區啊?在線等!急!”“本電腦小白可太驕傲了,我居然自己給電腦磁盤分區了,一通操作猛如虎!”……那…

嵌入式Linux初始化硬件RTC,嵌入式Linux系統中的快速啟動技術研究

嵌入式Linux系統主要特點在于使用Bootloader替代了桌面系統的BIOS,同時對系統進行了規模上的裁剪,但硬件上的劣勢往往導致系統啟動速度較慢,而嵌入式產品使用者又對系統的開機速度比較敏感,樣就產生了對于提高嵌入式Linux系統啟動…

Ajax總結

Ajax的核心技術是XMLHttpRequest對象,它可以在不向服務器提交整個頁面的情況下,實現局部更新網頁。通過這個對象,Ajax可以像桌面應用程序那樣只與服務器進行數據層的交換,而不必每次都刷新界面,也不必每次將數據處理的工作都交給服…

SpringMVC訪問靜態資源的三種方式

如何你的DispatcherServlet攔截 *.do這樣的URL,就不存在訪問不到靜態資源的問題。如果你的DispatcherServlet攔截“/”,攔截了所有的請求,同時對*.js,*.jpg的訪問也就被攔截了。 目的:可以正常訪問靜態文件,不要找不到…

電腦如何進入bios模式_華碩筆記本電腦開機自動進入BIOS界面怎么辦?

最近很多人的華碩牌子筆記本有問題,說自己開機就直接進入BIOS了。對于這些小白來說,一臉懵逼啊,不知道怎么解決,其實大家也不要著急,堅哥來簡單幫大家分析一下。第一、可能系統的文件被更改,從而導致無法啟…

springmvc在controller和視圖之間傳遞參數

從視圖向controller傳遞值&#xff0c; controller <--- 視圖 1&#xff09;簡單類型&#xff0c;如int, String, 應在變量名前加RequestParam注解&#xff0c;例如&#xff1a; RequestMapping("hello3")public String hello3( RequestParam("name" …

蘋果手機怎么清理聽筒灰塵_怎么清理手機聽筒的灰塵?

作為一個專業的強迫癥從業者&#xff0c;我已經看不慣手機聽筒的灰塵很久了&#xff0c;在經歷無數次失敗之后&#xff08;針&#xff0c;牙刷&#xff0c;牙簽&#xff0c;吸塵器等等&#xff09;。我必須要來分享一個超級實用的方法清理手機聽筒的灰塵。那就是&#xff0c;起…

linux mrtg 命令,linux服務器之流量監控(MRTG)

本系列文章原則&#xff1a;灰常詳細&#xff0c;灰常簡單&#xff0c;新手包學包會&#xff01;因其簡單&#xff0c;故未涉及安全性方面的考慮呵&#xff01;本實驗服務器為rhel-5-server-i386&#xff0c;客戶端為windows xp。本實驗所用軟件包均在rhel-5-server-i386-dvd.i…

搭建網站必不可少的知識14

安全組配置 “操作”-“安全組配置” 單擊“內網入方向”&#xff0c;“添加安全組規則”默認配置即可“確定”。在公網入方向和公網出方向都這樣添加上。&#xff08;如果存在就先刪除后在添加&#xff09;。現在應該能登錄了。 輸入密碼&#xff0c;點擊“確定” 登錄后只有一…

8代cpu能跑linux,Intel公布6/7/8代桌面CPU打漏洞補丁性能結果:影響很小

今天&#xff0c;Intel執行副總裁數據、數據中心事業部總經理Navin Shenoy(孫納頤)發布了第二篇性能測試文章&#xff0c;針對客戶端也就是桌面平臺用戶在打上修復“Spectre”和“Meltdown”漏洞補丁之后的實際情況。對于大部分普通電腦用戶來說&#xff0c;性能的影響并不顯著…

Spring mvc interceptor配置攔截器

原文&#xff1a;http://blog.csdn.net/liyisong2008/article/details/42915715 -------------------------------------------------------------------------- xml代碼&#xff1a; [java] view plaincopy <?xml version"1.0" encoding"UTF-8"?>…

rm: 無法刪除swap: 不允許的操作_safe-rm老板再也不用擔心我刪庫跑路啦[視頻]

saferm 老板再不怕我刪庫跑路https://www.zhihu.com/video/1177717527541731328在 linux 上&#xff0c;使用 rm 是一件非常危險的事情(最近又有朋友遇到了我才想起了寫這篇文章)&#xff0c;如果不幸手殘執行了 rm -rf 刪除了重要文件&#xff0c;建議你準備收拾包袱跑路吧。既…

視頻通信基礎知識之采集

在之前的文章里&#xff0c;我們說了不少關于音視頻相關的內容&#xff0c;但是一直沒有系統的來介紹視頻通信&#xff0c;接下來我們將出一個系列關于視頻通信的文章。幫助大家對視頻通信有一個更全面的認識。系列文大綱如下&#xff1a;視頻通信采集視頻通信處理視頻通信編碼…

Spring MVC 流程圖

Spring工作流程描述1. 用戶向服務器發送請求&#xff0c;請求被Spring 前端控制Servelt DispatcherServlet捕獲&#xff1b;2. DispatcherServlet對請求URL進行解析&#xff0c;得到請求資源標識符&#xff08;URI&#xff09;。然后根據該URI&#xff0c;調用HandlerMapping獲…

kafka maven沒有下載_Kafka 系列(三)——Kafka 生產者詳解

首先介紹一下 Kafka 生產者發送消息的過程&#xff1a;Kafka 會將發送消息包裝為 ProducerRecord 對象&#xff0c; ProducerRecord 對象包含了目標主題和要發送的內容&#xff0c;同時還可以指定鍵和分區。在發送 ProducerRecord 對象前&#xff0c;生產者會先把鍵和值對象序列…

linux 硬盤繁忙,icinga2 借助check_iostat.sh抓取linux服務器的diskIO(硬盤繁忙度)

icinga2 借助check_iostat.sh抓取linux服務器的diskIO(硬盤繁忙度)下載地址&#xff1a;https://exchange.nagios.org/directory/Plugins/Operating-Systems/Linux/Check-Iostat-Updated/details對腳本進行修改(默認為$12&#xff0c;12為w_await值&#xff0c;14為%util值)UTI…

centos7安裝kubernetes1.9集群

節點規劃 本次選用一個master節點&#xff0c;三個node節點來安裝k8s集群。   節點IPM010.xx.xx.xxN010.xx.xx.xxN110.xx.xx.xxN210.xx.xx.xx集群啟動前的準備(請用root用戶執行) 節點準備工作(在每臺機器上執行) 包括修改主機名&#xff0c;關閉防火墻等操作。  k8s集群會…

oracle中查詢某張表的大小

select sum(bytes)/1024/1024 "表大小(M)" from user_segments where segment_nametable_name;--注&#xff0c;僅表數據的大小&#xff0c;不含索引、分區、LOB類型 select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name having Segm…