Lil Rust project to help compare network latencies between tuned and non-tuned servers

Overview

kernel-tuning-base

Lil Rust project to aid in the objective of tuning the kernel's network stack

Setup:

  1. Run on the control server
  2. On the server being tuned, change the kernel and run it
  3. Move their respective results (found in "latency") to a computer with GUI support under the "tuned_control" folder, saving the results in their respective folders.
  4. Run python3 analyze.py to compare their results. Change the "threshold" variable to cut off latencies if you'd like (helps to zoom in and out)
  5. Iterate #2 after deleting the results in tuned's "latency" folder

Experiments:

  • Slow traffic, w/ no data
  • Slow traffic, w/ data
  • Slow traffic, w/ large data
  • Burst traffic, w/ no data
  • Burst traffic, w/ data
  • Burst traffic, w/ large data
  • Consistent traffic, w/ no data
  • Consistent traffic, w/ data
  • Consistent traffic, w/ large data

Push Frequency:

  • Slow = 50ms (sample: 2,000x)
  • Burst = 50us (sample: 15,000x)
  • Consistent = 15ms (sample: 6,000x)
  • Sample size was chosen to be dynamic based on the push frequency to limit how long the experiment runs

Message Sizes:

  • No Data: 0 bytes
  • w/ Data: 32 bytes
  • Large Data: 256 bytes

Notes

  • Subsequent runs will not delete data in the latency folder. Meaning, feel free to stack up sample sizes by running multiple times
  • Burst w/ LargeData is likely to show nil improvement since the receiving side takes too long to process the request before receiving another update. It's outside my specific scope so I kept the infra how it is but if anyone would like to optimize it, please feel free! Can DM me on twitter / x @Dub0x3A too if you'd like

Disclaimer:

Best practices of code were not implemented here so pls don't use this to gain inspiration for your own projects. This is a simple application that aims to capture the relative change in latency between a tuned and non-tuned kernel, as such, the code was not optimized as each server will run an identical copy. The absolute latency values are not important, but the relative change between the two is.

You might also like...
A RISC-V and unix-like operating system developed just for fun.

Orca 虎鲸 A RISC-V and unix-like operating system developed just for fun. Schedule [*] bootloader (use RustSBI-qemu) [ ] linker & stack [ ] memory alloc

Cross-architecture utilities for temporarily disabling interrupts and signals.

interrupts Cross-architecture utilities for temporarily disabling interrupts and signals. Use disable to disable interrupts with a guard: // interrupt

A comparison of operating systems written in Rust

Rust OS comparison A comparison of operating systems written in Rust. There are several open source operating systems written in Rust. Most of them ar

A hobby operating system, in Rust

intermezzOS: kernel intermezzOS is a hobby operating system. This repository is for its kernel. See the website for more. License This project is dual

A Rust version of the Weenix OS

Reenix This is the start of a unix like operating system written in Rust. It is based on the Weenix Operating system written for Brown's CS167/9. At t

A tiny 32 bit kernel written in Rust
A tiny 32 bit kernel written in Rust

rustboot A tiny 32 bit kernel written in Rust. I was inspired to download Rust and try to do this after seeing zero.rs - a stub that lets Rust program

A language-based OS to run Rust on bare metal

RustOS A simple, language-based OS. Current features: Simple VGA for seeing output Some Rust libraries (core, alloc, collections) already in Working (

A language-based OS to run Rust on bare metal

RustOS A simple, language-based OS. Current features: Simple VGA for seeing output Some Rust libraries (core, alloc, collections) already in Working (

Experimental kernel for embedded devices written in Rust

bkernel is an experimental kernel for embedded devices written in Rust. I'm mostly trying out Rust now to see how it applies to kernel development. Pr

Owner
Crypto HFT | Journey to sub micro tick-to-trade
null
This project is based on code from freertos.rs and some additions to simplify the usage of FreeRTOS in embedded applications written in Rust

FreeRTOS-rust This project is based on code from freertos.rs and some additions to simplify the usage of FreeRTOS in embedded applications written in

Lobaro 196 Jan 4, 2023
GZTime's GGOS for OS course project.

GZTime's GG OS OS course project. The basic development of this course operating system has been completed. Using JetBrainsMono as console font. Usage

GZTime 15 Dec 30, 2022
RiiR project to find available slots for SOS Médecins Oise

SOS Médecins Oise available slots Update 2022-12-28 I've found that all slots for the day are dumped at 6am, 9am and 11am This is a small RiiR project

Pierre Tondereau 3 Jan 10, 2023
Distrod is a meta-distro for WSL 2 which runs Systemd as init process. You can run Ubuntu, Arch, and et.c with systemd in a minute. Distrod also has built-in auto-start feature on Windows startup and port forwarding abiltiy.

Distrod - WSL2 Distros with Systemd! Distrod is a systemd-based meta-distro for WSL2 that allows you to install Ubuntu, Arch Linux, Gentoo and many ot

Takaya Saeki 1.6k Jan 9, 2023
Open Source Rust kernel; Runs WASM and WASI as lightweight containers.

?? etheryal Kernel etheryal kernel is an Open Source capability-based Kernel written in the Rust programming language. The kernel allows implementing

null 32 Dec 4, 2022
🍒 Small, simple, and fast kernel written in Rust. 🌸

?? Small, simple, and fast kernel written in Rust. ??

Cherry Developers 5 May 20, 2022
An UEFI application that unlocks a SED and starts an OS from it. Written in Rust

opal-uefi-greeter This is an UEFI application written in Rust that unlocks a SED and then launches another UEFI application from the unlocked drive -

Anton Bulakh 26 Jan 4, 2023
Writing an OS in Rust, To Study Operating System and Computer System

Hun Os Writing an OS in Rust, To Study Operating System and Computer System Reference Os Written In Rust https://github.com/seonghun-dev/blog_os https

Jung Seonghun 2 Dec 15, 2022
The official kernel for Popcorn OS, and operating system designed for handheld devices.

About Popkern is the kernel for Popcorn OS, an operating system designed for handheld devices. As such, the kernel is (to be) optimised at all levels

Team Scena 3 Sep 19, 2021
suidsnoop is a tool based on eBPF LSM programs that logs whenever a suid binary is executed and implements custom allow/deny lists.

suidsnoop Log suid binaries and enforce per-uid suid policy. suidsnoop is a tool for logging whenever a suid binary is executed on your system and opt

William Findlay 11 Dec 22, 2022