Performance Testing; Network vs Storage
I’m sure we’ll all been there; you are working on a ‘performance issue’ and another technician tells you, “I don’t know what the problem is, ping response time is fast and ping didn’t report any dropped packets.”
I’ve written and spoke about this before, but want to briefly cover my concerns surrounding ping. I will start with a simple statement that I am not ‘anti-ping’ and actually use it quite often. My concern is that I see it used in the wrong scenarios and its operation is widely misunderstood.
Things you should know about Microsoft’s ping command include that they are sent at a 1 second interval, uses ICMP as its protocol and neither option are configurable. Other default settings you can change are default payload size (-l), TTL (-i), disabling resolve to address (-a), setting do not fragment (-f) and forcing to just use IPv4 (-4).
I personally prefer to use hrping (https://www.cfos.de/en/ping/ping.htm) as an alternative to Microsoft’s ping since it has many more options and still a command line tool, even though hrping also provides a GUI interface as well. This utility can send UDP packets, send a ping size ‘sweep’ of various sizes, send ICMP timestamp requests, interval between packets as well as the same options as the Microsoft ping command.
In summary, I use ping to validate or verify if the network and hosts are responding and if there is general packet loss. If the ping test results in no packet loss and response time is acceptable, I test the client or server performance.
If you want to test network performance, nothing beats iperf3 (https://iperf.fr/) but if you want to test the file system, copying a file is the easiest test. I know, this isn’t the same as sending hundreds of transactions, etc. but it’s a great start. In this video I show you how I used a simple Powershell command (Measure-Command) to time how long it took to copy files to/from my server.
In this video, I show you how I used iperf and a power shell command to copy a file (both read/write) on two different shares to identify if the issue is file system or network related.