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
# Technologies used