Stop Bottlenecking Your Storage: The Simple Guide to NVMe/TCP Tuning

Joel Gonzalez Principal Customer Success Engineer at Lightbits Labs
Joel Gonzalez
Principal Customer Success Engineer
June 18, 2026

Imagine buying a cutting-edge sports car, only to be forced to drive it in bumper-to-bumper traffic every day. Frustrating, right?

That’s exactly what happens when you deploy blazing-fast NVMe storage over a standard network without tuning your operating system. Your drives might be ready to deliver millions of operations per second, but if your network settings aren’t optimized, you are artificially choking your own performance.

Fortunately, tuning your environment for NVMe® over TCP (NVMe/TCP) doesn’t have to be a dark art. Let’s break down the core optimizations needed for both your clients and your target servers so your data can finally travel at top speed.

The Core Concept: Clearing the Highway

Think of your network as a major highway and your data packets as delivery trucks. If your toll booths (network interfaces) are understaffed and your receiving warehouses (memory buffers) are too small, traffic instantly backs up.

By applying a tuned deployment profile, we are essentially widening the highway, automating the toll booths, and expanding the warehouse docks. We achieve this by optimizing the Initiator (Client) and the Target (Lightbits server).

Note: Before starting, ensure the tuned daemon is installed and enabled on all clients and targets.

Part 1: Prepping the Client (The Initiator)

The client side is all about ensuring your operating system isn’t doing unnecessary heavy lifting. Here are the key optimizations happening behind the scenes when you set up the client profile:

  • Eliminate Power-Saving Lag: We configure the system to maintain full voltage to all PCIe slots, ensuring power-saving policies don’t throttle performance.
  • Expand the Receiving Bays: We expand system network read and write buffers to a massive 32MB to handle surges of incoming data.
  • Manage Traffic Surges: We increase the network device backlog to seamlessly manage unexpected traffic spikes without dropping data packets.

Part 2: Prepping the Server (The Lightbits Target)

Your target server requires a slightly different approach. If you are using Lightbits, the target software actually manages zero-copy offloading under the hood, meaning we can intentionally omit the offloading flag used on the client.

Instead, the server optimization profile focuses on accommodating massive, clustered data routing:

  • Massive Buffer Ceilings: Since the server acts as the central hub, we expand socket and TCP memory buffers up to 128MB.
  • Maximize Queues: We vastly expand device queues and connection backlogs to process tens of thousands of concurrent connections.
  • Relax Reverse Path Filtering: This is critical for target clusters; we relax path filtering to successfully allow clustered, asymmetric routing without the system blocking the traffic.

Actionable Takeaways

You don’t need to manually configure these settings one by one. You can completely automate this process using Linux’s tuned profiles.

Your next steps:

  1. Create a profile directory for your client and server.
  2. Generate the tuned.conf files with the optimized parameters for both environments.
  3. Activate the profiles using the tuned-adm profile command.

By implementing these tuned profiles, you remove the artificial software bottlenecks limiting your network, allowing your NVMe storage to run exactly as fast as it was engineered to.

Complete Tuned Deployment Guide for NVMe/TCP

Prerequisites for all NVMe/TCP clients and targets.

  • Ensure the tuned daemon is installed and enabled: sudo systemctl enable –now tuned

Part 1: Configure the Initiator (Client)

The Client side requires the explicit nvme-tcp-ddp on flag so the OS knows to offload the packet cracking to the NIC.

Step 1: Create the profile directory

Configure the Initiator (Client) for NVMe over TCP

Step 2: Generate the Client tuned.conf file

Copy and paste this block into your terminal:

Generate the Client tuned.conf file for NVMe over TCP implementation

Step 3: Activate the Client Profile

Activate the Client Profile for NVMe over TCP implementation

Part 2: Configure the Target (Lightbits Target server)

The Target profile includes the relaxed Reverse Path filtering required for clustered asymmetric routing. It intentionally omits the nvme-tcp-ddp flag, as the Lightbits target software manages zero-copy offloading under the hood.

Step 1: Create the profile directory

Configure the Target (Lightbits Target server)

Step 2: Generate the Target tuned.conf file

Copy and paste this block into your terminal:

Generate the Target tuned.conf file

Step 3: Activate the Target Profile

Activate the Target Profile
About the writer
Joel Gonzalez Principal Customer Success Engineer at Lightbits Labs
Joel Gonzalez
Principal Customer Success Engineer