日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Ceph分布式存储系统-性能测试与优化

發布時間:2023/12/10 windows 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ceph分布式存储系统-性能测试与优化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

測試環境

部署方案:整個Ceph Cluster使用4臺ECS,均在同一VPC中,結構如圖:

以下是 Ceph 的測試環境,說明如下:

  • Ceph 采用 10.2.10 版本,安裝于 CentOS 7.4 版本中;系統為初始安裝,沒有調優。
  • 每個 OSD 存儲服務器都是4核8GB,掛載1塊300G高效云盤(非SSD硬盤);操作系統和OSD存儲均用同一個磁盤。
[root@node1 ~]# ceph osd tree ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY -6 0 rack test-bucket -5 0 rack demo -1 0.86458 root default -2 0.28819 host node20 0.28819 osd.0 up 1.00000 1.00000 -3 0.28819 host node31 0.28819 osd.1 up 1.00000 1.00000 -4 0.28819 host node42 0.28819 osd.2 up 1.00000 1.00000
  • 使用 Test pool,此池為 64 個 PGs,數據存三份;
[root@node1 ~]# ceph osd pool create test 64 64 pool 'test' created[root@node1 ~]# ceph osd pool get test size size: 3[root@node1 ~]# ceph osd pool get test pg_num pg_num: 64
  • Ceph osd 采用 xfs 文件系統(若使用 brtf 文件系統讀寫性能將翻 2 倍,但brtf不建議在生產環境使用);
  • Ceph 系統中的Block采用默認安裝,為 64K;
  • 性能測試客戶端運行在node1上,在同一VPC下使用同一網段訪問 Ceph 存貯系統進行數據讀寫;

本次測試中,發起流量的客戶端位于Ceph Cluster中,故網絡延時較小,真正生產環境中還需要考慮網絡瓶頸。生產環境的網絡訪問圖如下:

磁盤性能測試

測試磁盤寫吞吐量

使用dd命令對磁盤進行標準寫測試。使用一下命令行讀取和寫入文件,記住添加oflag參數以繞過磁盤頁面緩存。

node1:

[root@node1 ~]# dd if=/dev/zero of=here bs=1G count=1 oflag=direct 記錄了1+0 的讀入 記錄了1+0 的寫出 1073741824字節(1.1 GB)已復制,15.466 秒,69.4 MB/秒

node2:

[root@node2 ~]# dd if=/dev/zero of=here bs=1G count=1 oflag=direct 記錄了1+0 的讀入 記錄了1+0 的寫出 1073741824字節(1.1 GB)已復制,13.6518 秒,78.7 MB/秒

node3:

[root@node3 ~]# dd if=/dev/zero of=here bs=1G count=1 oflag=direct 記錄了1+0 的讀入 記錄了1+0 的寫出 1073741824字節(1.1 GB)已復制,13.6466 秒,78.7 MB/秒

node4:

[root@node4 ~]# dd if=/dev/zero of=here bs=1G count=1 oflag=direct 記錄了1+0 的讀入 記錄了1+0 的寫出 1073741824字節(1.1 GB)已復制,13.6585 秒,78.6 MB/秒

可以看出,除了node1節點外,磁盤吞吐量在 78 MB/s 左右。node1上沒有部署osd,最終不作為ceph的讀寫性能評判參考。

測試磁盤寫延遲

使用dd命令,每次寫512字節,連續寫1萬次。

node1:

[root@node1 test]# dd if=/dev/zero of=512 bs=512 count=10000 oflag=direct 記錄了10000+0 的讀入 記錄了10000+0 的寫出 5120000字節(5.1 MB)已復制,6.06715 秒,844 kB/秒

node2:

[root@node2 test]# dd if=/dev/zero of=512 bs=512 count=10000 oflag=direct 記錄了10000+0 的讀入 記錄了10000+0 的寫出 5120000字節(5.1 MB)已復制,4.12061 秒,1.2 MB/秒

node3:

[root@node3 test]# dd if=/dev/zero of=512 bs=512 count=10000 oflag=direct 記錄了10000+0 的讀入 記錄了10000+0 的寫出 5120000字節(5.1 MB)已復制,3.88562 秒,1.3 MB/秒

node4:

