I can't get over 60MB/s from 8x 15k SAS disks

Status
Not open for further replies.

tai

Cadet
Joined
Sep 17, 2017
Messages
8
I have a spare workstation that I've built with 8x 15k SAS disks and no matter what I do I can't seem to get more throughput than 60MB/s. I get the same performance regardless of how many disks are in the pool. What is wierd is that I have 2 FreeNAS servers and my other server that is built with decent hardware has the same issue.

Specs (Test Workstation)
FreeNAS 9.10.2 U6
Server: HP xw9400 Workstation
CPU: 2x dual core AMD Opteron 2220 2.8GHz
RAM: 24GB DDR2 ECC
HDD: 8x Seagate 150GB 15k SAS
Controller: Integrated SAS Controller

Specs (Lab Storage Server)
FreeNAS 11 U3
Server: IBM X3500
CPU: 2x quad core Intel E5440 2.8GHz
RAM: 64GB DDR2 ECC
HDD: 8x WD Caviar Green 7200rpm 2TB
Controller: M1015 (IT Mode)

  • I have built the zpool with both 4xMirrored vdevs and also a RAIDZ vdev. Both starting with 2 disks and testing performance, then adding another 2 disks in a new vdev and testing again. At no time have I seen an increase in performance or exceeded 60MB/s throughput.
  • I have tested with "dd if=/dev/zero of=testfile bs=128k count=50000". I have changed the block sizes and I get some outstanding results, but nothing seems to be reflected in the real world. This test doesn't seem to give any indicative results. It creates a 6GB file and reports back with (965997729 bytes/sec).
  • If I execute "dd if=/dev/zero of=/dev/null bs=128k count=50000" it reports back a result of (3030716917 bytes/sec).
  • After I have used the "dd" command to create a 6GB testfile, I run "rsync --info=progress2 testfile testfile_new", which is just making a copy of the same file into the same location, the rsync progress only reaches 60MB/s transfer speed.
  • While performing both the "dd" and "rsync" tests, I monitored with "zpool iostat 1". This also reported back a maximum of 60MB/s
  • I have checked the CPU consumption and it stays consistently at 90% idle.
  • I also monitored the disk busy status with "iostat -xw 1" and the %b figure was well below 40% at all times.
  • I created an iSCSI extent (using a zvol) and connected the storage to my ESXi host. I cloned a VM to the new storage and the write operation maxed out at 60MB/s according to both iostat, the ESXi monitoring GUI and esxtop.
  • I launched the VM on the new storage (Windows Server) and proceeded to copy a 3GB file to another location on the same HDD and Windows reported this operations throughput at 40-50MB/s.
  • Lastly, I attached 3x 1TB 7200rpm disks to my Lab Storage Server and did the same tests. I was shocked when it also returned the exact same results. It can't seem to provide me access to my storage at anything more than 60MB/s.
The storage performance has never really been an issue for me because my storage has only ever been used for media storage, so i've never played with it. It's only now that I have a spare lot of 15k disks and figured I'd play around with a second FreeNAS server. My VMware lab cluster is running vSAN with all flash storage.

This appears to me to be a bottleneck on the FreeNAS server. The dd command seems to show the potential of the disk pool but even copying files locally on the FreeNAS server, I can't get anything over 60MB/s. Are there any other tests that I can do to narrow down the issue? The disks don't appear to be busy, the CPU isn't consumed, i'm not worried about network or external access while testing locally on the server. The only thing left is RAM, which I can't imagine would be limiting to 60MB/s.

Any help?
 

m0nkey_

MVP
Joined
Oct 27, 2015
Messages
2,739
Can you post a smartctl -a /dev/<devid> of one of the 15K SAS drives?

My guess is you have some of them weird 15K SAS drives that have an odd sector size.
 

tai

Cadet
Joined
Sep 17, 2017
Messages
8
There are 4 different types of 15k 150GB drives. Seagate, Hitachi, Fujitsu and Samsung. I have checked them all and they all have a 512 block size.

smartctl -a /dev/da0

Code:
=== START OF INFORMATION SECTION ===
Vendor:			   HITACHI
Product:			  HUS153014VLS300
Revision:			 HPH1
User Capacity:		146,815,737,856 bytes [146 GB]
Logical block size:   512 bytes
Rotation Rate:		15000 rpm
Logical Unit id:	  0x5000cca00d488bd4
Serial number:		JFW8WUVC
Device type:		  disk
Transport protocol:   SAS (SPL-3)
Local Time is:		Mon Sep 18 06:25:10 2017 AEST
SMART support is:	 Available - device has SMART capability.
SMART support is:	 Enabled
Temperature Warning:  Enabled

