In Ermangelung der angeforderten Details ...
Hier ist, wie ich cgroups auf Ubuntu verwende.
In diesem Beitrag müssen Sie die Variable "$ USER" an den Benutzer anpassen, der den Prozess ausführt
Ich habe Informationen für den Speicher hinzugefügt, außerdem wird dies eine FAQ sein. Wenn Sie sie nicht benötigen, verwenden Sie sie nicht.
1) Installieren cgroup-bin
sudo apt-get install cgroup-bin
2) Neustart. cgroups befindet sich jetzt unter/sys/fs/cgroup
3) Machen Sie eine cgroup für Ihren Benutzer (der Eigentümer des Prozesses)
# Change $USER to the system user running your process.
sudo cgcreate -a $USER -g memory,cpu:$USER
4) Ihr Benutzer kann Ressourcen verwalten. Standardmäßig erhalten Benutzer 1024 CPU-Einheiten (Freigaben). Um die CPU-Auslastung auf ca. 10% zu begrenzen, wird der Speicher in Byte angegeben.
# About 10 % cpu
echo 100 > /cgroup/cpu/$USER/cpu.shares
# 10 Mb
echo 10000000 > /cgroup/memory/$USER/memory.limit_in_bytes
5) Starte deinen Prozess (ändere exec auf cgexec)
# -g specifies the control group to run the process in
# Limit cpu
cgexec -g cpu:$USER command <options> &
# Limit cpu and memory
cgexec -g memory,cpu:$USER command <options> &
Aufbau
Vorausgesetzt, Gruppen arbeiten für Sie;)
Bearbeiten Sie /etc/cgconfig.conf
, fügen Sie in Ihrer benutzerdefinierten Gruppe hinzu
# Graphical
gksudo gedit /etc/cgconfig.conf
# Command line
sudo -e /etc/cgconfig.conf
Fügen Sie in Ihrer Gruppe hinzu. Ändern Sie erneut $ USER in den Benutzernamen, dem der Prozess gehört.
group $USER {
# Specify which users can admin (set limits) the group
perm {
admin {
uid = $USER;
}
# Specify which users can add tasks to this group
task {
uid = $USER;
}
}
# Set the cpu and memory limits for this group
cpu {
cpu.shares = 100;
}
memory {
memory.limit_in_bytes = 10000000;
}
}
Sie können auch Gruppen angeben gid=$GROUP
. /Etc/cgconfig.conf ist gut kommentiert.
Führen Sie nun Ihren Prozess erneut mit aus cgexec -g cpu:$USER command <options>
Sie können Ihren Prozess (nach PID) in sehen /sys/fs/cgroup/cpu/$USER/tasks
Beispiel
bodhi @ ufbt: ~ $ cgexec -g cpu: bodhi sleep 100 &
[1] 1499
bodhi @ ufbt: ~ $ cat / sys / fs / cgroup / cpu / bodhi / tasks
1499
Weitere Informationen finden Sie unter:
http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/