Updated: 03 August 2023
Please note this document and all other documents it links to are living documents so will evolve over time as new things are discovered, new functionality is provided, best practises adjusted and/or when I get time to add content; so please make sure you come back and visit this source document often.
Troubleshooting network performance can often be tricky and often need network specialists to be involved. This document tries to provide some general guidance and the basic checks and tests that can sensibly be performed.
For any investigation it is important to understand the network. You should obtain a topological network diagram that:
- Indicates network devices such as Load Balancers, Proxies and firewalls where appropriate
- Speed/type of network links (Gigabit, Fiber, etc.)
- Any network compression/acceleration being used
- Any Intrusion Detection and Prevention Systems (IDPS) implemented in the enterprise
Whilst the default settings are mostly acceptable, there can be cases where you need to check or change the TCP settings, if evidence suggests this would be beneficial.
You can use the script “..\InvestigationScripts\PowerShell\Network\mzCheckNetworkSettingsRun.cmd” to gather data about any Sage X3 server TCP settings.
Sage recommended values are documented in KB article “Microsoft Windows timeout session allocation (KeepAlive) configuration guidelines for Sage X3 Environments”
Enable Receive Side Scaling (RSS)
Where available, consider enabling RSS. This should give a small improvement in multi-CPU systems. Documented at https://learn.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-receive-side-scaling
Latency is critical because of the extensive use of cursors in Sage X3. Sage recommends the Application server, additional Process servers and Database server should be using minimum of 10Gbps network and on the same switch if possible, or same sub-net. In this case the expected latency should be < 0.400 milliseconds (ms)
In a virtualized environment, try to configure for minimal latency at every layer. e.g. putting VMs on same physical host (affinity)
The simplest way to check latency is to use the “ping” command in both directions between the Sage X3 Apps server and the database server. You can use the “..\InvestigationScripts\PowerShell\ClientPC\mzPing.cmd” as a guide. You could use alternative (free) 3rd party tools, for example PSPing or hrPING which may give additional information over the standard ping command.