$ cd ../
CPU Scheduler Analyzer — bash

user@devops:~$ cat README.md

CPU Scheduler Analyzer

# Description

CPU Scheduler Analyzer is a comprehensive Linux CPU scheduler inspector that reads processor topology, frequency scaling, and process scheduling policies. Developed in C++23 with CLI11 for argument parsing, nlohmann_json for structured JSON output, and spdlog for logging. Reads from /proc/cpuinfo (model, cores, siblings, physical package), /sys/devices/system/cpu/cpu*/cpufreq/ (governor, current/min/max frequency), /proc/stat (per-core CPU usage), /proc/[pid]/stat (scheduling policy, priority, nice, state), and /sys/devices/system/node/ (NUMA topology with CPUs and memory). Includes per-category selection flags (--cpu, --freq, --usage, --sched, --numa), JSON output for script integration, policy legend mode (--legend), and configurable process count (--max-pids). Library/executable architecture with Catch2 unit tests.

# Key features

$ CPU topology: model, cores, siblings, physical package with tabular format

$ CPU frequency: current governor, min/max/current frequencies per core in MHz

$ CPU usage: /proc/stat per-core readings with user/nice/system/idle/iowait/irq/softirq/steal values

$ Process scheduling: policy (SCHED_OTHER/FIFO/RR/BATCH/IDLE/DEADLINE), priority, nice, state, CPU ticks

$ NUMA topology: nodes, associated CPUs, total and free memory with tabular format

$ JSON output (--json) for integration with monitoring scripts and tools

$ Per-category selection flags and scheduling policy legend

# Gallery

Desktop view
CPU Scheduler Analyzer - Desktop view
Mobile view
CPU Scheduler Analyzer - Mobile view

# Technologies used

C++23 CLI11 nlohmann_json spdlog Catch2