Windows – Network behavior of slow Windows shared storage

network-shareperformanceserver-message-blockwindowsworkgroup

I have got on my hands 3 Windows XP file servers (their sole purpose is their SMB share) running on a office with about 50 users. The workload is only office usage: they use it to store and share among them Access databases and XLS files, and they use the files over the network share.

It is almost instantaneous to copy a 700 Kb XLS file from one of the servers to a workstation, but it takes over a minute to load it from a remote share with Excel. This same file is loaded in a few seconds if from a local disk.

I don't know what makes the access to the file so slow when using it via the network, I suspect it is some quirk of Windows remote file access (maybe authentication?), and I hope to be possible to change some simple flag on the servers to speed things up to a sane speed. I have taken screen shots of the network usage while loading the aforementioned XLS file, can you recognize this pattern and possibly give me some clue of what is the problem?

In the first image, there are two runs of Excel loading the remote file, both taking more than one minute to complete. The top and bottom graphs are from the same thing, but I only found later the task manager option to discriminate between upload (red) and download (yellow), so I took 2 different screenshots (concatenated bellow). Both runs took more than one minute, possibly more than 2 minutes.

runs_1_2

In the second image there are the 3rd and 4th runs. This time they ran considerably faster than the first one, but still too slow for bearable use. Both took more than 1 minute, but in the 4th run it occurred to me to measure the time properly, and I found it to take 1 minute and 42 seconds. That was the fastest of them. This time I only took one screenshot, of the discriminated version.

runs_3_4

What I noticed in all runs is the initial peak, about 8 seconds after I start the run, then the network usage drops to very low usage, then, a few seconds later, there is another peak, the biggest concentrated activity, then a long time of almost no activity, when finally Excel shows the file. There is still another peak that begins when the file is shown, and lasts for a few seconds. The offset between the start and end of the run, and the activity in the graph seems to be caused by a delay in the task manager to show the data. I don't know when the file is actually downloaded. I can't also explain why the green graph shows a small activity between peaks, and the red/yellow graph shows none. But the most intriguing of all is the minute long pause between the second and third peak, when I have no idea on what is happening, and certainly could be much faster.

Can someone experienced in Windows networks provide some expert guess on what is the problem with this setup (apart from decade old operating system)? Do you recognize these graph patterns? Can explain it? Have any hint on how to improve performance?

Best Answer

If the "slowness" only happens in Excel, I would probably look closer at the XML file and make sure the interpreter in Excel isn't having trouble parsing the XML. Could be malformed or having some trouble reading it. Try opening the file in other applications like Notepad etc and see if the slowness issue still exists. FWIW, XP isn't a good platform for sharing files with that many (50) users as it is limited to 10 client connections. You could be running into some contention issues with the other clients trying to read the XML file as well. I don't think your issue is the size of the file, but rather what excel is doing with the file once it opens it. But that is just my thought. Try doing a CSV file dump and opening it up in Excel and see how long that takes.