git: test - Add various 900,000 process tests
dillon at crater.dragonflybsd.org
Mon Aug 14 14:13:27 PDT 2017
Author: Matthew Dillon <dillon at 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
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
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
DragonFly BSD source repository
More information about the Commits