[root@node4 test]# dd if=/dev/zero of=512 bs=512 count=10000 oflag=direct 記錄了10000+0 的讀入 記錄了10000+0 的寫出 5120000字節(5.1 MB)已復制,3.60598 秒,1.4 MB/秒

平均耗時4秒,平均速度1.3MB/s。

集群網絡I/O測試

由于客戶端訪問都是通過rgw訪問各個osd(文件存儲服務除外),主要測試rgw節點到各個osd節點的網絡性能I/O。

rgw到osd.0

在osd.0節點上使用nc監聽17480端口的網絡I/O請求:

[root@node2 ~]# nc -v -l -n 17480 > /dev/null Ncat: Version 6.40 ( http://nmap.org/ncat ) Ncat: Listening on :::17480 Ncat: Listening on 0.0.0.0:17480 Ncat: Connection from 192.168.0.97. Ncat: Connection from 192.168.0.97:33644.

在rgw節點上發起網絡I/O請求:

[root@node2 ~]# time dd if=/dev/zero | nc -v -n 192.168.0.97 17480 Ncat: Version 6.40 ( http://nmap.org/ncat ) Ncat: Connected to 192.168.0.97:17480. ^C記錄了121182456+0 的讀入 記錄了121182455+0 的寫出 62045416960字節(62 GB)已復制,413.154 秒,150 MB/秒real 6m53.156s user 5m54.626s sys 7m51.485s

網絡I/O總流量62GB,耗時413.154秒,平均速度150 MB/秒。

rgw到osd.1

在osd.1節點上使用nc監聽17480端口的網絡I/O請求:

[root@node3 ~]# nc -v -l -n 17480 > /dev/null Ncat: Version 6.40 ( http://nmap.org/ncat ) Ncat: Listening on :::17480 Ncat: Listening on 0.0.0.0:17480 Ncat: Connection from 192.168.0.97. Ncat: Connection from 192.168.0.97:35418.

在rgw節點上發起網絡I/O請求:

[root@node2 ~]# time dd if=/dev/zero | nc -v -n 192.168.0.98 17480 Ncat: Version 6.40 ( http://nmap.org/ncat ) Ncat: Connected to 192.168.0.98:17480. ^C記錄了30140790+0 的讀入 記錄了30140789+0 的寫出 15432083968字節(15 GB)已復制,111.024 秒,139 MB/秒real 1m51.026s user 1m21.996s sys 2m20.039s

網絡I/O總流量15GB,耗時111.024秒,平均速度139 MB/秒。

rgw到osd.2

在osd.2節點上使用nc監聽17480端口的網絡I/O請求:

[root@node4 ~]# nc -v -l -n 17480 > /dev/null Ncat: Version 6.40 ( http://nmap.org/ncat ) Ncat: Listening on :::17480 Ncat: Listening on 0.0.0.0:17480 Ncat: Connection from 192.168.0.97. Ncat: Connection from 192.168.0.97:39156.

在rgw節點上發起網絡I/O請求:

[root@node2 ~]# time dd if=/dev/zero | nc -v -n 192.168.0.99 17480 Ncat: Version 6.40 ( http://nmap.org/ncat ) Ncat: Connected to 192.168.0.99:17480. ^C記錄了34434250+0 的讀入 記錄了34434249+0 的寫出 17630335488字節(18 GB)已復制,112.903 秒,156 MB/秒real 1m52.906s user 1m23.308s sys 2m22.487s

網絡I/O總流量18GB,耗時112.903秒,平均速度156 MB/秒。

總結:集群內不同節點間,網絡I/O平均在150MB/s左右。跟實際情況相符,因為本集群是千兆網卡。

rados集群性能測試

準備工作

    • 查看ceph cluster的osd分布情況:
[root@node1 ~]# ceph osd tree ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY -6 0 rack test-bucket -5 0 rack demo -1 0.86458 root default -2 0.28819 host node20 0.28819 osd.0 up 1.00000 1.00000 -3 0.28819 host node31 0.28819 osd.1 up 1.00000 1.00000 -4 0.28819 host node42 0.28819 osd.2 up 1.00000 1.00000

可見該cluster部署了3個osd節點,3個都處于up狀態(正常work)。

  • 為rados集群性能測試創建一個test pool,此池為 64 個 PGs,數據存三份;
