Hello everyone, today we are going to have a smaller post on ping testing. I wanted to discuss ping testing because the way most of us ping and why we test in the first place. Most of us just use the “ping + IP” in windows command. As good as this is, it’s not super accurate (as I have come to find out). I have found that there are several “ping test” based applications out on the nets that will give way more accurate read outs on pings (up to the 1000th decimal place). For the “why” we ping in the first place? It’s usually because of “performance” issues that we run into. Which, majority of the time, is not application performance at all [*cough, cough**environment*]. As we all know, Sage X3 is very CPU intensive and so communication is very important. Especially when it comes to segregated components across different machines. The ping ratios can determine how slow or fast the response rates for the applications business logic will take (across components).
If you were using the traditional ping (ping 192.168.0.1) it probably looks like the following:
Here Windows is saying that it’s taking 0ms to process the test. I don’t know about you, but when I see Zero (0) I think instant. So, I pretty much read this as my two machines can instantly talk to each other (as common person would think). The reality behind this is that the traditional “ping” function auto rounds the results to a whole number (like in math).
That same ping test with a more advanced ping tester shows a completely different story.
As we can see here, the ping is not actually 0ms but has a max of 0.949ms. From the looks of it, it seems to be closer to 1ms than 0ms. Hmm… interesting. And this is why we would use a more advance ping tester. What we would generally look for is a max ping of 0.300ms. AWS is around 0.2-0.4ms for ping tests. I sort of use that as a general rule especially when its Cloud or Hosted. There is no reason for a Cloud or Hosted environment to running at 1ms+.
For Example: If your creating a sales order, there is roughly 1400 SQL query requests done. If each request took 1ms that is 1400ms. Doesn’t seem that huge right? 1.4 seconds for a sales order? True, but you have to account for the business logic and the number or items or rows on the sales order. If it was 100 lines, now your looking at 1400*100=140,000ms. Now that’s 140 seconds which is about 2 and a half minutes.
It is actually very common (too common) to see pings in the 1ms to 2ms. You can see in the screenshot below (highlighted yellow) that each beginning and end for every SQL query request takes 1ms. We should be able to get at least 3-4 requests per 1ms. This directly relates to the pings between the servers.
In this screenshot below (highlighted green) you can see that we were able to process 2 SQL queries and a few 4gl calls within 1ms. The pings for this screenshot are at an average of 0.4ms with a max of 0.8ms. This is typically what we would want to see, calls and request within the same 1ms. (note: these screenshots are from engine traces... search for engine traces in sage city or sage knowledge-base for how to run them)
You can see a difference and this difference can have an impact on how “fast” Sage X3 can function. Its not always as simple as adjusting the network to have better pings, but the larger the ping ratio the more it will contribute to the performance. It never hurts to have the pings as fast as you can get them. On a side note, just because you’re on a 10gigabit network doesn’t not mean you get superhuman speeds with communication. Always test the pings.
If you want more information on same simple to use (and install) pinging applications, you can see the following sites below. In my examples today I used hrPing application which is the first link I have provided. I am sure there are others out there, but these are the two I have used, and I know they work well.