I have a network infrastructure of Windows XP clients (a mix of XP and 64-bit XP), that are accessing a network share on a Windows 2008 R2 server. Whenever users type the address of a folder into the address bar of Windows Explorer it's as snappy at determining the contents of the current folder and presenting them to you in the address bar as if you're working on a local drive.
But if you open one of the subfolders users get the animated red torch and 'Searching for items...' dialog, typically for 45 seconds.
Similarly when using the open folder dialog to try and select a subfolder on this share it takes, on average, 45 seconds for the dialog to expand each node and show the subfolders of each node.
Also, while the Explorer instance accsesing the network share is running slowly users notice that the performance of all other Explorer windows suffers. So while Explorer is searching for files on the network share they can't switch to another task and navigate around their local drive using Explorer because it's now as slow as a dead dog at accessing anything.
Are there any settings we can change which will improve the performance accessing network shares?
Finally this was tracked down to integration of the Serena Dimensions Explorer Shell integration.
Once this was discovered the fix was simply to unregister the DLL:
regsvr32 /u cmshellext10m.dll
If it were my problem, I'd approach it in the following ways:
Benchmark and ongoing monitoring: First, benchmark performance on your share. I use 'readfile.exe' from http://www.winimage.com/readfile.htm because it gives me a performance index comparable to what my user on that share will experience. This is your measure for whether you are gettign closer, further away or having no impact on your problem.
I would employ something like MRTG to give nice historical graphs, but excel should work as well. You may need to write a script to make MRTG work for this - but just speak up and I'll post a script.
You need this to see if changes you might be making causes a 'quantifiable' change in performance.
Next, set up a regularly scheduled job to collect performance counter data (like every 5 minutes).
You want to collect things like: CPU memory disk channel network throughput number of processes number of sessions statistics about your nic's behavior There are lots to choose from.
You can use Microsoft performance monitor, and have it export to a file, or set up WMIC.exe query's and collect and export that way. There are lots of different ways to do this.
You want to see what these collected numbers are saying to you. You may want to focus on natural bottlenecks - like nic throughput.
Some links
There were a number of changes to the file sharing system in 2008/Vista which may be causing you issues.
You can work around the 'all explorer windows are slow' problem by enabling 'Launch folder windows in a separate process' option under Tools -> Folder Options.
Take a look at the TCP offload settings on both server and clients, as I vaguely remember some issues with SMB browsing if ToE is enabled on the server-side with particular NICs.
Have you run the File Services Role best practice analyzer? That should point out anything you can immediately check into. 8.3 file names could be a potential issue (this would be picked up by the analyzer). See SMB: Short File name Creation should be disabled
If the analyzer flags this as an issue use the following method to disable 8.3 file names:
Open command prompt -> fsutil 8dot3name set x
usage : fsutil 8dot3name set [0 through 3] | [ 1 | 0]
When a volume is not specified the operation updates the registry value:
0 - Enable 8dot3 name creation on all volumes on the system 1 - Disable 8dot3 name creation on all volumes on the system 2 - Set 8dot3 name creation on a per volume basis 3 - Disable 8dot3 name creation on all volumes except the system volume
When a volume is specified the operation updates the individual volume's on disk flag. This operation is only meaningful if the registry value is set to 2.
0 - Enable 8dot3 name creation on this volume 1 - Disable 8dot3 name creation on this volume
This operation takes effect immediately (no reboot required).
Sample commands: "fsutil 8dot3name set 1" - disable 8dot3 name creation on all volumes