The Linux Channel

TUTORIALS :: Research Socket overhead in Linux vs Message Queues and benchmarking

Written by: Kiran Kankipati - Published: 21-Jun-2017


The objective of this research is to assess the system performance overheads of user-space sockets (in this case UDP sockets) vs Message queues. So that this can be used as a basis to access a server/device potential as a Linux based network appliance (can be a Firewall device, VPN, WAN Optimization, and so on). Kindly watch my video below in order to participate in this research.


Download/watch this video - 226 Research Socket overhead in Linux vs Message Queues and benchmarking
[+] watch in dailymotion

Download this episode my entire kernel module sample code, make file, clean script HERE.

Here is my next follow-up video where I did more extensive benchmarks with respect to each specific time interval (in this case every second) in three different devices an Intel 6-core desktop, an Intel dual-core Dell laptop and an Intel quad-core HP laptop. Here are the detailed single instance of UDP socket client-server performance benchmarks:

Device/CPU/ServerBandwidth
Intel Core i7-5820K desktop32 Gbps
Intel Core i7-4700MQ - HP Envy 15-J111TX Laptop30 Gbps - 20 Gbps (fluctuating)
Intel Core i7-4500U - Dell 15R 5537 Laptop28 Gbps


Download/watch this video - 227 Research Socket overhead in Linux vs Message Queues - followup Episode2
[+] watch in dailymotion

Download this episode my entire kernel module sample code, make file, clean script HERE.

Here is my final conclusion/follow-up video where I compared the Episode-2 benchmarking code with new Message Queues benchmarking code. Unlike my other previous episode(s), in this case I tested with single Tx (UDP-Client/ MessageQ-Send) and Rx (UDP-Server/ MessageQ-Receive) and benchmarked my results. Here is the architecture diagram which represents the overall idea/objective of the same.

I tested the same with my Intel Core i7-5820K desktop, and found UDP Socket framework is performing around 32Gbps (with MAXBUF of 10240 per transmit buffer size) while the Message Queue framework is performing around 56Gbps (with MAXBUF of 8024 per transmit buffer size). With this we can visualize live the overall % of socket overhead vs a much simpler IPC like Message Queue in a single host/server/device. Here is my live detailed demo video of the same.


Download/watch this video - 229 Research Socket overhead in Linux vs Message Queues - followup Episode3
[+] watch in dailymotion

Download this episode my entire kernel module sample code, make file, clean script HERE.



Suggested Topics:

Network Software Development:

Research Projects:
Research Socket overhead in Linux vs Message Queues and benchmarking
21-Jun-2017

Linux (user-space), Systems Architecture:
Dynamic linking without STDLIB in Linux user-space C programming
05-May-2017
Linux user-space Atomic Operations via GCC Atomic builtins
22-Mar-2017
A Linux system call in C without a standard library
10-Mar-2017

Linux Kernel Software Development:
Linux Networking Stack :: RFS: Receive Flow Steering
09-Dec-2017
How to submit your Linux Kernel Patch
07-Feb-2017

Embedded Projects:
Using a GPS Sensor
28-Jul-2017
GPS Geo-tracking system using LinkIt ONE
11-Jan-2017

 

Recommended Topics:

Join a class (course):


JOBS :: Linux Device Drivers - Senior Embedded Developers:


Video series :: Linux ioctl() API interface:


TUTORIALS :: UDP sample socket code for Systems and Network software developers:


Network Packet Processing Hardware Offload:



The Linux Channel - v6.26 :: Updated: 11-Dec-2017 :: © 2017 :: Author: Kiran Kankipati
Your IP: 54.226.113.250 :: Browser: CCBot/2.0 (http://commoncrawl.org/faq/)