Mit Cgroups einschränken der cpu-Nutzung
Ich versuche, mit cgroups zur Begrenzung der CPU-Auslastung. Ich bin mit diesem guide
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-cpu_and_memory-use_case.html
Meine /etc/cgconfig.conf-Datei ist die folgende
mount {
cpu = /mnt/cgroup/cpu,cpuacct;
cpuacct = /mnt/cgroup/cpu,cpuacct;
}
group wheel {
cpu {
cpu.shares="800";
}
cpuacct {
cpuacct.usage="0";
}
}
group test1 {
cpu {
cpu.shares="200";
}
cpuacct {
cpuacct.usage="0";
}
}
Meine cgrules.conf ist die folgende
@wheel cpu,cpuacct wheel
@test1 cpu,cpuacct test1
Althouth, wenn ich versuche zu laufen:
dd if=/dev/zero of=/dev/null bs=1024k
Sehe ich, dass die cpu-Auslastung bei 100% für die Nutzer gehören zur Gruppe wheel und test1
Ich habe die services mit
service cgconfig status
und ist bis
Loaded: loaded (/usr/lib/systemd/system/cgconfig.service; disabled)
Active: active (exited) since Mon 2015-03-02 17:29:19 EET; 7min ago
Process: 1240 ExecStop=/usr/sbin/cgclear -l /etc/cgconfig.conf -e (code=exited, status=3)
Process: 56536 ExecStart=/usr/sbin/cgconfigparser -l /etc/cgconfig.conf -s 1664 (code=exited, status=0/SUCCESS)
Main PID: 56536 (code=exited, status=0/SUCCESS)
Kann mir jemand sagen was ich falsch mache?
Vielen Dank
- Hinzufügen Sie können die Ausgabe von
top
Befehl, wenn Siedd if=/dev/zero of=/dev/null bs=1024k
? cgroup
Aktien wird nur einschränken der CPU-Ressourcen, wenn es einen Wettbewerb für Sie. Wenn in deinem Beispieltest1
will CPU-Ressourcen, undwheel
ist nicht mit jedem, dann gibt es keinen Wettbewerb, undtest1
haben kann, was es will. Wenn beide fordern Ressourcen, dann sollten Sie die share-based Begrenzung der Einnahme beeinflussen.- Hallo, die Ausgabe ist die folgende: `
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
51535 user1 20 0 108956 1680 556 R 100.0 0.0 0:27.74 dd
51557 user2 20 0 108956 1676 552 R 100.0 0.0 0:23.57 dd
user1 gehört zur Rad-Gruppe und user2 zu test1 group - Ich danke Ihnen sehr für Ihre Antwort. Ich lief die
dd
commant für beide Benutzer zur gleichen Zeit. Ich legte ebenfalls über dem Ergebnis des Befehls top. Glauben Sie, dass ich versuchen sollte, mit einem anderen Befehl?
Du musst angemeldet sein, um einen Kommentar abzugeben.
cpu cgroup wird die Arbeit der Erhaltung, dh. eine Aufgabe würde nicht gestoppt werden, von der Nutzung der cpu, wenn es keine Konkurrenz. Wenn Sie wollen, um eine "harte" Grenze auf Höhe der cpu eine Aufgabe verwenden können, versuchen Sie
cpu.cfs_quota_us
undcpu.cfs_period_us
.Blick in die Dokumentation hier.