13.7. Crimson 프로파일링
Crimson 프로파일링은 Crimson을 사용하여 성능 테스트를 수행하는 방법론입니다. 다음과 같은 두 가지 유형의 프로파일링이 지원됩니다.
-
flexible I/O(FIO) -
crimson-store-nbd
는 FIO와 함께 사용할 수 있는 구성 가능한FuturizedStore
내부를 NBD 서버로 표시합니다. - Ceph 벤치마킹 도구(CBT) - Ceph 클러스터의 성능을 테스트하기 위해 python에서 테스트한 것입니다.
프로세스
libnbd
를 설치하고 FIO를 컴파일합니다.예
[root@host01 ~]# dnf install libnbd [root@host01 ~]# git clone git://git.kernel.dk/fio.git [root@host01 ~]# cd fio [root@host01 ~]# ./configure --enable-libnbd [root@host01 ~]# make
빌드
crimson-store-nbd
:예
[root@host01 ~]# cd build [root@host01 ~]# ninja crimson-store-nbd
블록 장치를 사용하여
crimson-store-nbd
서버를 실행합니다./dev/nvme1n1
과 같이 원시 장치의 경로를 지정합니다.예
[root@host01 ~]# export disk_img=/tmp/disk.img [root@host01 ~]# export unix_socket=/tmp/store_nbd_socket.sock [root@host01 ~]# rm -f $disk_img $unix_socket [root@host01 ~]# truncate -s 512M $disk_img [root@host01 ~]# ./bin/crimson-store-nbd \ --device-path $disk_img \ --smp 1 \ --mkfs true \ --type transaction_manager \ --uds-path ${unix_socket} & --smp is the CPU cores. --mkfs initializes the device first. --type is the backend.
nbd.fio라는 FIO 작업을 생성합니다.
예
[global] ioengine=nbd uri=nbd+unix:///?socket=${unix_socket} rw=randrw time_based runtime=120 group_reporting iodepth=1 size=512M [job0] offset=0
FIO가 컴파일된 Crimson 오브젝트를 테스트합니다.
예
[root@host01 ~]# ./fio nbd.fio
Ceph 벤치마크 툴(CBT)
두 분기에 대해 동일한 테스트를 실행합니다. 하나는 주요
(마스터), 다른 하나는 선택한 주제
분기입니다. 테스트 결과를 비교합니다. 모든 테스트 사례와 함께 두 테스트 결과가 비교될 때 회귀를 수행해야 하는지 여부를 확인하기 위해 일련의 규칙이 정의됩니다. 가능한 회귀 문제가 발견되면 규칙과 해당 테스트 결과가 강조 표시됩니다.
프로세스
주요 분기와 주제 분기에서
make crimson osd
를 실행합니다.예
[root@host01 ~]# git checkout master [root@host01 ~]# make crimson-osd [root@host01 ~]# ../src/script/run-cbt.sh --cbt ~/dev/cbt -a /tmp/baseline ../src/test/crimson/cbt/radosbench_4K_read.yaml [root@host01 ~]# git checkout topic [root@host01 ~]# make crimson-osd [root@host01 ~]# ../src/script/run-cbt.sh --cbt ~/dev/cbt -a /tmp/yap ../src/test/crimson/cbt/radosbench_4K_read.yaml
테스트 결과를 비교합니다.
예
[root@host01 ~]# ~/dev/cbt/compare.py -b /tmp/baseline -a /tmp/yap -v