- memrate stressor to exercise and measure memory read/write throughput
- matrix yx option to swap order of matrix operations
- matrix stressor size can now be 8192 x 8192 in size
- radixsort stressor (using the BSD library radixsort) to exercise CPU and memory
- improved job script parsing and error reporting
- faster termination of rmap stressor (this was slow inside VMs)
- icache stressor now calls cacheflush()
- anonymous memory mappings are now private allowing hugepage madvise
- fcntl stressor exercises the 4.13 kernel F_GET_FILE_RW_HINT and F_SET_FILE_RW_HINT
- stream and vm stressors have new mdavise options
stress-ng --memrate 1 --memrate-bytes 1G \
--memrate-rd-mbs 1000 --memrate-wr-mbs 2000 -t 60
stress-ng: info: [22880] dispatching hogs: 1 memrate
stress-ng: info: [22881] stress-ng-memrate: write64: 1998.96 MB/sec
stress-ng: info: [22881] stress-ng-memrate: read64: 998.61 MB/sec
stress-ng: info: [22881] stress-ng-memrate: write32: 1999.68 MB/sec
stress-ng: info: [22881] stress-ng-memrate: read32: 998.80 MB/sec
stress-ng: info: [22881] stress-ng-memrate: write16: 1999.39 MB/sec
stress-ng: info: [22881] stress-ng-memrate: read16: 999.66 MB/sec
stress-ng: info: [22881] stress-ng-memrate: write8: 1841.04 MB/sec
stress-ng: info: [22881] stress-ng-memrate: read8: 999.94 MB/sec
stress-ng: info: [22880] successful run completed in 60.00s (1 min, 0.00 secs)
...the memrate stressor will attempt to limit the memory rates but due to scheduling jitter and other memory activity it may not be 100% accurate. By careful setting of the size of the memory being exercised with the --memrate-bytes option one can exercise the L1/L2/L3 caches and/or the entire memory.
By default, matrix stressor will perform matrix operations with optimal memory access to memory. The new --matrix-yx option will instead perform matrix operations in a y, x rather than an x, y matrix order, causing more cache stalls on larger matrices. This can be useful for exercising cache misses.
To complement the heapsort, mergesort and qsort memory/CPU exercising sort stressors I've added the BSD library radixsort stressor to exercise sorting of hundreds of thousands of small text strings.
Finally, while exercising various hugepage kernel configuration options I was inspired to make stress-ng mmap's to work better with hugepage madvise hints, so where possible all anonymous memory mappings are now private to allow hugepage madvise to work. The stream and vm stressors also have new madvise options to allow one to chose hugepage, nohugepage or normal hints.
No big changes as per normal, just small incremental improvements to this all purpose stress tool.