mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-18 03:01:26 +00:00
Merge branch 'svn-trunk'
This commit is contained in:
67
README.performance
Normal file
67
README.performance
Normal file
@@ -0,0 +1,67 @@
|
||||
SCST Performance
|
||||
================
|
||||
|
||||
A question that is asked often is how to tune performance. This means how to
|
||||
improve the IOPS and/or bandwidth measured at the initiator side. In this
|
||||
README it is explained how to optimize storage performance.
|
||||
|
||||
Local storage
|
||||
-------------
|
||||
Start with measuring the performance of the local block device(s). IOPS can be
|
||||
measured e.g. as follows:
|
||||
|
||||
fio --ioengine=libaio --rw=randread --ioscheduler=none --numjobs=$(nproc) \
|
||||
--runtime=60 --group_reporting=1 --gtod_reduce=1 --norandommap \
|
||||
--thread --buffered=0 --iodepth=256 --iodepth_batch=128 --bs=4k \
|
||||
--name=bdev --filename=/dev/...
|
||||
|
||||
The bandwidth supported by a block device can be measured by increasing the
|
||||
block size to a larger value in the above command, e.g. --bs=1M.
|
||||
|
||||
Storage network
|
||||
---------------
|
||||
Start with measuring the network bandwidth using your favorite tool, e.g.
|
||||
netperf for non-RDMA networks or ib_write_bw for RDMA networks.
|
||||
|
||||
Next, add a nullio LUN to SCST, e.g. by adding the following in /etc/scst.conf:
|
||||
|
||||
HANDLER vdisk_nullio {
|
||||
DEVICE disk09 {
|
||||
blocksize 4096
|
||||
size_mb 256
|
||||
}
|
||||
}
|
||||
|
||||
TARGET_DRIVER ... {
|
||||
TARGET ... {
|
||||
LUN ... disk09
|
||||
}
|
||||
}
|
||||
|
||||
After a nullio LUN has been added, verify that this LUN is visible at the
|
||||
initiator side. If it is not visible at the initiator side, consider
|
||||
rescanning LUNs or disconnecting and reconnecting the initiator system to the
|
||||
SCST server.
|
||||
|
||||
Once the nullio LUN is visible at the initiator side, measure IOPS and
|
||||
bandwidth. The bandwidth should be close to the network bandwidth. When using
|
||||
the Linux iSCSI initiator this may require configuring multiple iSCSI sessions
|
||||
and activating multipathd on top of the multiple iSCSI sessions. The sequence
|
||||
for logging in with iSCSI and activating multiple iSCSI sessions is as follows:
|
||||
|
||||
iscsiadm -m iface -I iface2 -o new
|
||||
iscsiadm -m iface -I iface2 -o update -n iface.initiatorname -v ${iqn2}
|
||||
iscsiadm -m discovery -t st -p ${scst_ip_address}
|
||||
iscsiadm -m discovery -t st -p ${scst_ip_address} -I iface2
|
||||
iscsiadm -m node -p ${scst_ip_address} -l
|
||||
iscsiadm -m node -p ${scst_ip_address} -I iface2 -l
|
||||
|
||||
SCST Configuration
|
||||
------------------
|
||||
If the number of IOPS measured at the initiator side is significantly lower
|
||||
than the minimum of the IOPS supported by the local storage and the storage
|
||||
network, further tuning is required. Look up in /proc/interrupts which CPU
|
||||
cores process the most network and storage interrupts and configure the SCST
|
||||
kernel threads such that these run on other CPU cores than those that process
|
||||
the most interrupts by configuring the cpu_mask attribute. More information
|
||||
about the SCST cpu_mask sysfs attribute is available in the SCST README.
|
||||
@@ -3,34 +3,34 @@
|
||||
ABT_DETAILS="x86_64"
|
||||
ABT_JOBS=5
|
||||
ABT_KERNELS=" \
|
||||
5.10.8 \
|
||||
5.10.10 \
|
||||
5.9.16-nc \
|
||||
5.8.18-nc \
|
||||
5.7.19-nc \
|
||||
5.6.19-nc \
|
||||
5.5.19-nc \
|
||||
5.4.90-nc \
|
||||
5.4.92-nc \
|
||||
5.3.18-nc \
|
||||
5.2.21-nc \
|
||||
5.1.21-nc \
|
||||
5.0.21-nc \
|
||||
4.20.17-nc \
|
||||
4.19.168-nc \
|
||||
4.19.170-nc \
|
||||
4.18.20-nc \
|
||||
4.17.19-nc \
|
||||
4.16.18-nc \
|
||||
4.15.18-nc \
|
||||
4.14.216-nc \
|
||||
4.14.217-nc \
|
||||
4.13.16-nc \
|
||||
4.12.14-nc \
|
||||
4.11.12-nc \
|
||||
4.10.17-nc \
|
||||
4.9.252-nc \
|
||||
4.9.253-nc \
|
||||
4.8.17-nc \
|
||||
4.7.10-nc \
|
||||
4.6.7-nc \
|
||||
4.5.7-nc \
|
||||
4.4.252-nc \
|
||||
4.4.253-nc \
|
||||
4.3.6-nc \
|
||||
4.2.8-nc \
|
||||
4.1.52-nc \
|
||||
|
||||
Reference in New Issue
Block a user