header background

LMAX Exchange blog - FX industry thought leadership

All the latest business and technology views and insights on the FX industry from LMAX Exchange management and staff

header background
  • Lightweight tracing with BCC

    Ever since I read some initial blogs posts about the upcoming eBPF tracing functionality in the 4.x Linux kernel, I have been looking for an excuse to get to grips with this technology.With a planned kernel upgrade in progress at LMAX, I now have acc…

  • Angler

    In my last couple of posts, I’ve been looking at how UDP network packets are received by the Linux kernel. While diving through the source code, it has been shown that there are a number of statistics available for monitoring receive errors, buffer ove…

  • Navigating the Linux kernel network stack: receive path

    BackgroundAt work we practice continuous integration in terms of performance testing alongside different stages of functional testing.In order to do this, we have a performance environment that fully replicates the hardware and software used in our pro…

  • Further notes on Hotspot compiler flags

    Continuing on from my last post, here we’ll be looking at flags used to control the C2 or server compiler of the Hotspot JVM.In writing this article, I discovered that the C2 compiler flags did not operate as I expected, and I’ve drawn some possibly in…

  • Observing JVM warm-up effects

    In this post, we will explore some of the various flags that can affect the operation of the JVM’s JIT compiler.
    Anything demonstrated in this post should come with a public health warning – these options are explored for reference only, and modifying them without being able to observe and reason about their effects should be avoided.
    You have been warned.

  • Qcon London Talks

    LMAX Exchange developers are giving two talks at QCon London this year.Sam Adams, our Head of Software, will be discussing the awesome LMAX Continuous Delivery process in his talk “CD at LMAX: Testing into production and back again”.I will be talking a…

  • Timing is everything

    Monitoring of various metrics is a large part of ensuring that our systems are behaving in the way that we expect. For low-latency systems in particular, we need to be able to develop an understanding of where in the system any latency spikes are occur…

  • Journalling Revisited

    A few months ago, I wrote about how we had improved our journalling write latency at LMAX by upgrading our kernel and file-system. As a follow up to some discussion on write techniques, I then explored the difference between a seek/write and positional…

  • Reducing system jitter

    For the next instalment of this series on low-latency tuning at LMAX Exchange, I’m going to talk about reducing jitter introduced by the operating system.Our applications typically execute many threads, running within a JVM, which in turns runs atop th…

  • JVM guaranteed safepoints

    I have been working on a small tool to measure the effects of system jitter within a JVM; it is a very simple app that measures inter-thread latencies. The tool’s primary purpose is to demonstrate the use of linux performance tools such as perf_events …

Previous Posts

Sign up for Global FX Insights, the daily market commentary from LMAX Exchange

Your information will not be distributed or shared with third parties