stress-ng current contains the following methods to exercise the machine:
- CPU compute - just lots of sqrt() operations on pseudo-random values. One can also specify the % loading of the CPUs
- Cache thrashing, a naive cache read/write exerciser
- Drive stress by writing and removing many temporary files
- Process creation and termination, just lots of fork() + exit() calls
- I/O syncs, just forcing lots of sync() calls
- VM stress via mmap(), memory write and munmap()
- Pipe I/O, large pipe writes and reads that exercise pipe, copying and context switching
- Socket stressing, much like the pipe I/O test but using sockets
- Context switching between a pair of producer and consumer processes
The --metrics option dumps the number of operations performed by each stress method, aka "bogo ops", bogos because they are a rough and unscientific metric. One can specify how long to run a test either by test duration in sections or by bogo ops.
I've tried to make stress-ng compatible with the older stress tool, but note that it is not guaranteed to produce identical results as the common test methods between the two tools have been implemented differently.
Stress-ng has been a useful for helping me measure different power consuming loads. It is also useful with various thermald optimisation tweaks on one of my older machines.
For more information, consult the stress-ng manual page. Be warned, this tool can make your system get seriously busy and warm!