SMB3.0 Copy from FreeBSD to Windows 2012 R2


I was hoping someone could help explain this for me.

I have a Windows 2012 Server, I have setup perfmon to record the Disk Read Bytes/Sec and Disk Write Bytes/sec of a local disk.  I have the lowest sample set to 1 second.

I am copying a file from the local disk to an Isilon Node (running free BSD) everything is perfect, numbers look good.

The problem is copying from Isilon to the local disk.  I see values that 'hiccup'.  Typically I get several hundred megabytes for a few seconds and then 0, then back high then zero again.  The high numbers are always at least one in a row up to 6 (so 1 second to 6 seconds) the drop is always 1 second....    

NOTE: I have verified that I am connected and transferring with SMB 3.0.

I am not seeing this with SMB 2.0 copies so I am thinking this is something to do with SMB 3.0??
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

Aaron TomoskyConnect With a Mentor Technology ConsultantCommented:
From what I know of building my own FreeBSD and ZFS storage systems, this type of stutter on reads without an SSD is normal. To create a ramdisk for testing, reference this:

One of the benefits of having branded gear is you can call them. I'd suggest asking EMC if this is normal behavior

Edit: Are you running the current version of OneFS?

Generally with performance testing new systems, it's best to isolate the disk from the network and cpu etc... With storage systems there are so many variables you can tweak and so many moving parts involved, isolating the subsystem part that is the bottleneck is paramount.
Aaron TomoskyTechnology ConsultantCommented:
What is the network connection? Gigabit will only get you 100MBps.
Typically I get several hundred megabytes for a few seconds and then 0
adamc817Author Commented:
Sorry, setup as 10gig SFP+
[Webinar] Kill tickets & tabs using PowerShell

Are you tired of cycling through the same browser tabs everyday to close the same repetitive tickets? In this webinar JumpCloud will show how you can leverage RESTful APIs to build your own PowerShell modules to kill tickets & tabs using the PowerShell command Invoke-RestMethod.

Aaron TomoskyTechnology ConsultantCommented:
I'm not familiar with Isilon, but if you are using ZFS in freeBSD, it can have this behavior. If you have a zil/slog ssd setup as a write cache, you can stream write pretty fast as it flushes to disk every 5 seconds or so. However the reading from disk can be affected by a few things:
1. if some of the data is in the arc (ram cache)
2. if some of the data is in the l2arc (ssd cache)
3. if it's going to disk, and you are using the disk, the write cache flush can block reads for a moment.

Id suggest copying something into a ramdisk on the Isilon and using that as the source to test everything except the disk subsystem.
adamc817Author Commented:
Hi Aaron,

No SSD's all platters....

wondering how I can write to the ram cache?  some zfs commands?  I will google later tonight but would love an example or place to look.  Thanks!
Aaron TomoskyTechnology ConsultantCommented:
Thanks for the points, but I'd really like to know what the end result is when you hear back from emc.
adamc817Author Commented:
OK, so you might not like the answer....

So previously I was copying from Isilon to HD on Windows 2012 R2.  I thought maybe the local disk array is causing the slow down?

So I made a RAMDisk on the Windows Machine, I did the copy and it was the same but was unable to get perfmon stats of a 'virtual' drive.

So I then tried to look at an SMB Counter on perfmon, no luck.  Finally tried the Network Adapter, here I saw steady 'bytes received/sec'.  So I thought I would try that again using the disk sub system, still steady bytes/received. (Always in the 400 MB/s, which was the average write MB/sec for the disk array).

So finally to sum it up I made a counter that recorded both the bytes written to disk and bytes received from the 10 gig adapter.  Turns out I still got drops in writes to the disk but maintained a steady reads on the adapter.  When I compared the bytes received vs bytes written to disk over a given period, they were off by about .1 bytes!

My conclusion is that there is a hold up either on the RAID card or WIndows 2012 that waits until there is enough data to write before writing it.  I was comparing this to a WIn 2008 R2 machine (SMB2) so I did the wrong initial test :(

I do appreciate your comments though, it will really help in the future.  I have to say the best help I have received here!
Aaron TomoskyTechnology ConsultantCommented:
Glad you got it figured out! I had assumed you were doing SMB 2.0 on the same hardware so I didn't even consider ther receiving side hardware.
All Courses

From novice to tech pro — start learning today.