[stgt] TGTD io performance about 1/8th of NFS on same server
John Pletka
jpletka at abraxis.com
Wed May 2 21:46:33 CEST 2012
I'm running scsi-target-utils-1.0.22 on a CentOS 6.0 quad-core server and am
seeing very poor performance compared to a NFS share on that same server.
Hopefully someone here can suggest some configuration tweaks that can help
out.
Some evidence that might help:
1) Storage server is running software RAID6, quad-core server with 8G of
RAM. OS is installed on a compact-flash card, no swap, storage on 10x2TB
7200 RPM SATA disks
2) The iSCSI target is a sparse file, formatted to ext3 by the client
machine. The sparse file resides on a XFS partition on the storage server
3) Client is 32-bit Centos 5.6, runing
iscsi-initiator-utils-6.2.0.872-13.el5
4) tgtd consistently uses 100% of one of the CPU cores (may not be
multi-tasking?)
5) Speed tested by "dd if=/dev/zero of=/mnt/iscsi/100Mtest.img bs=1M
count=100"
6) The iscsi mount gets about 6 MBps
7) A NFS mount on the same client to the same server gets about 30MBps
8) The storage server has 10 iscsi targets, each 500GB sparse files, on
average about 20% full
9) The /var/log/messages has the following showing up every 30 minutes or so
May 2 10:36:42 san2 tgtd: abort_task_set(1114) found 8000000b 0
May 2 10:36:42 san2 tgtd: abort_cmd(1090) found 8000000b 6
I realize the sparse file vs direct directory write can account for a bit of
the difference, but that seems extreme.
here is my /etc/sysctl.conf:
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1
# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
****************************************************************************************************
Results of iostat:
avg-cpu: %user %nice %system %iowait %steal %idle
3.00 0.00 15.98 12.98 0.00 68.04
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
md2 393.64 4124.07 5736.80 66942941503 93121090478
--
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
More information about the stgt
mailing list