Linux STRESS command usage example
July 14, 2021 Leave a comment
Problem:
During high CPU usage in kernel space we have noticed brownouts on our database nodes. For finding the reason of the problem we wanted to reproduce the issue and somehow trigger high %sy usage on our nodes.
I have found stress
tool very useful and want to share my experience with you.
Solution:
1. Install stress
tool via yum
:
# yum install stress
2. Stress has several options to use:
[root@rac1 ~]# stress
`stress' imposes certain types of compute stress on your system
Usage: stress [OPTION [ARG]] ...
-?, --help show this help statement
--version show version statement
-v, --verbose be verbose
-q, --quiet be quiet
-n, --dry-run show what would have been done
-t, --timeout N timeout after N seconds
--backoff N wait factor of N microseconds before work starts
-c, --cpu N spawn N workers spinning on sqrt()
-i, --io N spawn N workers spinning on sync()
-m, --vm N spawn N workers spinning on malloc()/free()
--vm-bytes B malloc B bytes per vm worker (default is 256MB)
--vm-stride B touch a byte every B bytes (default is 4096)
--vm-hang N sleep N secs before free (default none, 0 is inf)
--vm-keep redirty memory instead of freeing and reallocating
-d, --hdd N spawn N workers spinning on write()/unlink()
--hdd-bytes B write B bytes per hdd worker (default is 1GB)
Example: stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s
Note: Numbers may be suffixed with s,m,h,d,y (time) or B,K,M,G (size).
To cause high %sy you need to use –vm option and find appropriate number of workers, in my case 50 workers were enough to cause an issue.
In the following example, stress will run 50 workers and timeout for the run will be 200s:
# stress --vm 50 --timeout 200s
From another terminal tab, run top
command to monitor %sy usage (81.2%) :

See short video demonstration below: