Skip to content
James Bensley edited this page Apr 29, 2017 · 4 revisions

Introduction

What this Wiki is not about?

This Wiki is not a definitive guide on how to write high throughput or low latency network based applications for Linux. For more information on that subject the following links may be of use:

https://www.kernel.org/doc/Documentation/networking/packet_mmap.txt

https://sites.google.com/site/packetmmap/

http://www.linuxjournal.com/article/6345?page=0,1

This Wiki is not a definitive guide on tuning a Linux host for high speed or low latency packet packet throughput. For information on that subject the following links may be of use:

https://fasterdata.es.net/host-tuning/

https://blog.packagecloud.io/eng/2016/06/22/monitoring-tuning-linux-networking-stack-receiving-data/

https://blog.packagecloud.io/eng/2016/10/11/monitoring-tuning-linux-networking-stack-receiving-data-illustrated/

What is this Wiki about?

This Wiki is a quick reference/cheat sheet regarding the low level tuning of a Linux host and network oriented applications written in C for high speed or low latency throughput. It does not intend to explain in detail any of the concepts involved, it is expect that the reader will already have an understanding and use this document as a reference. The focus is on low level (from the perspective of user-land applications) performance, no TCP/UDP or IP Linux parameters are tuned or tested for example. It also intends to uses the multi-threaded version of Etherate to show and test the ideas presented throughout.