=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK
Current Drive Temperature:	 34 C
Drive Trip Temperature:		70 C

Manufactured in week 41 of year 2008
Specified cycle count over device lifetime:  50000
Accumulated start-stop cycles:  334
Elements in grown defect list: 0
Vendor (Seagate) cache information
Blocks sent to initiator = 7900302011269120

Error counter log:
		  Errors Corrected by		   Total   Correction	 Gigabytes	Total
			  ECC		  rereads/	errors   algorithm	  processed	uncorrected
		  fast | delayed   rewrites  corrected  invocations   [10^9 bytes]  errors
read:		  0		0		 0		 0		  0		  0.000		   0
write:		 0		0		 0		 0		  0		  0.000		   0
Non-medium error count:	 3959

No self-tests have been logged
 

tai

Cadet
Joined
Sep 17, 2017
Messages
8
/usr/local/www/freenasUI/tools # zpool iostat 1
Code:
				capacity	 operations	bandwidth
pool		  alloc   free   read  write   read  write
------------  -----  -----  -----  -----  -----  -----
LabRat-Storage  44.3G   492G	  0  2.08K	  0  31.5M
freenas-boot   738M  14.2G	  0	  0	  0	  0
------------  -----  -----  -----  -----  -----  -----
LabRat-Storage  44.4G   492G	  0  3.96K	  0  62.0M
freenas-boot   738M  14.2G	  0	  0	  0	  0
------------  -----  -----  -----  -----  -----  -----
LabRat-Storage  44.4G   492G	  0  3.93K	  0  62.4M
freenas-boot   738M  14.2G	  0	  0	  0	  0
------------  -----  -----  -----  -----  -----  -----
LabRat-Storage  44.5G   491G	  0  3.94K	  0  61.8M
freenas-boot   738M  14.2G	  4	  0  2.49K	  0
------------  -----  -----  -----  -----  -----  -----
LabRat-Storage  44.6G   491G	  1  3.87K  7.85K  60.1M
freenas-boot   738M  14.2G	  0	  0  3.92K	  0
------------  -----  -----  -----  -----  -----  -----
LabRat-Storage  44.6G   491G	  2  3.93K  11.9K  61.3M
freenas-boot   738M  14.2G	  1	  0   1014	  0
------------  -----  -----  -----  -----  -----  -----
LabRat-Storage  44.7G   491G	  0  3.95K	  0  60.3M
freenas-boot   738M  14.2G	  1	  0   1015	  0
------------  -----  -----  -----  -----  -----  -----
LabRat-Storage  44.7G   491G	  0  3.83K	  0  59.9M
freenas-boot   738M  14.2G	  0	  0	  0	  0
------------  -----  -----  -----  -----  -----  -----
LabRat-Storage  44.8G   491G	  1  3.87K  7.85K  60.5M
freenas-boot   738M  14.2G	  0	  0	  0	  0
------------  -----  -----  -----  -----  -----  -----
LabRat-Storage  44.9G   491G	  3  3.91K  15.9K  61.2M
freenas-boot   738M  14.2G	  3	  0  5.46K	  0
------------  -----  -----  -----  -----  -----  -----
LabRat-Storage  44.9G   491G	  0  3.90K	  0  61.1M
freenas-boot   738M  14.2G	  1	  0   1014	  0
------------  -----  -----  -----  -----  -----  -----
LabRat-Storage  45.0G   491G	  0  3.97K	  0  58.5M
freenas-boot   738M  14.2G	  0	  0	  0	  0
------------  -----  -----  -----  -----  -----  -----
LabRat-Storage  45.0G   491G	  0  3.91K	  0  39.2M
freenas-boot   738M  14.2G	  0	  0	  0	  0
------------  -----  -----  -----  -----  -----  -----
LabRat-Storage  45.1G   491G	  0  3.94K	  0  37.7M
freenas-boot   738M  14.2G	  0	  0	  0	  0
------------  -----  -----  -----  -----  -----  -----
LabRat-Storage  45.1G   491G	  2  3.88K  12.0K  55.9M
freenas-boot   738M  14.2G	  1	  0  4.48K	  0
------------  -----  -----  -----  -----  -----  -----
LabRat-Storage  45.2G   491G	  2  3.77K  11.4K  57.5M
freenas-boot   738M  14.2G	  0	  0	  0	  0
------------  -----  -----  -----  -----  -----  -----
 

