Many organizations, in the financial industry where high-frequency trading occurs care about reducing the time it takes to execute single transactions. In these cases, the focus must be on reducing system latency (typically measured in nanoseconds, microseconds, or milliseconds) rather than increasing throughput. Network latency improvements are also partially tied to system latency improvements, so tuning for these environments is similar. To reduce system latency, the entire solution must be taken into consideration:
- The server, including processor and memory architecture and BIOS tuning
- The network stack—especially network driver tunings such as coalesce settings
- Operating system (OS) selection and tuning (e.g., kernel/registry settings and binding/pinning interrupts of high-I/O devices)
- Application tuning (e.g., affinitizing processes/threads to local memory in a Non-Uniform Memory Access, or NUMA, environment)
When we provide a low-latency server solution we use guidelines during configuration which include:
- Use the fastest motherboard and chip-set architecture
- Choose the fastest processor frequency and bridge
- Balance of memory speed versus memory capacity
- Choose appropriate memory configuration for the architecture. It is important to configure memory properly because the fastest memory speed will only work with specific memory banks are used on each motherboard.
- Use the fastest hard disk configuration for the trading application type. Depending on the trading application, different disk types, rpm and RAID configuration will be necessary.
- Choose the fastest network speed which will eliminate network speed conversion latency
- Update to the latest hardware bios and firmware to take advantage of enhancements
- Tune the system bios to eliminate all overhead that will slow down the overall system which will affect the trading software