自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一篇學(xué)會 Ceph 性能測試

系統(tǒng) Linux
在進(jìn)行真正的基準(zhǔn)測試之前,最好通過測量連接到群集節(jié)點(diǎn)的硬件(如磁盤和網(wǎng)絡(luò))的性能,為預(yù)期的最大性能建立一個基準(zhǔn)。磁盤性能基線測試將分兩步完成。

在將Ceph集群用于生產(chǎn)工作之前,應(yīng)該首先對它進(jìn)行基準(zhǔn)測試。基準(zhǔn)測試提供關(guān)于群集在讀、寫、延遲和其他工作負(fù)載期間執(zhí)行情況的大致結(jié)果。在進(jìn)行真正的基準(zhǔn)測試之前,最好通過測量連接到群集節(jié)點(diǎn)的硬件(如磁盤和網(wǎng)絡(luò))的性能,為預(yù)期的最大性能建立一個基準(zhǔn)。磁盤性能基線測試將分兩步完成。首先,我們將測量單個磁盤的性能,在此之后,將同時測量連接到一個Ceph OSD節(jié)點(diǎn)的所有磁盤性能。為了獲得磁盤讀寫性能,我們可以使用dd命令并設(shè)置oflag參數(shù)以直接繞過磁盤緩存以獲得真實(shí)的結(jié)果。

測試單磁盤寫入性能

清空頁面緩存;

echo 3 > /proc/sys/vm/drop_caches

使用dd編寫一個大小為10G的名為deleteme的文件,該文件填充為0/dev/zero作為Ceph OSD安裝目錄的輸入文件,即/var/lib/ceph/osd/cep-0/:

dd if=/dev/zero of=/var/lib/ceph/osd/ceph-0/zero   bs=10G count=1

重復(fù)執(zhí)行后取平均值,我這邊沒有繞過內(nèi)核緩存,所以測試出來的結(jié)果會偏高,(ubuntu系統(tǒng)執(zhí)行dd繞過內(nèi)核緩存的參數(shù)好像不支持。)

圖片

接下來可以測試單個節(jié)點(diǎn)上所有的osd寫入性能 我這邊每臺宿主機(jī)上osd只有一個,所以數(shù)據(jù)與上面相同;

for i in `mount | grep osd | awk '{print $3}'`;   do (dd if=/dev/zero   of=$i/zero bs=10G count=1  &) ; done

osd單盤讀性能測試

清空頁面緩存;

echo 3 > /proc/sys/vm/drop_caches
dd if=/var/lib/ceph/osd/ceph-0/deleteme of=/dev/null bs=10G     count=1 iflag=direct

圖片

接下來可以測試單個節(jié)點(diǎn)上所有的osd寫入性能 我這邊每臺宿主機(jī)上osd只有一個,所以數(shù)據(jù)與上面相同;

echo 3 > /proc/sys/vm/drop_caches
for i in `mount | grep osd | awk '{print $3}'`; do (dd if=$i/zero of=/dev/null bs=10G count=1 &); done

網(wǎng)絡(luò)基線性能

測試Ceph OSD節(jié)點(diǎn)之間的網(wǎng)絡(luò)的基線性能。需要在Ceph節(jié)點(diǎn)上安裝了iper包。iperf是一個簡單的點(diǎn)對點(diǎn)網(wǎng)絡(luò)帶寬測試器,工作在c/s模型上。要啟動網(wǎng)絡(luò)基準(zhǔn)測試,可以在第一個Ceph節(jié)點(diǎn)上使用server選項(xiàng),在第二個Ceph節(jié)點(diǎn)中使用client選項(xiàng)執(zhí)行iperf。

安裝iperf;

apt install iperf

node1節(jié)點(diǎn)作為server,使用6900端口;

圖片

node2節(jié)點(diǎn)作為client;

圖片

由于我這邊是千兆網(wǎng)絡(luò),所以實(shí)際網(wǎng)絡(luò)帶寬不是很高,生產(chǎn)環(huán)境還是要用萬兆網(wǎng)絡(luò)進(jìn)行連接;

rados bench基準(zhǔn)測試

Ceph附帶一個稱為rados bench的內(nèi)置基準(zhǔn)測試工具,可以在池上測試Ceph集群的性能。rados bench工具支持寫入、順序讀取和隨機(jī)讀取基準(zhǔn)測試,并且它還允許清理臨時基準(zhǔn)數(shù)據(jù)。接下來我們對libvirt-pool池進(jìn)行寫10秒的測試,--no-cleanup寫完之后不清里測試數(shù)據(jù),后面的測試會用到這些測試數(shù)據(jù);

rados bench -p libvirt-pool 10 write --no-cleanup

圖片

對libvirt-pool池進(jìn)行順序讀取的測試;

rados bench -p libvirt-pool 10 seq

可以看到實(shí)際用了不到十秒的時間就已經(jīng)讀完了測試數(shù)據(jù),原因就是讀操作比寫操作快,測試寫數(shù)據(jù)用了十秒,度相同的數(shù)據(jù)肯定用不到十秒的;

圖片

隨機(jī)讀取數(shù)據(jù)測試;

rados bench -p libvirt-pool 10 rand

圖片

rados bench的語法如下;

