HOMECOURSESSTUDENTSDONATIONSVIDEOSEVENTSTUTORIALSLINKSNEWSCONTACT


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

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 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 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 this episode my entire kernel module sample code, make file, clean script HERE.


Featured Video:



Suggested Topics:


☆ Tutorials :: Arduino UNO Projects ↗


☆ Tutorials :: Network Software Development ↗


☆ Tutorials :: Research and Projects ↗


☆ Tutorials :: Linux (user-space), Systems Architecture ↗


☆ Tutorials :: Linux Kernel Software Development ↗


☆ Tutorials :: Linux Kernel Internals (PDFs) - by Ramin Farajpour ↗


☆ Tutorials :: Software Development (Programming) Tools ↗


☆ Tutorials :: Embedded Projects ↗

Join The Linux Channel :: Facebook Group ↗

Visit The Linux Channel :: on Youtube ↗


Join a course:

💎 Linux, Kernel, Networking and Device Drivers: PDF Brochure
💎 PhD or equivalent (or Post Doctoral) looking for assistance: Details
💎 ... or unlimited life-time mentorship: Details


💗 Help shape the future: Sponsor/Donate


Recommended Topics:
Featured Video:
Watch on Youtube - [8054//0] 352 Linux user-space - Shared Memory IPC - Live Demo and Example ↗

Roadmap - How to become Linux Kernel Developer - Device Drivers Programmer and a Systems Software Expert ↗
Thursday' 09-Jul-2020
Many viewers and even sometimes my students ask me how I can become a kernel programmer or just device driver developer and so on. So I shot this video (and an add-on video) where I summarized steps and a roadmap to become a full-fledged Linux Kernel Developer.

Compiling a C Compiler with a C Compilter | Compile gcc with gcc ↗
Thursday' 09-Jul-2020
The fundamental aspect of a programming language compiler is to translate code written from language to other. But most commonly compilers will compile code written in high-level human friendly language such as C, C++, Java, etc. to native CPU architecture specific (machine understandable) binary code which is nothing but sequence of CPU instructions. Hence if we see that way we should able to compile gcc Compiler source code with a gcc Compiler binary.

AT&T Archives: The UNIX Operating System ↗
Thursday' 09-Jul-2020

CEO, CTO Talk ↗
Thursday' 09-Jul-2020

Arduino UNO - RO Water Purifier Controller ↗
Thursday' 09-Jul-2020
Here is a Youtube VLOG of my DIY RO Water Purifier Controller done via Arduino UNO. I want the Arduino UNO to control the RO pump, so that it pumps for a specific duration and stops automatically. This is done via Opto-isolated 4 Channel 5V 10A Relay Board meant for Arduino UNO, Raspberry Pi or similar SoC boards which offers GPIO pins. To this relay I have connected the RO water purifier booster pump which works at 24V DC connected via 220V AC to 24V DC power supply adaptar. I have also connected a small active 5V buzzer to notify the progress and completion as it fills the tank/canister.

Programming Language Performance and Overheads ↗
Thursday' 09-Jul-2020
A detailed Youtube video series of various programming language performance and overheads - a big picture

mmap() munmap() - map or unmap files or devices into memory ↗
Thursday' 09-Jul-2020

Telnet installation and remote access ↗
Thursday' 09-Jul-2020

Nmap Network Scanning ↗
Thursday' 09-Jul-2020

Apache web-server installation ↗
Thursday' 09-Jul-2020


Trending Video:
Watch on Youtube - [824//0] 346 C code to check valid IP Address (IPv4) - Live Demo and Example ↗

Nmap Network Scanning ↗
Thursday' 09-Jul-2020



Recommended Video:
Watch on Youtube - [8198//0] 0x16d NAS OS - FreeNAS vs UnRAID vs Rockstor vs OpenMediaVault vs Ubuntu Server and my DIY NAS bare-metal build ↗