tai

Cadet
Joined
Sep 17, 2017
Messages
8
/usr/local/www/freenasUI/tools # ./arc_summary.py
Code:
System Memory:

0.18%43.06MiB Active,0.82%197.04MiB Inact
85.96%20.07GiB Wired,0.00%0Bytes Cache
13.04%3.05GiB Free,0.00%0Bytes Gap

Real Installed:24.00GiB
Real Available:99.85%23.96GiB
Real Managed:97.46%23.35GiB

Logical Total:24.00GiB
Logical Used:86.51%20.76GiB
Logical Free:13.49%3.24GiB

Kernel Memory:248.11MiB
Data:84.67%210.08MiB
Text:15.33%38.03MiB

Kernel Memory Map:23.35GiB
Size:75.03%17.52GiB
Free:24.97%5.83GiB
Page:  1
------------------------------------------------------------------------

ARC Summary: (HEALTHY)
Storage pool Version:5000
Filesystem Version:5
Memory Throttle Count:0

ARC Misc:
Deleted:12.38m
Mutex Misses:7.26k
Evict Skips:7.26k

ARC Size:58.95%13.18GiB
Target Size: (Adaptive)80.78%18.06GiB
Min Size (Hard Limit):12.50%2.79GiB
Max Size (High Water):8:122.35GiB

ARC Size Breakdown:
Recently Used Cache Size:91.74%16.57GiB
Frequently Used Cache Size:8.26%1.49GiB

ARC Hash Breakdown:
Elements Max:5.43m
Elements Current:71.58%3.88m
Collisions:8.94m
Chain Max:8
Chains:993.86k
Page:  2
------------------------------------------------------------------------

ARC Total accesses:19.59m
Cache Hit Ratio:53.28%10.44m
Cache Miss Ratio:46.72%9.15m
Actual Hit Ratio:48.32%9.47m

Data Demand Efficiency:89.51%10.41m
Data Prefetch Efficiency:10.54%8.98m

CACHE HITS BY CACHE LIST:
  Anonymously Used:0.54%56.37k
  Most Recently Used:79.38%8.28m
  Most Frequently Used:11.31%1.18m
  Most Recently Used Ghost:8.14%849.87k
  Most Frequently Used Ghost:0.63%65.39k

CACHE HITS BY DATA TYPE:
  Demand Data:89.25%9.31m
  Prefetch Data:9.07%946.50k
  Demand Metadata:1.35%140.99k
  Prefetch Metadata:0.33%34.75k

CACHE MISSES BY DATA TYPE:
  Demand Data:11.92%1.09m
  Prefetch Data:87.81%8.04m
  Demand Metadata:0.21%19.45k
  Prefetch Metadata:0.05%4.93k
Page:  3
------------------------------------------------------------------------

Page:  4
------------------------------------------------------------------------

DMU Prefetch Efficiency:59.49m
Hit Ratio:5.83%3.47m
Miss Ratio:94.17%56.02m
 

tai

Cadet
Joined
Sep 17, 2017
Messages
8
This is the worst of the device statistics that I could find where the disk busy (%b) was getting up into the 50-60% range.

# iostat -x 1
Code:
					   extended device statistics  