rados bench -p <pool_name> <seconds> <write|seq|rand> -b <block size> -t  --no-cleanup
-p:  -p或-poo指定池名.
<seconds>:測試時間(以秒為單位)。
<writelseqlrand>:測試類型,例如寫入、順序讀取或隨機(jī)讀取。
-b: 塊大小,默認(rèn)情況下塊大小為4M。
-t: 并發(fā)線程數(shù);默認(rèn)值為16
--no-clean up:由rados工作臺寫入池的臨時數(shù)據(jù),不被清除。當(dāng)這些數(shù)據(jù)與順序讀取或隨機(jī)讀取一起使用時,它們將被用于讀取操作。默認(rèn)情況下數(shù)據(jù)會清理。

RADOS load-gen

rados load-gen 是CEPH提供的另一個測試工具,  像它的命名一樣,rados load-gen 工具能用來在Ceph cluster上生成負(fù)載和用于模擬高負(fù)載場景。

rados -p libvirt-pool load-gen --num-objects 200 --min-object-size 4M --max-object-size 8M --max-ops 10 --read-percent 0 --min-op-len 1M --max-op-len 4M --target-throughput 2G --run-length 20

命令行格式及參數(shù)說明:

rados -p <pool-name> load-gen
--num-objects: 生成測試用的對象數(shù),默認(rèn) 200
--min-object-size: 測試對象的最小size,默認(rèn) 1KB,單位byte
--max-object-size: 測試對象的最大size,默認(rèn) 5GB,單位byte
--min-ops: 最小IO操作數(shù),相當(dāng)于iodepth
--max-ops: 最大IO操作數(shù),相當(dāng)于iodepth
--min-op-len: 壓測IO的最小operation size,默認(rèn) 1KB,單位byte
--max-op-len: 壓測IO的最大operation size,默認(rèn) 2MB,單位byte
--max-backlog: 一次提交IO的吞吐量上限,默認(rèn)10MB/s (單位MB)
--percent: 讀操作所占的百分百
--target-throughput: 目標(biāo)吞吐量,默認(rèn) 5MB/s (單位MB)
--run-length: 運(yùn)行的時間,默認(rèn)60s,單位秒

圖片

還可以使用watch ceph-s命令或ceph-w監(jiān)視集群的讀寫速度/操作狀態(tài);同時,RADOS load-gen將運(yùn)行,以查看運(yùn)行情況。

圖片

塊設(shè)備基準(zhǔn)測試

ceph rbd命令行接口提供了一個稱為bench-write的選項(xiàng),這是一個在Ceph Rados Block Device上執(zhí)行寫基準(zhǔn)測試操作的工具。可以使用bench-write工具的不通選項(xiàng)來調(diào)整塊大小,線程數(shù)和io模式。首先創(chuàng)建一個塊設(shè)備并將其映射至ceph客戶端;

rbd create libvirt-pool/289 --size 10240 --image-feature layering       
rbd info -p libvirt-pool --image 289
rbd map libvirt-pool/289
rbd showmapped

圖片

塊設(shè)備上創(chuàng)建文件系統(tǒng)并掛載;

mkfs.xfs /dev/rbd2        
mkdir -p /mnt/289
mount /dev/rbd2 /mnt/289
df -h /mnt/289

對289寫入5G大小的測試;

rbd bench-write libvirt-pool/289 --io-total 5368709200

圖片

rbd bench-write 的語法為:

rbd bench-write <RBD image name>
--io-size:寫入大小,單位 byte,默認(rèn)4M;
--io-threads:線程數(shù),默認(rèn) 16;
--io-total:寫入總字節(jié),單位為字節(jié),默認(rèn) 1024M;
--io-pattern <seq|rand>:寫模式,默認(rèn)為 seq 即順序?qū)懀?/span>

使用fio對ceph rbd進(jìn)行基準(zhǔn)測試;

安裝fio;

apt install fio -y

寫入fio配置文件;

vim write.fio
[write-4M]
ioengine=rbd
direct=1 # 排除OS的IO緩存機(jī)制的影響
size=5g # 每個fio進(jìn)程/線程的最大讀寫
lockmem=1G # 鎖定所使用的內(nèi)存大小
runtime=30 # 運(yùn)行時間
group_reporting # 多個job合并出報告
numjobs=1
iodepth=32
pool=libvirt-pool
clientname=admin
rbdname=289
rw=write #讀寫模式,支持隨機(jī)讀寫、順序讀寫
bs=4M
filename=/dev/rbd0

啟動fio測試;

fio write.fio

圖片

責(zé)任編輯:武曉燕 來源: 運(yùn)維開發(fā)故事
相關(guān)推薦

2022-01-02 08:43:46

Python

2022-02-07 11:01:23

ZooKeeper

2022-03-02 11:37:57

參數(shù)性能調(diào)優(yōu)

2021-06-02 08:25:44

性能優(yōu)化Repository

2023-01-03 08:31:54

Spring讀取器配置

2021-05-11 08:54:59

建造者模式設(shè)計(jì)

2021-07-05 22:11:38

MySQL體系架構(gòu)

2021-07-06 08:59:18

抽象工廠模式

2022-08-26 09:29:01

Kubernetes策略Master

2023-11-28 08:29:31

Rust內(nèi)存布局

2021-07-02 09:45:29

MySQL InnoDB數(shù)據(jù)

2021-07-02 08:51:29

源碼參數(shù)Thread

2021-07-16 22:43:10

Go并發(fā)Golang

2021-09-28 08:59:30

復(fù)原IP地址

2022-04-12 08:30:52

回調(diào)函數(shù)代碼調(diào)試

2022-10-20 07:39:26

2021-10-27 09:59:35

存儲

2022-03-11 10:21:30

IO系統(tǒng)日志

2023-03-13 21:38:08

TCP數(shù)據(jù)IP地址

2023-11-01 09:07:01

Spring裝配源碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號