workgen(1)
β¨ NAME β¨
workgen β an rt-app wrapper that simulates a real-time periodic load π―
(it's workgen(1), from the General Commands Manual, bestie β yes we're doing the whole manpage vibe π
)
πΈ SYNOPSIS πΈ
workgen <config-file>
π INTRODUCTION π
okay so workgen is a test application that literally starts multiple periodic threads to simulate a real-time periodic load. it's giving "workload simulator" and honestly it ate π₯
it's a wrapper for the rt-app program β so it sanitises and preprocesses the JSON files that describe the workload, and then it runs rt-app. preprocessing queen π
the code is currently maintained on GitHub at:
https://github.com/scheduler-tools/rt-app
π¦ REQUIREMENTS π¦
workgen runs on GNU/Linux. it needs python and json-c to run, plus a 3.14 or later linux kernel that supports the SCHED_DEADLINE policy β unless it was built without the optional libdl. so yeah, check ur kernel bestie, no cap π
π USAGE π
workgen <config_file>
where config file is a full or relative path to a JSON file β or "-" (without quotes, ok, literally just the dash) to read JSON data straight from stdin π«Ά
workgen will parse, check and update the JSON-like file so it strictly matches the JSON grammar, and then it calls rt-app to execute the sequence described in it. glow-up for ur config file, fr fr β¨
workgen enables some freedom compared to stricter json grammar rules. for example:
- You don't have to ensure uniqueness of key in json object β workgen will check the file and ensure that each key is unique by appending an index if necessary. this is so useful when you describe a sequence made of similar events, e.g. a sequence of multiple sleep and run events. like yes, duplicate keys, we don't know her π
- Some values can be omitted and workgen will add them when it parses the file before starting the use case. it's giving "I'll fill in the blanks, don't even worry about it" π
π See /usr/share/doc/rt-app/tutorial.txt for details of the JSON config file format. read it, bestie, it's the lore π
π SEE ALSO π
rt-app <config_file>can be used directly β like, no wrapper, just raw. do with that what you will π- The python merge script (
/usr/share/doc/rt-app/examples/merge.py) can be used to combine JSON snippets into the config file. e.g:
./merge.py -o combined.json global.json resources.json thread0.json thread1.json thread2.json thread3.json
merge queen, she's combining everything, iconic π§
π FILES π
Numerous example workloads and building blocks can be found in:
/usr/share/doc/rt-app/examples/*.json
go look, there's so much inspo in there, you're gonna be obsessed β
okay that's the whole page, ily, go simulate some periodic load π
this lil masterpiece is from rt-app, dated 2016-01-25 β and it's the workgen(1) page, periodt. π«Άβ¨
π¦ where this page comes from
- debian bookworm: rt-app 1.0-1 Β· GPL-2.0-only
- debian trixie: rt-app 1.0-1.2 Β· GPL-2.0-only
- ubuntu jammy: rt-app 1.0-1 Β· GPL-2.0-only
- ubuntu noble: rt-app 1.0-1 Β· GPL-2.0-only
- ubuntu questing: rt-app 1.0-1.2
- ubuntu resolute: rt-app 1.0-1.2build1 Β· GPL-2.0-only
- ubuntu stonking: rt-app 1.0-1.2build1 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms