New stressors include:
- ptrace - traces a child process performing many simple system calls
- sigsuspend - sends SIGUSR1 signals to multiple children waiting on sigsuspend(2)
- sigpending - checks if SIGUSR1 signals are pending on a process that alternatively masks and umasks this signal
- mmapfork - rapidly spawn multiple child processes that try to allocate a chunk of free memory (and try to avoid swapping). Each process then uses madvise(2) to hints before and after the memory is memset and then the child dies.
- quota - exercise various quotactl(2) Q_GET* commands
- sockpair - client/server socket I/O using socket pair and random sized I/O
- getrandom - exercise the new getrandom(2) system call
- numa - migrates a memory mapped buffer and processes around NUMA modes, exercising migrate_pages(2), mbind(2) and move_pages(2).
- fcntl - exercises the fcntl(2) commands F_DUP, FDF_DUP, FD_CLOEXEC, F_GETFD, F_SETFD, F_GETFL, F_SETFL, F_GETOWN, F_SETOWN, F_GETOWN_EX, F_SETOWN_EX, F_GETSIG and F_SETSIG
- wcs - exercises libc wide character string functions (thanks to Christian Ehrhardt for this contribution).
- --yaml option to dump stats from --metrics, --perf, -tz into a YAML structured log.
- made the --aggressive option more aggressive by forcing more CPU migrations and context switches.
... where x86_pkg_temp is the CPU package temperature and acpitz are the two ACPI thermal zones on my desktop.
Stress-ng is being used to run stress test various kernels across a range of Ubuntu devices, such as phone, desktop and server. Thrashing a system with hundreds of processes and a lot of low memory pressure is just one method of checking that kernel and daemons can handle a mix of demanding work loads.
stress-ng 0.04.12 is now available in Ubuntu Wily. See the stress-ng project page for more details.