AnsweredAssumed Answered

cifs VERY slow on win2k12 runnine ce 4.2.e

Question asked by fsasse on Apr 4, 2014
I have CIFS working with the somewhat standard CIFS configuration found on these forums and the wikis.  I also have the "dummy" CIFS host configured, and "File and Print Services" turned off, which is necessary for CIFS to even work.  For the sake of the forum, to get this far you need to do these things, and I will re-post that info here:

Post by "dward" Wed, 7/14/2010

………………………….

With its out-of-the-box settings the CIFS server should start up. You don't need to do anything special to configure it.

The problem is getting it to co-exist with the CIFS server built into your Operating System. This is a particular challenge on Vista, Windows 2008 and Windows 7.

On Windows, so that it doesn't interfere with the CIFS server built into Windows, the Alfresco CIFS server pretends to be another host with the same name as the host running Alfresco, but with the letter 'a' at the end. So if Alfresco is running on host.domain.com, the CIFS server will be at \\hosta

Now it relies on intercepting NetBIOS calls in order to be able to do this. The problem is that new versions of Windows now prefer SMB over TCP to SMB over NetBIOS. This means that it will try to resolve hosta using a DNS lookup. If you ping hosta you'll find it has the same IP address as the actual host. This means that when trying to resolve \\hosta, Windows 2008 ends up going to the real CIFS port on the host machine.

The answer is to disable SMB over TCP/IP so that it falls back to SMB over NetBIOS.

In order to get local traffic to do this, you can add a line to C:\Windows\System32\drivers\etc\hosts so that hosta resolves via DNS lookup to a fake IP address. e.g.

192.168.192.192 hosta

In order to get other clients to do this, you may have to configure the Alfresco server as their DNS server, or use the firewall settings on the Alfresco server to block traffic on the SMB over TCP port 445.

All these problems exist because the Alfresco server is trying to co-exist with the CIFS server built into Windows. If you run Alfresco on a Linux host that doesn't have its own CIFS server, you of course won't have these problems.

……………………………………………..

So, getting CIFS to work is the first thing, the next hurdle is to get satisfactory copy speeds to the CIFS mounted alfresco repository!

My CIFS configuration (as taken from the D:\Alfresco\tomcat\shared\classes\alfresco-global.properties).
I added the "cifs.tcp_window_size=8388608" but it didn't help at all.
I should mention my copy speed to alfresco CIFS mounted repository is at best 10/mbs which is comparable to USB 1.0.

### CIFS ###
alfresco.authentication.authenticateCIFS=true
cifs.enabled=true
cifs.serverName=(dummyhostA)
cifs.domain=MNDNR
cifs.hostannounce=true
cifs.tcpipSMB.port=445
cifs.netBIOSSMB.namePort=137
cifs.netBIOSSMB.datagramPort=138
cifs.netBIOSSMB.sessionPort=139
cifs.WINS.autoDetectEnabled=true
cifs.tcp_window_size=8388608
#cifs.disableNativeCode=true (if you enable this CIFS won't work at all!)
cifs.disableNIO=false
cifs.ipv6=disabled

I have also tried some registry hacks, which made no improvements to the speed either, below:

Expand and locate the sub tree [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters]
Add a new REG_DWORD key with the name of Smb2
Value name: Smb2
Value type: REG_DWORD
0 = disabled
1 = enabled
Set the value to 0 to disable SMB 2.0, or set it to 1 to re-enable SMB 2.0.
Reboot the server.

Change the window size in the Windows registry on a Windows NT client by adding the DWORD value
\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpWindowSize
value=8388608 (decimal)

I am thinking this is a common problem, and I am hoping there is another configuration item that can be added to improve the copy speeds to the CIFS alfresco repository.

My Windows server is Windows Server 2012 64bit, running as a virtual server in VMWare.
Alfresco version is Community Edition, version 4.2.e.



Outcomes