device	   r/s	 w/s	 kr/s	 kw/s  ms/r  ms/w  ms/o  ms/t qlen  %b  
da0		  308	 223   2652.0  16780.0	 2	 2	 2	 2	0  64 
da1		  200	 220   1388.0  16752.0	 2	 2	 5	 2	0  64 
da2		  445	 239   3240.0  16792.0	 2	 1	 3	 2	0  58 
da3		   66	 263	824.0  16784.0	 9	 1	 3	 3	0  50 
da4		  289	 270   2620.0  16800.0	 3	 1	 3	 2	0  60 
da5		  224	 282   1408.0  16756.0	 2	 1	 6	 1	0  53 
da6		  461	 277   3188.0  16804.0	 2	 1	 2	 1	0  57 
da7		   77	 220	824.0  16788.0	 7	 2	 7	 3	0  53 
da8			0	   0	  0.0	  0.0	 0	 0	 0	 0	0   0 
pass0		  0	   0	  0.0	  0.0	 0	 0	 0	 0	0   0 
pass1		  0	   0	  0.0	  0.0	 0	 0	 0	 0	0   0 
pass2		  0	   0	  0.0	  0.0	 0	 0	 0	 0	0   0 
pass3		  0	   0	  0.0	  0.0	 0	 0	 0	 0	0   0 
pass4		  0	   0	  0.0	  0.0	 0	 0	 0	 0	0   0 
pass5		  0	   0	  0.0	  0.0	 0	 0	 0	 0	0   0 
pass6		  0	   0	  0.0	  0.0	 0	 0	 0	 0	0   0 
pass7		  0	   0	  0.0	  0.0	 0	 0	 0	 0	0   0 
pass8		  0	   0	  0.0	  0.0	 0	 0	 0	 0	0   0 
cbb0		 156	  13  17291.5	  6.5	 0	 0	 0	 0	0  11
 

tai

Cadet
Joined
Sep 17, 2017
Messages
8
The output from top during a file copy process
# top
Code:
last pid: 83258;  load averages:  0.68,  0.59,  0.46																								 up 1+00:51:26  18:08:57
44 processes:  1 running, 43 sleeping
CPU:  0.0% user,  0.0% nice,  6.4% system,  0.7% interrupt, 92.9% idle
Mem: 3288K Active, 306M Inact, 22G Wired, 1079M Free
ARC: 20G Total, 13G MFU, 5958M MRU, 819K Anon, 1091M Header, 12M Other
Swap: 16G Total, 407M Used, 16G Free, 2% Inuse
 

tai

Cadet
Joined
Sep 17, 2017
Messages
8
# zpool status
Code:
  pool: LabRat-Storage
 state: ONLINE
  scan: none requested
config:

NAME  STATE   READ WRITE CKSUM
LabRat-Storage  ONLINE   0   0   0
  mirror-0  ONLINE   0   0   0
  gptid/7b7a6364-9ba2-11e7-928d-001f29013f7e  ONLINE   0   0   0
  gptid/7ca763fc-9ba2-11e7-928d-001f29013f7e  ONLINE   0   0   0
  mirror-1  ONLINE   0   0   0
  gptid/7dfe8902-9ba2-11e7-928d-001f29013f7e  ONLINE   0   0   0
  gptid/7f28d337-9ba2-11e7-928d-001f29013f7e  ONLINE   0   0   0
  mirror-2  ONLINE   0   0   0
  gptid/80748f3a-9ba2-11e7-928d-001f29013f7e  ONLINE   0   0   0
  gptid/81cfb570-9ba2-11e7-928d-001f29013f7e  ONLINE   0   0   0
  mirror-3  ONLINE   0   0   0
  gptid/82fa6bd7-9ba2-11e7-928d-001f29013f7e  ONLINE   0   0   0
  gptid/842712dd-9ba2-11e7-928d-001f29013f7e  ONLINE   0   0   0

errors: No known data errors

  pool: freenas-boot
 state: ONLINE
  scan: scrub repaired 0 in 0h3m with 0 errors on Sat Sep 16 20:48:58 2017
config:

NAME  STATE   READ WRITE CKSUM
freenas-boot  ONLINE   0   0   0
  da8p2   ONLINE   0   0   0

errors: No known data errors
 

tai

Cadet
Joined
Sep 17, 2017
Messages
8
My Lab Storage Server appears to be working fine after a reboot. rsync at least appears to be reporting 130MB/s file copy, which i'm more than happy with for 3x 7200rpm disks in a RAIDZ.

# dd if=/dev/zero of=testfile bs=128k count=5000
Code:
5000+0 records in
5000+0 records out
655360000 bytes transferred in 0.524508 secs (1249475701 bytes/sec)


# rsync --info=progress2 testfile testfile_new
Code:
	551,288,832  84%  131.53MB/s	0:00:00 



Next steps might be to put 3x of the 15k disks into my Lab Storage Server and see if they perform better in the good server. I am wondering if this could be the storage controller in the HP xw9400 that is causing all the performance issues? Surely it wouldn't cause such bad performance though? The on-board storage controller is designed for 15k SAS disks....
I have a spare IBM BR10i Storage Controller, although it's not the best, I can install it in the xw9400 server tonight and see if it gets better performance.
 
Status
Not open for further replies.
Top