[root@node1 ~]# ceph osd pool create test 64 64 pool 'test' created[root@node1 ~]# ceph osd pool get test size size: 3[root@node1 ~]# ceph osd pool get test pg_num pg_num: 64
  • 查看test pool默認配置:
[root@node1 test]# ceph osd dump | grep test pool 12 'test' replicated size 3 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 64 pgp_num 64 last_change 37 flags hashpspool stripe_width 0
  • 查看test poll資源占用情況:
[root@node1 test]# rados -p test df pool name KB objects clones degraded unfound rd rd KB wr wr KB test 0 0 0 0 0 0 0 0 0total used 27044652 192total avail 854232624total space 928512000

寫性能測試

  • 測試寫性能
[root@node1 ~]# rados bench -p test 60 write --no-cleanup Maintaining 16 concurrent writes of 4194304 bytes to objects of size 4194304 for up to 60 seconds or 0 objects Object prefix: benchmark_data_node1_26604sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s)0 0 0 0 0 0 - 01 16 31 15 59.9966 60 0.953952 0.6146472 16 38 22 43.9954 28 1.38736 0.7810393 16 46 30 39.9958 32 1.87801 1.067654 16 61 45 44.9953 60 1.19344 1.231915 16 76 60 47.9949 60 0.993045 1.170226 16 91 75 49.9946 60 1.00303 1.14987 16 106 90 51.4231 60 0.999574 1.136098 16 119 103 51.4945 52 1.00504 1.127799 16 122 106 47.106 12 1.20668 1.1317310 16 122 106 42.3954 0 - 1.1317311 16 125 109 39.632 6 2.8996 1.1821312 16 137 121 40.3289 48 3.90723 1.4527213 16 151 135 41.5339 56 1.10043 1.4733314 16 169 153 43.7096 72 0.927572 1.412915 16 181 165 43.9952 48 1.02879 1.3873916 16 196 180 44.9951 60 1.08398 1.3666517 16 209 193 45.4068 52 1.117 1.3474218 16 212 196 43.5508 12 1.30703 1.346819 16 215 199 41.8902 12 2.79917 1.36874 2018-03-20 17:06:48.745397 min lat: 0.229762 max lat: 4.09713 avg lat: 1.40039sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s)20 16 218 202 40.3956 12 3.49784 1.4003921 16 225 209 39.8051 28 4.18987 1.4885122 16 241 225 40.9046 64 1.00629 1.5314823 16 256 240 41.7345 60 1.18098 1.4986924 16 271 255 42.4953 60 1.0017 1.4731925 16 286 270 43.1952 60 1.00118 1.4506726 16 299 283 43.5337 52 1.19813 1.4334827 16 302 286 42.3657 12 1.30607 1.4321528 16 302 286 40.8527 0 - 1.4321529 16 305 289 39.8577 6 3.00461 1.4484730 16 316 300 39.9956 44 3.73721 1.5402331 16 331 315 40.6407 60 0.97103 1.5452632 16 346 330 41.2455 60 0.999926 1.521433 16 361 345 41.8136 60 1.00411 1.5016934 16 376 360 42.3483 60 1.00089 1.4835535 16 386 370 42.2811 40 1.20272 1.472736 16 389 373 41.4399 12 1.50616 1.4729637 16 392 376 40.6442 12 3.1067 1.48638 16 395 379 39.8903 12 3.90852 1.5051839 16 402 386 39.5854 28 4.12175 1.551 2018-03-20 17:07:08.747628 min lat: 0.229762 max lat: 4.29984 avg lat: 1.56868sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s)40 16 418 402 40.1956 64 1.07659 1.5686841 16 433 417 40.6784 60 0.999955 1.5493942 16 448 432 41.1383 60 1.17664 1.5325643 16 463 447 41.5768 60 1.00297 1.5169544 16 478 462 41.9953 60 1.00466 1.5023445 16 479 463 41.151 4 1.19512 1.5016846 16 482 466 40.5172 12 2.6118 1.5088247 16 485 469 39.9105 12 3.3123 1.5203448 16 493 477 39.7456 32 4.00971 1.5590149 16 508 492 40.1588 60 1.01054 1.5761150 16 523 507 40.5555 60 0.996004 1.5586951 16 538 522 40.9366 60 0.997722 1.5446452 16 553 537 41.3031 60 1.19815 1.5311353 16 568 552 41.6557 60 1.21298 1.5186454 16 572 556 41.1806 16 1.49932 1.5179755 16 572 556 40.4318 0 - 1.5179756 16 575 559 39.9241 6 3.09559 1.5264357 16 583 567 39.785 32 3.99229 1.5592358 16 595 579 39.9266 48 1.37706 1.5795259 16 612 596 40.4022 68 0.89873 1.56855 2018-03-20 17:07:28.749935 min lat: 0.229762 max lat: 4.29984 avg lat: 1.56738sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s)60 16 624 608 40.5288 48 1.65518 1.56738 Total time run: 60.821654 Total writes made: 625 Write size: 4194304 Object size: 4194304 Bandwidth (MB/sec): 41.1038 Stddev Bandwidth: 23.0404 Max bandwidth (MB/sec): 72 Min bandwidth (MB/sec): 0 Average IOPS: 10 Stddev IOPS: 5 Max IOPS: 18 Min IOPS: 0 Average Latency(s): 1.55581 Stddev Latency(s): 0.981606 Max latency(s): 4.29984 Min latency(s): 0.229762

