Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add spdk bdevperf build, container and ci test #189

Merged
merged 1 commit into from
Aug 24, 2023
Merged

Conversation

baum
Copy link
Collaborator

@baum baum commented Aug 17, 2023

Add spdk bdevperf build, container and ci test

Docs

Env variables exposed by the bdevperf container

# Default test run duration in secs
BDEVPERF_TEST_DURATION="90"

# RPC socket path
BDEVPERF_SOCKET="/tmp/bdevperf.sock"

# IO Queue depth
BDEVPERF_IO_QUEUE="128"

# IO Block size
BDEVPERF_IO_BS="4096"

# Type of I/O pattern, see https://spdk.io/doc/bdevperf.html
# for available types
BDEVPERF_IO_TYPE="verify"

Sample test

 . .env
 echo -n "ℹ️  Starting bdevperf container"
 make up  SVC=bdevperf OPTS="--detach"
 sleep 10
 echo "ℹ️  bdevperf start up logs"
 make logs SVC=bdevperf
 eval $(make run SVC=bdevperf OPTS="--entrypoint=env" | grep BDEVPERF_SOCKET | tr -d '\n\r')
 rpc="/usr/libexec/spdk/scripts/rpc.py"
 echo "ℹ️  bdevperf bdev_nvme_set_options"
 make exec SVC=bdevperf OPTS=-T CMD="$rpc -v -s $BDEVPERF_SOCKET bdev_nvme_set_options -r -1"
 echo "ℹ️  bdevperf tcp connect ip: $NVMEOF_IP_ADDRESS port: $NVMEOF_IO_PORT nqn: $NQN"
 make exec SVC=bdevperf OPTS=-T CMD="$rpc -v -s $BDEVPERF_SOCKET bdev_nvme_attach_controller -b Nvme0 -t tcp -a $NVMEOF_IP_ADDRESS -s $NVMEOF_IO_PORT -f ipv4 -n $NQN -l -1 -o 10"
 echo "ℹ️  bdevperf perform_tests"
 eval $(make run SVC=bdevperf OPTS="--entrypoint=env" | grep BDEVPERF_TEST_DURATION | tr -d '\n\r')
 timeout=$(expr $BDEVPERF_TEST_DURATION \* 2)
 bdevperf="/usr/libexec/spdk/scripts/bdevperf.py"
 make exec SVC=bdevperf OPTS=-T CMD="$bdevperf -v -t $timeout -s $BDEVPERF_SOCKET perform_tests"

Sample run

[2023-08-17 17:30:01.713163] Starting SPDK v23.01.1 / DPDK 22.11.1 initialization...
[2023-08-17 17:30:01.713298] [ DPDK EAL parameters: bdevperf --no-shconf -c 0x1 --huge-unlink --log-level=lib.eal:6 --log-level=lib.cryptodev:5 --log-level=user1:6 --iova-mode=pa --base-virtaddr=0x200000000000 --match-allocations --file-prefix=spdk_pid1 ]
EAL: Cannot open VFIO container /dev/vfio/vfio, error 1 (Operation not permitted)
 EAL: VFIO support could not be initialized
TELEMETRY: No legacy callbacks, legacy socket not created
[2023-08-17 17:30:01.840264] app.c: 712:spdk_app_start: *NOTICE*: Total cores available: 1
[2023-08-17 17:30:01.974578] reactor.c: 926:reactor_run: *NOTICE*: Reactor started on core 0
[2023-08-17 17:30:02.045838] accel_sw.c: 681:sw_accel_module_init: *NOTICE*: Accel framework software module initialized.
Running I/O for 90 seconds...
 
                                                                                                 Latency(us)
 
Device Information          : runtime(s)       IOPS      MiB/s     Fail/s     TO/s    Average        min        max
 
Job: Nvme0n1 (Core Mask 0x1)
 	 Verification LBA range: start 0x0 length 0xa00
	 Nvme0n1             :      90.06    2133.91       8.34       0.00     0.00   59957.68    3340.06 1101207.23

 ===================================================================================================================
  Total                      :               2133.91       8.34       0.00     0.00   59957.68    3340.06 1101207.23

Signed-off-by: Alexander Indenbaum [email protected]

Copy link
Collaborator

@barakda barakda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great PR @baum, an important addition to our project

.github/workflows/build-container.yml Outdated Show resolved Hide resolved
.github/workflows/build-container.yml Show resolved Hide resolved
@baum baum force-pushed the bdevperf branch 2 times, most recently from 48377bf to f7980f2 Compare August 23, 2023 12:21
Copy link
Collaborator

@barakda barakda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

- https://spdk.io/doc/bdevperf.html
- https://spdk.io/doc/nvmf_multipath_howto.html

Env variables exposed by the `bdevperf` container

BDEVPERF_TEST_DURATION="90"
BDEVPERF_SOCKET="/tmp/bdevperf.sock"
BDEVPERF_IO_QUEUE="128"
BDEVPERF_IO_BS="4096"
BDEVPERF_IO_TYPE="verify"

Signed-off-by: Alexander Indenbaum <[email protected]>
@baum baum merged commit ac7632e into ceph:devel Aug 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants