stress-ng: Simulieren Sie bestimmte CPU-Prozentsätze

9

Linux-Umgebung: Debian, Ubuntu, Centos

Ziel:
Testüberwachungsprogramm, das Alarme einstellt und verschiedene Alarme mit unterschiedlichen CPU-Prozentsätzen auslöst.
Beispiel: (30-50%), (51-70%) und> 90%

Ich brauche also einen CPU-Stresser, der einen bestimmten CPU-Prozentsatz pro Kern simulieren kann.
Stress-mg scheint am weitesten fortgeschritten zu sein.

Gemäß der Dokumentation http://kernel.ubuntu.com/~cking/stress-ng/ können Lastwerte zwischen 0 und 100% festgelegt werden:

-l P - CPU-Last P CPU um P% laden, 0 = Ruhezustand, 100 = Volllast (siehe -c)

stress-ng -c 1 -p 30

stress-ng: info: [12650] Versand von Schweinen: 0 I / O-Sync, 1 CPU, 0 VM-mmap, 0 HDD-Write, 0 Fork, 0 Context-Switch, 30 Pipe, 0 Cache, 0 Socket, 0 Ausbeute, 0 Fallocate, 0 Flock, 0 Affinität, 0 Timer, 0 Dentry, 0 Urandom, 0 Float, 0 Int, 0 Semaphor, 0 Open, 0 SigQueue, 0 Poll

Unerwünschtes Ergebnis:
Aber es scheint nicht zu funktionieren, aLL-Kerne sind zu 100% ausgelastet

Geben Sie hier die Bildbeschreibung ein

Irgendwelche Ideen, wie dies erreicht werden kann?

AJN
quelle

Antworten:

11

Ich habe stress-ng so entworfen, dass man 0 für die Anzahl der Stressor-Prozesse angeben kann, die mit der Anzahl der Online-CPUs übereinstimmen. Um also jede CPU mit beispielsweise 40% zu laden, verwenden Sie

stress-ng -c 0 -l 40

Colin Ian King
quelle
3

Ich hätte die Option -l verwenden sollen

  1. Es sieht so aus, als würde -c 1 die Last auf alle Kerne verteilen. Nicht genau 80/4 pro Kern, denke ich, weil der Host bereits einige Dinge ausführt.

    stress-ng -c 1 -l 80

Geben Sie hier die Bildbeschreibung ein

  1. und -c 4 simulieren die Last auf jedem Kern

    stress-ng -c 4 -l 80

Geben Sie hier die Bildbeschreibung ein

AJN
quelle