小文件IO性能测试

2018-10-26  本文已影响0人  落辰风雷

这是最近工作中投入精力较大的一个任务,今天是周五,本来想着放松一下,好好吃吃东西发发呆,可是自己这段时间内很多时间都被这件事情占用,不想着做一些什么让它留个回忆来纪念这段时间我的时间花费实在是不甘心呀。

目标:300k + 50k 同时读写,通过san开出的iscsi盘向存储读写,在千兆网传输下达到的100M左右

基础环境:

以上描述大家肯定有很多不懂得地方,这里简单讲解一下我测试用到的一些与性能有关的东西

开始执行io测试

我总共使用三个工具尝试 rbd benchfio、我们同事的io工具small_io_tool

rbd bench(先避开网络因素和san环境的封装因素,直接向本地盘刷数据)

使用前提:

rbd bench-write <RBD image name>语法如下,可带参数,这里可以参考ceph环境如何创建rbd块设备

执行

[root@node1 ~]# rbd bench-write rbd_write --io-size 307200 --io-threads 20 --io-total 3072000000 -p data
rbd: bench-write is deprecated, use rbd bench --io-type write ...
bench  type write io_size 307200 io_threads 20 bytes 3072000000 pattern sequential
  SEC       OPS   OPS/SEC   BYTES/SEC
    1      1121   1117.59  343322870.14
    2      2274   1144.97  351734522.67
    3      3165   1061.21  326004583.38
    4      4392   1102.90  338809422.25
    5      5643   1132.43  347883129.70
    6      6915   1163.65  357473906.08
    7      8168   1179.55  362357900.50
    8      9381   1243.27  381931405.42
elapsed:     8  ops:    10000  ops/sec:  1175.75  bytes/sec: 361190697.81

大概写速度达到了361M/s,1175ops/s 这个数据可以作为存储本身的写速度参考。

[root@node1 ~]# rbd bench-write rbd_write --io-size 307200 --io-threads 100 --io-total 3072000000 -p data
rbd: bench-write is deprecated, use rbd bench --io-type write ...
bench  type write io_size 307200 io_threads 100 bytes 3072000000 pattern sequential
  SEC       OPS   OPS/SEC   BYTES/SEC
    1      1610   1708.05  524713872.88
    2      3040   1569.89  482271716.97
    3      4686   1594.22  489743682.92
    4      6317   1603.63  492635848.49
    5      7962   1611.33  494999281.40
    6      9434   1564.90  480738745.75
elapsed:     6  ops:    10000  ops/sec:  1573.70  bytes/sec: 483440698.21

建议大家在写数据同时通过iotop,iostat,vmstat,top等命令查看系统状态如下,这里是用20个线程写的数据:

iostat -k  -x 2
//我们平时关注的主要是 device 的await ,同时device 的io速度为rkb,wkb参数  
//显然我们sd盘符作后端存储的写速度是接近我们rbd bench-write输出的值
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           8.66    0.00    9.74    7.28    0.00   74.32

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    19.00    0.00   15.50     0.00   148.00    19.10     0.00    0.06    0.00    0.06   0.06   0.10
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdb               0.00   133.00    0.00  149.50     0.00 53848.00   720.37     1.95   13.07    0.00   13.07   2.66  39.75
sdc               0.00    95.00    0.00  257.50     0.00 44502.00   345.65     0.64    2.48    0.00    2.48   0.75  19.30
sdd               0.00    94.50    0.00  239.50     0.00 43548.00   363.66     0.75    3.13    0.00    3.13   0.77  18.55
sde               0.00    69.50    0.00  188.00     0.00 32966.00   350.70     0.57    3.01    0.00    3.01   0.81  15.25
sdf               0.00   109.50    0.00  236.00     0.00 47104.00   399.19     0.92    3.91    0.00    3.91   0.89  20.95
sdg               0.00    96.00    0.00  234.50     0.00 43008.00   366.81     0.73    3.11    0.00    3.11   0.86  20.20
sdh               0.00   118.00    0.00  251.50     0.00 52744.00   419.44     3.12   13.00    0.00   13.00   1.86  46.85
sdi               0.00    85.50    0.00  173.00     0.00 35822.00   414.13     1.50    8.65    0.00    8.65   1.56  27.05
sdj               0.00   150.50    0.00  326.50     0.00 63638.00   389.82     1.24    3.81    0.00    3.81   0.84  27.55
sdk               0.00    87.50    0.00  206.50     0.00 38912.00   376.87     0.66    3.18    0.00    3.18   0.79  16.25
sdl               0.00   130.00    0.00  326.50     0.00 59542.00   364.73     1.17    3.57    0.00    3.57   0.83  27.20
sdm               0.00   115.50    0.00  282.50     0.00 50492.00   357.47     0.83    2.88    0.00    2.88   0.80  22.55
sdn               0.00   116.50    0.00  251.00     0.00 50308.00   400.86     1.18    4.71    0.00    4.71   0.94  23.50
sdo               0.00    71.00    0.00  189.50     0.00 33068.00   349.00     0.52    2.76    0.00    2.76   0.77  14.60
sdp               0.00    98.00    0.00  251.50     0.00 45344.00   360.59     0.72    2.87    0.00    2.87   0.75  18.80
sdq               0.00    97.00    0.00  208.50     0.00 41260.00   395.78     0.83    4.00    0.00    4.00   0.84  17.45
sdr               0.00    77.50    0.00  203.00     0.00 36020.00   354.88     0.56    2.75    0.00    2.75   0.79  15.95
sds               0.00    82.00    0.00  159.00     0.00 32768.00   412.18     0.67    4.19    0.00    4.19   0.92  14.65
sdt               0.00    95.00    0.00  207.00     0.00 40960.00   395.75     0.80    3.88    0.00    3.88   0.86  17.75
sdu               0.00   136.00    0.00  305.00     0.00 58838.00   385.82     1.11    3.62    0.00    3.62   0.81  24.85
sdv               0.00     0.00    2.50 1119.00   100.00  4756.00     8.66     0.19    0.17    2.20    0.17   0.14  15.20
sdw               0.00     0.00    0.00 1025.50     0.00  3070.00     5.99     0.15    0.15    0.00    0.15   0.14  14.25
sdx               0.00     0.00    0.00 1151.00     0.00  3330.00     5.79     0.18    0.15    0.00    0.15   0.14  16.35
sdy               0.00     0.00    0.00  932.50     0.00  2768.00     5.94     0.14    0.15    0.00    0.15   0.14  13.35 
//iotop查看系统线程数,同样也会输出磁盘读写速度,这次就有点快了,速度变动较大,可以多次尝试,记录的时候取较为稳定的一段速率。
[root@node1 ~]# iotop
Total DISK READ :       0.00 B/s | Total DISK WRITE :     962.01 M/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:     963.28 M/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                                               
15791 be/4 ceph        0.00 B/s  948.80 K/s  0.00 % 17.11 % ceph-osd -f --cluster ceph --id 8 --setuser ceph --setgroup ceph [bstore_kv_sync]
22597 be/4 ceph        0.00 B/s  865.39 K/s  0.00 % 12.04 % ceph-osd -f --cluster ceph --id 12 --setuser ceph --setgroup ceph [bstore_kv_sync]
  358 be/4 ceph        0.00 B/s  733.32 K/s  0.00 % 11.66 % ceph-osd -f --cluster ceph --id 6 --setuser ceph --setgroup ceph [bstore_kv_sync] 