如果加上可選參數 --no-cleanup ,那么測試完之后,不會刪除該池里面的數據。里面的數據可以繼續用于測試集群的讀性能。

從以上測試數據可以看出:數據寫入時的平均帶寬是41MB/sec,最大帶寬是72,帶寬標準差是23(反應網絡穩定情況)。

讀性能測試

  • 測試讀性能
[root@node1 ~]# rados bench -p test 60 randsec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s)0 0 0 0 0 0 - 01 16 101 85 339.935 340 0.270579 0.1470572 16 145 129 257.955 176 0.246583 0.2207843 16 191 175 233.297 184 0.53086 0.2534654 16 236 220 219.968 180 0.0326233 0.2686825 16 281 265 211.971 180 0.528696 0.2868536 16 328 312 207.973 188 0.0203012 0.2952077 16 371 355 202.831 172 0.283736 0.3033288 16 415 399 199.475 176 0.508335 0.307819 16 461 445 197.753 184 0.24398 0.31250310 16 510 494 197.576 196 0.499586 0.3180211 16 556 540 196.34 184 0.259304 0.32070812 16 602 586 195.31 184 0.745053 0.32077713 16 646 630 193.823 176 0.0422189 0.3238614 16 692 676 193.12 184 0.0467997 0.32660715 16 735 719 191.711 172 0.0272729 0.32743216 16 777 761 190.228 168 0.0160831 0.32638117 16 821 805 189.39 176 0.483385 0.33026218 16 865 849 188.645 176 0.0279903 0.33003819 16 913 897 188.82 192 0.237649 0.332631 2018-03-20 17:08:51.231039 min lat: 0.00844047 max lat: 0.964959 avg lat: 0.332994sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s)20 16 962 946 189.178 196 0.0115256 0.33299421 16 1009 993 189.121 188 0.26545 0.33413522 16 1052 1036 188.342 172 0.502163 0.33541123 16 1095 1079 187.631 172 0.191482 0.33595424 16 1140 1124 187.312 180 0.0187187 0.3359325 16 1187 1171 187.339 188 0.0128352 0.33630126 16 1232 1216 187.056 180 0.0260001 0.33688627 16 1278 1262 186.942 184 0.0148474 0.33647828 16 1324 1308 186.836 184 0.723555 0.33735529 16 1367 1351 186.324 172 0.0246515 0.33924730 16 1412 1396 186.113 180 0.0120403 0.33965931 16 1460 1444 186.302 192 0.569969 0.33812932 16 1506 1490 186.229 184 0.0316037 0.34004133 16 1551 1535 186.04 180 0.0273989 0.34023734 16 1596 1580 185.862 180 0.525298 0.34073535 16 1638 1622 185.351 168 0.0101045 0.3405236 16 1686 1670 185.535 192 0.0159173 0.3409137 16 1731 1715 185.385 180 0.986173 0.33993938 16 1775 1759 185.138 176 0.0152587 0.34080639 16 1818 1802 184.8 172 0.216865 0.342337 2018-03-20 17:09:11.233088 min lat: 0.0080755 max lat: 1.20072 avg lat: 0.342772sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s)40 16 1863 1847 184.68 180 0.298863 0.34277241 16 1907 1891 184.468 176 0.539937 0.34194942 16 1950 1934 184.17 172 0.501967 0.34319643 16 1997 1981 184.259 188 0.258521 0.3425544 16 2043 2027 184.253 184 0.0441231 0.34349345 16 2088 2072 184.158 180 0.302963 0.34362146 16 2135 2119 184.241 188 0.0198267 0.3433747 16 2179 2163 184.065 176 0.26388 0.34374448 16 2224 2208 183.98 180 0.274291 0.34387249 16 2268 2252 183.817 176 0.0345847 0.34338350 16 2314 2298 183.82 184 0.0555181 0.34445451 16 2359 2343 183.745 180 0.288888 0.34436252 16 2405 2389 183.749 184 0.280761 0.34484853 16 2447 2431 183.452 168 0.0135715 0.3443854 16 2496 2480 183.684 196 0.259152 0.34488355 15 2542 2527 183.762 188 0.0231959 0.3447356 15 2585 2570 183.552 172 0.235059 0.34515757 16 2627 2611 183.208 164 0.272916 0.345458 16 2674 2658 183.29 188 0.534074 0.34524259 16 2717 2701 183.099 172 0.261746 0.345621 2018-03-20 17:09:31.235266 min lat: 0.0080755 max lat: 1.20072 avg lat: 0.344692sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s)60 16 2765 2749 183.247 192 0.213941 0.344692 Total time run: 60.297422 Total reads made: 2765 Read size: 4194304 Object size: 4194304 Bandwidth (MB/sec): 183.424 Average IOPS: 45 Stddev IOPS: 5 Max IOPS: 85 Min IOPS: 41 Average Latency(s): 0.346804 Max latency(s): 1.20072 Min latency(s): 0.0080755

