One of the storage-related issues I am asked about most often is SMB performance and SMB performance tuning, especially when a storage device is performing more slowly than it seemingly should. Unfortunately, there typically isn’t an instant fix for these kinds of problems, as each storage device has its own unique characteristics. The storage workload can also play a major factor in storage performance.
Before delving too deeply into troubleshooting, it’s important to take a moment to make sure that your storage hardware has the latest firmware update and that any operating systems or applications that are communicating with the slow SMB storage are also fully patched. It may sound cliché, but, if possible, try rebooting the storage appliance. I have seen more than one situation in which a reboot has fixed a storage performance issue.
It’s also worth considering what exactly is happening that causes you to think of the storage as slow. The reason why this is important is that sometimes the SMB share’s specific behavior can tell you exactly what is going on.
Suppose, for example, that when you copy files, the file copy process starts out fast but then slows to a crawl partway through the operation. This usually happens because the file that is being copied is partially cached, but the cache doesn’t have enough memory available to accommodate the entire file. Therefore, when the cache runs out, the system has no choice but to write to disk rather than writing to the cache.
You might also discover that SMB performance is fine for some storage operations, but slows down if you are copying a large number of small files. This is actually a common occurrence and doesn’t necessarily point to a problem. What happens is that there are SMB commands that have to be executed each time a file is copied. If a large number of small files are being copied, there will be a significant amount of overhead for each file. This overhead is far more noticeable when copying small files because the overhead makes up a greater percentage of the required storage traffic.
If you can’t attribute slow performance to any of these “natural” causes, it’s time to start working to narrow down the source of the problem as you plan for SMB performance tuning.
At a high level, SMB storage problems can occur because of three different factors.
The problem could be related to the client that is trying to access the storage. The client may be suffering from low memory, high CPU utilization or any number of issues that cause it to perform poorly.
Another potential cause of SMB storage problems is the storage itself. It may be possible that the storage is incapable of supporting enough IOPS to handle current demand. It’s also possible that the storage appliance does not have enough memory. Yet another possibility is that the hardware is busy doing other things. For instance, a storage appliance may perform poorly if it is in the process of resynchronizing a RAID volume. Most storage vendors provide diagnostic tools that can be used to assess the storage hardware’s overall health.
One more possibility is that the storage connectivity is being saturated. I have actually seen several instances in which this has been the cause of storage performance problems in smaller organizations.
Not all that long ago for instance, I heard about a small organization that purchased a four bay NAS appliance and installed an SSD into each of the four bays. Because this was a consumer grade appliance, it only included a single, Ethernet port. Because the organization was using flash storage, the disks themselves were capable of handling far more IOPS than what the network connection could realistically support. Initially, the NAS device didn’t receive enough traffic for its network bandwidth limitations to be a problem. As the device became more heavily used over time though, performance began to suffer.
When it comes to troubleshooting SMB storage problems and planning SMB performane tuning, your best bet may be to use the Windows Performance Monitor in conjunction with any performance monitoring (and diagnostic) tools provided by the storage vendor. Doing so will help you to narrow down the source of the problem, at which point you can work to resolve the issue.