Я хочу использовать stress-ng для имитации рабочей нагрузки. Конечная цель состоит в том, чтобы иметь возможность загружать систему разными процентами разных задач. Например, 50% ЦП, 25% ввода-вывода и т. д.
Итак, я начал с этой команды...
sudo stress-ng -v --taskset 1 --sched fifo --sched-prio 80 --perf --all 2 --ioport 1 --ioport-ops 1000000 --matrix 1 -t 60s
stress-ng: debug: [2077] 2 processors online, 2 processors configured
stress-ng: debug: [2077] sched: setting scheduler class 'fifo', priority 80
stress-ng: info: [2077] dispatching hogs: 1 ioport, 1 matrix
stress-ng: debug: [2077] cache allocate: default cache size: 4096K
stress-ng: debug: [2077] starting stressors
stress-ng: debug: [2077] 2 stressors spawned
stress-ng: debug: [2078] stress-ng-ioport: started [2078] (instance 0)
stress-ng: debug: [2079] stress-ng-matrix: started [2079] (instance 0)
Но когда я отслеживал процессы 2078 и 2079, я заметил, что только процесс 2078 нагружает ЦП. Изображение 1
Когда я поменял местами два стрессора...
sudo stress-ng -v --taskset 1 --sched fifo --sched-prio 80 --perf --all 2 --matrix 1 --ioport 1 --ioport-ops 1000000 -t 60s
stress-ng: debug: [2084] 2 processors online, 2 processors configured
stress-ng: debug: [2084] sched: setting scheduler class 'fifo', priority 80
stress-ng: info: [2084] dispatching hogs: 1 matrix, 1 ioport
stress-ng: debug: [2084] cache allocate: default cache size: 4096K
stress-ng: debug: [2084] starting stressors
stress-ng: debug: [2084] 2 stressors spawned
stress-ng: debug: [2085] stress-ng-matrix: started [2085] (instance 0)
stress-ng: debug: [2086] stress-ng-ioport: started [2086] (instance 0)
stress-ng: debug: [2085] stress-ng-matrix using method 'all' (x by y)
Только процесс 2085 загружал ЦП. Изображение 2
Это говорит о том, что два стрессора не действуют параллельно.
Как я могу заставить стрессоры работать параллельно, более того, чтобы соразмерить 2 задачи?
Существуют ли более эффективные инструменты с открытым исходным кодом для имитации рабочей нагрузки?
Спасибо!