I am inheriting a Windows 2012 R2 Server that is experiencing abysmal SMB/CIFS performance for Mac OS X Clients in particular. The server is doing file services and is an Active Directory Domain Controller (one of two for the domain). It is the PDC emulator. The other domain controller is a Windows 2003 Server.
The client side environment is a mix of Windows 7 and Mac OS X 10.9 Mavericks machines. All machines are on the same physical and logical gigabit LAN. Windows 7 users experience performance within expectations. Mac OS X 10.9 Mavericks clients experience abysmal performance including: slow directory listing, traversal, file reads, and file writes. There appears to be a significant asymmetry in read/write performance where write performance is significantly slower.
We have tried forcing the OS X Clients to use SMBv1 and CIFS, as opposed to the newer SMBX/SMB2 implementation. The issue persists for all versions. We have also installed Thursby DAVE for testing. There is slight alleviation of the listing/traversal performance, but it is still unacceptably slow.
I mounted a share and used dd
to read /dev/random
and write a 1GB text file to the share. Write performance was .33 Mbps. I ran tcpdump
during the write to capture the communications.Please excuse the lack of formatting - I cannot seem to back tick escape this block:
EDIT
I enabled NFS Server for Windows Server and mounted on a Mac OS X client. I conducted the same dd
test captioned above with similar results/performance.
15:45:45.221337 IP 10.0.1.53.59596 > server.example.local.microsoft-ds: Flags [.], ack 102, win 32767, options [nop,nop,TS val 1279665835 ecr 242798971], length 0
15:45:45.221546 IP 10.0.1.53.59596 > server.example.local.microsoft-ds: Flags [.], seq 1:501, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500WARNING: Packet is continued in later TCP segments
SMB PACKET: SMBwriteX (REQUEST)
15:45:45.221547 IP 10.0.1.53.59596 > server.example.local.microsoft-ds: Flags [.], seq 501:1001, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500SMB-over-TCP packet:(raw data or continuation?)
15:45:45.221547 IP 10.0.1.53.59596 > server.example.local.microsoft-ds: Flags [.], seq 1001:1501, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500SMB-over-TCP packet:(raw data or continuation?)
15:45:45.221547 IP 10.0.1.53.59596 > server.example.local.microsoft-ds: Flags [.], seq 1501:2001, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500SMB-over-TCP packet:(raw data or continuation?)
15:45:45.221548 IP 10.0.1.53.59596 > server.example.local.microsoft-ds: Flags [.], seq 2001:2501, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500SMB-over-TCP packet:(raw data or continuation?)
15:45:45.221548 IP 10.0.1.53.59596 > server.example.local.microsoft-ds: Flags [.], seq 2501:3001, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500SMB-over-TCP packet:(raw data or continuation?)
15:45:45.221549 IP 10.0.1.53.59596 > server.example.local.microsoft-ds: Flags [.], seq 3001:3501, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500SMB-over-TCP packet:(raw data or continuation?)
15:45:45.221549 IP 10.0.1.53.59596 > server.example.local.microsoft-ds: Flags [.], seq 3501:4001, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500SMB-over-TCP packet:(raw data or continuation?)
15:45:45.221550 IP 10.0.1.53.59596 > server.example.local.microsoft-ds: Flags [.], seq 4001:4501, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500SMB-over-TCP packet:(raw data or continuation?)
15:45:45.221550 IP 10.0.1.53.59596 > server.example.local.microsoft-ds: Flags [.], seq 4501:5001, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500SMB-over-TCP packet:(raw data or continuation?)
15:45:45.221551 IP 10.0.1.53.59596 > server.example.local.microsoft-ds: Flags [.], seq 5001:5501, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500SMB-over-TCP packet:(raw data or continuation?)
EDIT
- What next troubleshooting steps might I take to isolate a potential cause?
- Can anything be derived from the above captioned tcpdump?
- Are there any suggested network performance tuning recommendations to alleviate the performance issues described?