commit b5daedd44b0cb06b9a9df40d3288467b31d0b5e1 Author: Matthew Dillon <dil...@apollo.backplane.com> Date: Mon Aug 14 14:03:57 2017 -0700
test - Add various 900,000 process tests Add tests involving a large number of user processes. These tests default to creating 900,000 user processes and require a machine with at least 128GB of ram. The machine must be booted with kern.maxproc=4000000 in /boot/loader.conf. These test kernel resource management in the face of a large number of processes. scheduler, pipe kvm, concurrent fork and exec, general kernel handling of large numbers of processes, callout, tsleep, and wakeup. Also concurrent teardown for 900,000 processes when you hit ^C. * loop900k - Fork/exec's 900,000 processes which sleep 80 seconds and then go into an infinite loop. Tests the scheduler and kernel resource management. * pipe900k - Fork/exec's 900,000 processes which chain 900,000 pipe()s between them and runs an end-to-end test. Tests pipe chaining, kernel pipe resource creation and teardown, and kernel resource management. * sleep900k - Fork/exec's 900,000 processes which sleep 60 seconds and then go into an infinite loop with a 1/10 second sleep. Tests callout / tsleep / wakeup, and kernel resource management. Generally speaking these programs require about 80 seconds to stabilize once all 900,000 processes have forked. Fork speed will depend on numerous factors but should scale fairly well with cpu threads. Initial forking usually takes around 30 seconds. When you ^C, the machine may take upwards of 10 seconds for basic teardown, and will continue clean up additional memory and exit handling for the next 60 seconds or so. Machine should stay responsive through all stages in all tests except for a few seconds just after hitting ^C. Summary of changes: test/sysperf/loop900k.c | 81 ++++++++++++++++++++++++++++++++++ test/sysperf/pipe900k.c | 112 +++++++++++++++++++++++++++++++++++++++++++++++ test/sysperf/sleep900k.c | 81 ++++++++++++++++++++++++++++++++++ 3 files changed, 274 insertions(+) create mode 100644 test/sysperf/loop900k.c create mode 100644 test/sysperf/pipe900k.c create mode 100644 test/sysperf/sleep900k.c http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/b5daedd44b0cb06b9a9df40d3288467b31d0b5e1 -- DragonFly BSD source repository