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 - [1755/0] 0x1c6 NAS OS | Never use a USB flash drive as a OS boot pool | FreeNAS DIY Hardware ↗


Trending Video:
Watch on Youtube - [1671/0] 157 Wireshark - Investigate TCP-Connections with Wireshark Flow Graph feature ↗



Recommended Video:
Watch on Youtube - [866/0] Linux Kernel netdevice data-structure video series - part2 - Code-walk, Example ↗