最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker部署Fio磁盤讀寫測試過程

 更新時間:2026年01月19日 09:13:42   作者:竹杖芒鞋輕勝馬,誰怕?一蓑煙雨任平生。  
文章主要內(nèi)容是介紹如何使用Fio測試工具進(jìn)行磁盤性能測試,包括拉取測試工具鏡像、啟動容器、執(zhí)行測試以及詳細(xì)解釋Fio的命令行參數(shù)和配置文件

1.拉取測試工具鏡像

docker pull registry.cn-hangzhou.aliyuncs.com/offends/fio:latest

2.啟動并進(jìn)入容器

掛盤或者建目錄/data進(jìn)行測試

docker run --name disktest \
  -it --rm -v /data/disk_test:/data/disk_test \
  registry.cn-hangzhou.aliyuncs.com/offends/fio:latest \
  sh

3.開始測試

```dart
# 順序讀測試 (1M塊大小, 10GB數(shù)據(jù))
fio --name=seq_read --filename=/testfile --size=10G --rw=read --bs=1M --direct=1 --ioengine=libaio --iodepth=32 --runtime=60 --time_based

# 順序?qū)憸y試
fio --name=seq_write --filename=/testfile --size=10G --rw=write --bs=1M --direct=1 --ioengine=libaio --iodepth=32

# 隨機(jī)讀測試 (4K塊大小)
fio --name=rand_read --filename=/dev/sdb --rw=randread --bs=4k --direct=1 --ioengine=libaio --iodepth=32 --numjobs=4 --runtime=60 --group_reporting

# 隨機(jī)寫測試
fio --name=rand_write --filename=/dev/sdb --rw=randwrite --bs=4k --direct=1 --ioengine=libaio --iodepth=32 --numjobs=4

3. 混合讀寫測試
# 70%讀30%寫的混合負(fù)載
fio --name=mixed_rw --filename=/dev/nvme0n1 --rw=randrw --bs=4k --direct=1 --ioengine=libaio --iodepth=32 --numjobs=8 --rwmixread=70 --runtime=120 --group_reporting

4. 數(shù)據(jù)庫模式測試
# 模擬數(shù)據(jù)庫負(fù)載 (小隨機(jī)讀寫)
fio --name=db_workload --filename=/dev/sdb --rw=randrw --bs=8k --direct=1 --ioengine=libaio --iodepth=32 --numjobs=16 --runtime=300 --group_reporting --rwmixread=70 --time_based

4.Fio提供兩種配置方式

命令行參數(shù)說明

參數(shù) 描述

  • –debug=options 啟用調(diào)試日志記錄,可以選擇啟用不同類型的調(diào)試信息,比如進(jìn)程、文件、IO等等。
  • –parse-only 僅解析選項,不執(zhí)行任何IO操作。
  • –output 將輸出寫入文件。
  • –bandwidth-log 生成帶寬日志。
  • –minimal 生成最小化(簡潔)的輸出。
  • –output-format=type 指定輸出格式,可以是簡潔、JSON等。
  • –terse-version=type 設(shè)置簡潔版本輸出格式。
  • –version 打印版本信息并退出。
  • –help 打印幫助信息。
  • –cpuclock-test 執(zhí)行CPU時鐘的測試/驗證。
  • –crctest=[type] 測試校驗和功能的速度。
  • –cmdhelp=cmd 打印命令幫助,使用”all”可以查看所有命令。
  • –enghelp=engine 打印IO引擎的幫助信息,或者列出可用的IO引擎。
  • –enghelp=engine,cmd 打印特定IO引擎命令的幫助信息。
  • –showcmd 將作業(yè)文件轉(zhuǎn)換為命令行選項。
  • –eta=when 指定何時打印ETA(預(yù)計完成時間)估計值。
  • –eta-newline=time 每個 ‘time’ 時間段強(qiáng)制換行顯示ETA。
  • –status-interval=t 每個 ‘t’ 時間段強(qiáng)制完整狀態(tài)轉(zhuǎn)儲。
  • –readonly 打開安全只讀檢查,防止寫入。
  • –section=name 只運行作業(yè)文件中指定的部分,可以指定多個部分。
  • –alloc-size=kb 將smalloc池的大小設(shè)置為指定的kb數(shù)(默認(rèn)為16384)。
  • –warnings-fatal Fio解析器警告變?yōu)橹旅e誤。
  • –max-jobs=nr 支持的最大線程/進(jìn)程數(shù)。
  • –server=args 啟動后端fio服務(wù)器。
  • –daemonize=pidfile 后臺運行fio服務(wù)器,將PID寫入文件。
  • –client=hostname 與遠(yuǎn)程后端fio服務(wù)器通信。
  • –remote-config=file 告訴fio服務(wù)器加載本地作業(yè)文件。
  • –idle-prof=option 報告系統(tǒng)或每CPU基礎(chǔ)的CPU空閑情況或運行單位工作校準(zhǔn)。
  • –inflate-log=log 解壓縮并輸出壓縮日志。
  • –trigger-file=file 當(dāng)文件存在時執(zhí)行觸發(fā)命令。
  • –trigger-timeout=t 在指定的時間執(zhí)行觸發(fā)器。
  • –trigger=cmd 將此命令設(shè)置為本地觸發(fā)器。
  • –trigger-remote=cmd 將此命令設(shè)置為遠(yuǎn)程觸發(fā)器。
  • –aux-path=path 使用此路徑作為fio生成文件的路徑。

配置文件

配置文件參考

[global]
directory = /workspaces/zeodev/test-io  # 替換為你的測試目錄路徑
ioengine  = libaio         # 異步 I/O 引擎,提高并發(fā)效率
direct    = 1              # 繞過系統(tǒng)緩存,測試真實磁盤性能
runtime   = 300            # 測試時長(秒)
randrepeat= 1              # 確保隨機(jī)模式可復(fù)現(xiàn)
time_based= 1              # 按時間運行(而非文件大小)

# 大文件隨機(jī)讀寫
[bigfile_randrw]
filesize    = 2g           # 測試文件大?。ńㄗh≥內(nèi)存 2 倍)
bs          = 128k         # 大塊 I/O(128KB),匹配大文件訪問特征
rw          = randrw       # 隨機(jī)讀寫混合模式
rwmixread   = 70           # 70% 讀 + 30% 寫(常見負(fù)載比例)
iodepth     = 32           # 隊列深度 32(適合 NVMe SSD)
numjobs     = 4            # 并發(fā)作業(yè)數(shù)(總并發(fā)=32×4=128)
group_reporting=1          # 匯總測試結(jié)果(默認(rèn)每個線程一個 report)

# 小文件隨機(jī)讀寫
[smallfiles_randrw]
stonewall   = 1            # 等待之前的 job 運行完成
                           # (默認(rèn)所有 job 并行)
nrfiles     = 250          # 創(chuàng)建 250 個獨立文件/job
filesize    = 4k-2m        # 每個文件大小范圍(典型小文件)
bs          = 4k           # 小塊(4KB),模擬真實小文件 I/O
rw          = randrw
rwmixread   = 70
iodepth     = 64           # 高隊列深度應(yīng)對高頻率 I/O
numjobs     = 16           # 并發(fā)作業(yè)數(shù)(總并發(fā)=64×16=1024)
fsync       = 1            # 每寫操作后同步元數(shù)據(jù)(會顯著影響性能,增強(qiáng)真實性)
group_reporting=1

# 大文件順序讀取
[largefile_seq_read]
stonewall   = 1
rw          = read
filesize    = 2g
bs          = 1m           # 大塊 I/O(1MB),最大化吞吐
iodepth     = 128
numjobs     = 4
group_reporting=1

# 大文件順序?qū)懭?
[largefile_seq_write]
stonewall   = 1
rw          = write
filesize    = 2g
bs          = 1m
iodepth     = 128
numjobs     = 4
group_reporting=1

fio完整輸出結(jié)果樣例

Starting 4 processes
Jobs: 4 (f=4): [r(4)][100.0%][r=1024MiB/s][r=262k IOPS][eta 00m:00s]
fio: (groupid=0, jobs=4): err= 0: pid=12345: Mon Dec 18 10:30:45 2023
  read: IOPS=261k, BW=1021MiB/s (1071MB/s)(120GiB/120048msec)
    slat (nsec): min=2, max=1234, avg= 5.00, stdev= 1.23
    clat (nsec): min=123, max=45678, avg=98765.00, stdev=2345.67
     lat (nsec): min=125, max=45689, avg=98770.00, stdev=2345.89
    clat percentiles (nsec):
     |  1.00th=[  125],  5.00th=[  250], 10.00th=[  500],
     | 25.00th=[ 1000], 50.00th=[ 2000], 75.00th=[ 5000],
     | 90.00th=[10000], 95.00th=[20000], 99.00th=[50000],
     | 99.50th=[70000], 99.90th=[100000], 99.95th=[120000],
     | 99.99th=[150000]
   bw (  MiB/s): min= 1000, max= 1050, per=100.00%, avg=1021.00, stdev=12.34
   iops        : min=256000, max=268800, avg=261440.00, stdev=3160.45
   lat (usec)  : 2=0.01%, 4=0.05%, 10=0.10%, 20=0.25%, 50=0.50%, 100=1.00%
   lat (usec)  : 250=2.00%, 500=5.00%, 1000=10.00%, 2000=20.00%, >=2000=61.09%
  cpu          : usr=45.23%, sys=54.77%, ctx=12345678, majf=0, minf=81
  IO depths    : 1=0.1%, 2=0.2%, 4=0.5%, 8=1.0%, 16=2.0%, 32=4.0%, >=64=92.2%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=100.0%, >=64=0.0%
  issued rwt: total=31457280,0,0, short=0,0,0, drop=0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=64

測試結(jié)果指標(biāo)分析

1. 基礎(chǔ)性能指標(biāo)
IOPS(Input/Output Operations Per Second)

表示每秒完成的I/O操作次數(shù)
對于隨機(jī)讀寫場景,IOPS是核心指標(biāo)
示例中261k IOPS表示每秒261,000次讀操作
帶寬(Bandwidth/BW)

表示每秒傳輸?shù)臄?shù)據(jù)量
單位可以是MiB/s或MB/s(注意二進(jìn)制與十進(jìn)制區(qū)別)
示例中1021MiB/s = 1021 × 1.048576 ≈ 1070 MB/s
2. 延遲(Latency)統(tǒng)計
延遲是衡量存儲響應(yīng)速度的關(guān)鍵指標(biāo),F(xiàn)io提供了三個維度的延遲數(shù)據(jù):

slat(Submission Latency):提交I/O請求到內(nèi)核的時間
clat(Completion Latency):I/O請求完成的時間
lat(Total Latency):從提交到完成的總時間
延遲百分位數(shù)(Percentiles) 這是最重要的性能分析數(shù)據(jù),展示了不同百分比的延遲分布:

clat percentiles (nsec):
 |  1.00th=[  125],  5.00th=[  250], 10.00th=[  500],
 | 25.00th=[ 1000], 50.00th=[ 2000], 75.00th=[ 5000],
 | 90.00th=[10000], 95.00th=[20000], 99.00th=[50000],
解讀示例:

50%的請求(中位數(shù))延遲在2微秒以內(nèi)
99%的請求延遲在50微秒以內(nèi)
99.9%的請求延遲在100微秒以內(nèi)
3. CPU使用情況
cpu          : usr=45.23%, sys=54.77%, ctx=12345678, majf=0, minf=81
usr%:用戶空間CPU時間占比
sys%:內(nèi)核空間CPU時間占比
ctx:上下文切換次數(shù)
majf/minf:主要/次要頁面錯誤數(shù)
4. I/O深度分布
IO depths    : 1=0.1%, 2=0.2%, 4=0.5%, 8=1.0%, 16=2.0%, 32=4.0%, >=64=92.2%
這顯示了I/O請求在不同隊列深度下的分布情況。高百分比的>=64表示系統(tǒng)能夠有效利用高并發(fā)I/O。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于jib-maven-plugin插件快速構(gòu)建微服務(wù)docker鏡像的方法

    基于jib-maven-plugin插件快速構(gòu)建微服務(wù)docker鏡像的方法

    這篇文章主要介紹了基于jib-maven-plugin快速構(gòu)建微服務(wù)docker鏡像的方法,對于?Java?程序來說使用?jib-maven-plugin?插件來構(gòu)建鏡像還是非常方便的,本文通過實例代碼詳細(xì)講解,需要的朋友可以參考下
    2023-02-02
  • Docker 無法停止或刪除容器服務(wù)問題的解決方案

    Docker 無法停止或刪除容器服務(wù)問題的解決方案

    這篇文章主要介紹了Docker 無法停止或刪除容器服務(wù)問題的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • docker學(xué)習(xí)筆記之把容器commit成鏡像的方法

    docker學(xué)習(xí)筆記之把容器commit成鏡像的方法

    本篇文章主要介紹了docker學(xué)習(xí)筆記之把容器commit成鏡像,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Docker目錄遷移的詳細(xì)執(zhí)行步驟(按腳本流程)

    Docker目錄遷移的詳細(xì)執(zhí)行步驟(按腳本流程)

    我們在生產(chǎn)環(huán)境中安裝Docker時,默認(rèn)的安裝目錄是?/var/lib/docker,而通常情況下,規(guī)劃給系統(tǒng)盤的目錄一般為50G,該目錄是比較小的,一旦容器過多或容器日志過多,就可能出現(xiàn)Docker無法運行的情況,所以我們進(jìn)行Docker目錄遷移,本文給大家介紹了Docker目錄遷移的詳細(xì)步驟
    2025-07-07
  • Docker容器下運行Nginx并實現(xiàn)反向代理

    Docker容器下運行Nginx并實現(xiàn)反向代理

    這篇文章介紹了Docker容器下運行Nginx并實現(xiàn)反向代理的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • docker安裝redmine步驟

    docker安裝redmine步驟

    在本篇文章里小編給大家整理的是關(guān)于docker安裝redmine步驟和相關(guān)代碼,需要的朋友們學(xué)習(xí)下。
    2020-01-01
  • docker compose idea CreateProcess error=2 系統(tǒng)找不到指定的文件的問題

    docker compose idea CreateProcess error=2 系統(tǒng)找不到指定的文件的問題

    這篇文章主要介紹了docker compose idea CreateProcess error=2 系統(tǒng)找不到指定的文件的問題及解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Docker -p將容器內(nèi)部的端口映射到宿主機(jī)的端口方式

    Docker -p將容器內(nèi)部的端口映射到宿主機(jī)的端口方式

    文章介紹了使用-docker參數(shù)將容器內(nèi)部端口映射到宿主機(jī)端口的方法,包括單端口映射、多端口映射、自動分配宿主機(jī)端口、查看實際端口、綁定特定宿主機(jī)IP和測試端口連通性
    2025-11-11
  • Docker-compose一鍵部署gitlab中文版的方法步驟

    Docker-compose一鍵部署gitlab中文版的方法步驟

    這篇文章主要介紹了Docker-compose一鍵部署gitlab中文版的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • 詳細(xì)docker-maven-plugin使用方法

    詳細(xì)docker-maven-plugin使用方法

    本文主要介紹了詳細(xì)docker-maven-plugin使用方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09

最新評論

宁安市| 武山县| 张家口市| 陇南市| 望奎县| 顺昌县| 龙游县| 梨树县| 瓦房店市| 祥云县| 宁阳县| 都昌县| 隆化县| 宣武区| 深水埗区| 崇阳县| 九江市| 元朗区| 成武县| 洞头县| 苍溪县| 阿克| 兴化市| 泌阳县| 明水县| 蒙城县| 关岭| 铜山县| 富民县| 建瓯市| 安宁市| 德钦县| 麻阳| 鄂尔多斯市| 丰台区| 武乡县| 广灵县| 南开区| 西贡区| 金川县| 班玛县|