2015-03-02 5 views
7

Ich versuche, Cgroups zu verwenden, um die CPU-Auslastung zu begrenzen. Ich benutze dieses Handbuch https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-cpu_and_memory-use_case.htmlVerwenden von Cgroups, um CPU-Auslastung zu begrenzen

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"; 
    } 
} 

Mein cgrules.conf ist die folgende

@wheel cpu,cpuacct wheel 
@test1 cpu,cpuacct test1 

Althouth, wenn ich zu laufen versuchen:

dd if=/dev/zero of=/dev/null bs=1024k 

Ich sehe, dass die CPU-Nutzung in 100% für die USA ers gehören zur Gruppe Rad und test1

ich die Dienste mit Service cgconfig Status geprüft haben 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 mache ich falsch? Vielen Dank

+0

Können Sie die Ausgabe des Befehls 'top' hinzufügen, wenn Sie 'dd if =/dev/zero von =/dev/null bs = 1024k' ausführen? –

+5

'cgroup' Aktien werden nur CPU-Ressourcen * begrenzen, wenn es einen Wettbewerb für sie gibt *. Wenn "test1" in Ihrem Beispiel CPU-Ressourcen benötigt und "rad" keine verwendet, dann gibt es keine Konkurrenz und "test1" kann haben, was immer es will. Wenn beide Ressourcen beanspruchen, sollten Sie sehen, dass die anteilsbasierte Begrenzung in Kraft tritt. – twalberg

+0

Hallo der Ausgang ist die folgende: ' ' PID USER PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND ' ' 51535 benutzer1 20 0 108956 1680 556 R 100.0 0.0 0: 27,74 dd' '51557 benutzer2 20 0 108956 1676 552 R 100.0 0.0 0: 23.57 dd' user1 gehört zur wheel group und user2 zur test1 group – SteveGr2015

Antwort

12

CPU-Gruppe ist Arbeit sparend, dh. Eine Aufgabe würde nicht von der Verwendung von CPU gestoppt werden, wenn es keine Konkurrenz gibt. Wenn Sie eine feste Grenze für die CPU-Menge festlegen möchten, die eine Task verwenden kann, versuchen Sie es mit cpu.cfs_quota_us und .

Schauen Sie sich die Dokumentation here an.

+0

Vielen Dank, es funktioniert gut mit cpu.cfs_quota_us und cpu.cfs_period_us – SteveGr2015