從以上測試數據可以看出:數據讀取時的平均帶寬是183MB/sec,平均延時是0.3 sec,平均IOPS是45。

  • 測試數據清除
rados -p test cleanup
  • 刪除test池:
[root@node1 ~]# ceph osd pool delete test test --yes-i-really-really-mean-it pool 'test' removed

結論

針對不同大小的block對Rados、RBD進行了讀寫性能測試,最終統計結果如下:

block讀寫順序讀寫數據線程數IOPS帶寬速度運行時間 s
4K Rados隨機讀174M161556360.7961MB/s2
順序讀174M161319951.5621MB/s2
隨機寫174M1614865.80794MB/s30
4K RBD隨機讀17.6G16104000587.7MB/s30
順序讀2.2G162380074MB/s30
隨機寫571M16235219MB/s30
順序寫43M163521.4MB/s30
16K Rados隨機讀615m1613530211.416MB/s2
順序讀615m1610842169.419MB/s3.7
隨機寫615M16131320.52864MB/s30
16K RBD隨機讀56G161200001881MB/s30
順序讀10G1625600363MB/s30
隨機寫1.9G16285465.8MB/s30
順序寫170M163845.7MB/s30
512K Rados隨機讀8.88G1642182109.11MB/s3
順序讀8.88G1640622031.33MB/s4
隨機寫8.88G16592296.0093MB/s30
512K RBD隨機讀54G1637191814.6MB/s30
順序讀56G1628341879.8MB/s30
隨機寫32G1616491082.5MB/s30
順序寫9G161650303.8KB/s30
  • ceph 針對大塊文件的讀寫性能非常優秀,高達2GB/s。
  • rados讀比寫高出10倍的速率,適合讀數據的高并發場景。
  • pool配置:2個副本比3個副本的性能高出很多,但官方推薦使用3個副本,因為2個不夠安全;
  • 若機器配置不算很差(4核8G以上),ceph很容易達到1G帶寬的限制閥值,若想繼續提升ceph性能,需考慮提升帶寬閥值。
  • 設置更多的PG值可以帶來更好的負載均衡,但從測試來看,設置較大的PG值并不會提高性能。
  • 將fileStore刷新器設置為false對性能有不錯的提升。

總結

以上是生活随笔為你收集整理的Ceph分布式存储系统-性能测试与优化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。