stress-ng stress-ng will stress test a computer system in various selectable ways. It was designed to exercise various physical subsystems of a computer as well as the various operating system kernel interfaces. Stress-ng features: * over 220 stress tests * over 50 CPU specific stress tests that exercise floating point, integer, bit manipulation and control flow * over 20 virtual memory stress tests * portable: builds on Linux, Solaris, *BSD, Minix, Android, MacOS X, Debian Hurd, Haiku, Windows Subsystem for Linux and SunOs/Dilos with gcc, clang, tcc and pcc. stress-ng was originally intended to make a machine work hard and trip hardware issues such as thermal overruns as well as operating system bugs that only occur when a system is being thrashed hard. Use stress-ng with caution as some of the tests can make a system run hot on poorly designed hardware and also can cause excessive system thrashing which may be difficult to stop. stress-ng can also measure test throughput rates; this can be useful to observe performance changes across different operating system releases or types of hardware. However, it has never been intended to be used as a precise benchmark test suite, so do NOT use it in this manner. Running stress-ng with root privileges will adjust out of memory settings on Linux systems to make the stressors unkillable in low memory situations, so use this judiciously. With the appropriate privilege, stress-ng can allow the ionice class and ionice levels to be adjusted, again, this should be used with care. To build, the following libraries will ensure a fully functional stress-ng build Debian, Ubuntu: * libaio-dev * libapparmor-dev * libattr1-dev * libbsd-dev * libcap-dev * libgcrypt11-dev * libipsec-mb-dev * libkeyutils-dev * libsctp-dev * zlib1g-dev RHEL, Fedora, Centos: * libaio-devel * libattr-devel * libbsd-devel * libcap-devel * libgcrypt-devel * keyutils-libs * libsctp-devel * zlib-devel NOTE: the build will try to detect build depedencies and will build an image with functionality disabled if the support libraries are not installed. To build on BSD systems, one requires gcc and GNU make: CC=gcc gmake clean CC=gcc gmake To build on OS X systems, just use: make clean make To build on MINIX, gmake and clang are required: CC=clang gmake clean CC=clang gmake To build on SunOS, one requires GCC and GNU make, build using: CC=gcc gmake clean CC=gcc gmake To build on Dilos, one requires GCC and GNU make, build using: CC=gcc gmake clean CC=gcc gmake To build on Haiku Alpha 4: make clean make To build a static image (example, for Android), use: make clean STATIC=1 make To build with full warnings enabled: make clean PEDANTIC=1 make To build with the Tiny C compiler: make clean CC=tcc make For more information, see: https://kernel.ubuntu.com/~cking/stress-ng/ I am keen to add to the stress-ng project page any citations to research or projects that use stress-ng. I also appreciate information concerning kernel bugs or performance regressions found with stress-ng.