For the most time-critical workloads, "close enough" isn't good enough. For instance, in the highly competitive financial services marketplace, milliseconds make the difference between a trade and a lost customer. In these environments, consistently fast response times are a huge competitive advantage.
MRG Realtime provides the highest levels of predictability for consistent low-latency response times to meet the needs of time sensitive workloads. For most customers, a properly tuned standard Red Hat Enterprise Linux system provides acceptable levels of determinism.
For applications with extremely demanding latency requirements, MRG Realtime provides new levels of determinism by optimizing lengthy kernel codepaths to ensure that they do not become bottlenecks. This allows for better prioritization of applications, resulting in consistent, predictable response times for high-priority applications.
Highly deterministic performance
MRG Realtime dramatically increases the determinism of Red Hat Enterprise Linux. By providing a replacement kernel for Red Hat Enterprise Linux 5, MRG Realtime brings new scheduling and performance gains and provides full preemption so that it can respond to any event within 8 microseconds. For applications that cannot tolerate significant deviations in performance, MRG Realtime provides vastly enhanced determinism.
MRG Realtime includes support for timers with nanosecond accuracy. Optimized gettimeofday(): Many applications frequently call gettimeofday() operations for things like time stamping in log files. MRG Realtime includes an optimized gettimeofday() implementation that does not incur a context switch, resulting in significantly improved performance.
Full application compatibility with standard Red Hat Enterprise Linux
MRG Realtime does not modify anything in the user space of Red Hat Enterprise Linux. As such, it preserves full compatibility with applications certified for Red Hat Enterprise Linux-any application that runs on Red Hat Enterprise Linux will also run on Red Hat Enterprise Linux with a MRG Realtime kernel, without any modification or recompilation.
Low latency interrupts handling
The lengthy, and non-interruptible, codepaths inherent in device interrupt handlers are a primary source of system non-determinism. MRG Realtime addresses this by breaking up these long-running kernel codepaths into separately schedulable portions. This ensures that lower priority event handling does not block priority realtime processing.
Enhanced priority handling
MRG Realtime includes more fine-grained tuning control. For example it is possible to schedule network processing at higher priority than disk and storage processing. Additionally, there are scheduler enhancements to further guarantee that higher priority processes get uninterrupted service.
Priority inversion avoidance
MRG Realtime, when used with the glib runtime library, provides priority inheritance. This is a mechanism to ensure that lower priority processes do not block higher priority processes which are contending for shared resources. A scalable priority inheritance algorithm is a requirement for real-time java.
All real-time applications inherently require highly accurate timing events. This makes it possible to have accurately time stamped messages, and event timeouts that occur precisely as scheduled. Conventional Linux has had its timing accuracy governed by a periodic system interrupt, which results in imprecise timing. In contrast, MRG Realtime uses hardware based event timers, resulting in substantially more accurate and predictable timing.
The latency tracer is a peak detector identifies the longest running, non-preemptable kernel codepaths, which is invaluable when differentiating whether non-deterministic response times are occurring in kernel vs application space.
Tuna is a tool for system tuning. A system running MRG Realtime must be properly tuned to provide the best deterministic performance. Tuna provides a graphical interface for tuning your system on-the-fly as you put it under load, making the process of finding an optimal set of tuning configurations much faster and easier.