23827 be/4 ceph        0.00 B/s  663.81 K/s  0.00 % 11.18 % ceph-osd -f --cluster ceph --id 15 --setuser ceph --setgroup ceph [bstore_kv_sync]
15070 be/4 ceph        0.00 B/s  496.99 K/s  0.00 % 10.77 % ceph-osd -f --cluster ceph --id 11 --setuser ceph --setgroup ceph [bstore_kv_sync]
16259 be/4 ceph        0.00 B/s  802.83 K/s  0.00 % 10.71 % ceph-osd -f --cluster ceph --id 16 --setuser ceph --setgroup ceph [bstore_kv_sync]
10249 be/4 ceph        0.00 B/s  934.90 K/s  0.00 % 10.35 % ceph-osd -f --cluster ceph --id 10 --setuser ceph --setgroup ceph [bstore_kv_sync]
 7537 be/4 ceph        0.00 B/s  653.38 K/s  0.00 %  9.98 % ceph-osd -f --cluster ceph --id 2 --setuser ceph --setgroup ceph [bstore_kv_sync] 
26524 be/4 ceph        0.00 B/s  344.07 K/s  0.00 %  9.96 % ceph-osd -f --cluster ceph --id 5 --setuser ceph --setgroup ceph [bstore_kv_sync] 
 7866 be/4 ceph        0.00 B/s  708.99 K/s  0.00 %  9.79 % ceph-osd -f --cluster ceph --id 19 --setuser ceph --setgroup ceph [bstore_kv_sync]
 4523 be/4 ceph        0.00 B/s  865.39 K/s  0.00 %  9.10 % ceph-osd -f --cluster ceph --id 14 --setuser ceph --setgroup ceph [bstore_kv_sync]
18974 be/4 ceph        0.00 B/s  858.44 K/s  0.00 %  8.63 % ceph-osd -f --cluster ceph --id 4 --setuser ceph --setgroup ceph [bstore_kv_sync] 
13833 be/4 ceph        0.00 B/s  521.32 K/s  0.00 %  8.36 % ceph-osd -f --cluster ceph --id 9 --setuser ceph --setgroup ceph [bstore_kv_sync] 
16777 be/4 ceph        0.00 B/s  649.91 K/s  0.00 %  7.96 % ceph-osd -f --cluster ceph --id 17 --setuser ceph --setgroup ceph [bstore_kv_sync]
17246 be/4 ceph        0.00 B/s  354.50 K/s  0.00 %  7.30 % ceph-osd -f --cluster ceph --id 3 --setuser ceph --setgroup ceph [bstore_kv_sync] 
  635 be/4 ceph        0.00 B/s  636.01 K/s  0.00 %  7.18 % ceph-osd -f --cluster ceph --id 7 --setuser ceph --setgroup ceph [bstore_kv_sync] 
16302 be/4 ceph        0.00 B/s  538.69 K/s  0.00 %  6.69 % ceph-osd -f --cluster ceph --id 1 --setuser ceph --setgroup ceph [bstore_kv_sync] 
29237 be/4 ceph        0.00 B/s  514.37 K/s  0.00 %  6.35 % ceph-osd -f --cluster ceph --id 13 --setuser ceph --setgroup ceph [bstore_kv_sync]
 5465 be/4 ceph        0.00 B/s  340.59 K/s  0.00 %  4.22 % ceph-osd -f --cluster ceph --id 18 --setuser ceph --setgroup ceph [bstore_kv_sync]

后面的两个命令top主要是查看cpu以及各个进程状态,vmstat查看各个进程内存状态,当然也有cpu和io状态,用法可以去网络上查看,但是本次我们主要查看以上两个命令结果,因为内存占用较少,(内存相关两个参数做了调整)。

后续文章会对fio性能压力进行描述,总之,性能测试过程中寻找瓶颈以及后续的调优一定要在理解自己业务场景的前提下进行,否则只是盲目学习工具,没有什么经验或者调优思路的提升的。

上一篇 下一篇

猜你喜欢

热点阅读