Linux Benutzer: CPU-Zeit begrenzen?



  • Hallo,

    ist es möglich einem Benutzer nur begrenzte CPU Zeit zu geben, so dass der den Prozessor nur zu 50% auslasten darf? Oder dass von dem Benutzer gestartete Prozesse generell eine niedrigere Priorität kriegen?



  • Hab ich zwar noch nie gebraucht,
    aber schau dir vll. mal den Befehl
    ulimit an.

    *******@macbook:~$ ulimit -a
    core file size          (blocks, -c) 0
    data seg size           (kbytes, -d) unlimited
    [b]max nice                        (-e) 0[/b]
    file size               (blocks, -f) unlimited
    pending signals                 (-i) 7935
    max locked memory       (kbytes, -l) 32
    max memory size         (kbytes, -m) unlimited
    open files                      (-n) 1024
    pipe size            (512 bytes, -p) 8
    POSIX message queues     (bytes, -q) 819200
    max rt priority                 (-r) 0
    stack size              (kbytes, -s) 8192
    [b]cpu time               (seconds, -t) unlimited[/b]
    max user processes              (-u) 7935
    virtual memory          (kbytes, -v) unlimited
    file locks                      (-x) unlimited
    

    Btw. Warum entfernt der Tag für fette Schrift
    die Zwischenräume?



  • TheToast schrieb:

    Hallo,

    ist es möglich einem Benutzer nur begrenzte CPU Zeit zu geben, so dass der den Prozessor nur zu 50% auslasten darf? Oder dass von dem Benutzer gestartete Prozesse generell eine niedrigere Priorität kriegen?

    Die prozentuale Auslastung kannst du nicht begrenzen. Was geht ist die Begrenzung der CPU-Sekunden, die ein Prozess verbraucht. Steuern kannst du das via /etc/security/limits.conf
    Die Datei ist einigermassen selbsterklärend. Das mit der Auslastung ist ja eh unlogisch, da ein Prozess, wenn er an der Reihe ist, eh immer die gesamte Aufmerksamkeit des Prozessors hat (von Multicore-Systemen mal abgesehen).



  • Ich meinte die Prozentuale Auslastung auch zeitlich gesehen, so dass ein Prozess in einer Sekunde Zeit maximal 500ms CPU-Zeit verbraucht oder so. Allerdings kenn ich mich in dem Bereich der Betriebssysteme nicht sonderlich aus, deswegen weiß ich nicht ob das generell mögloch ist. Aber in der limits.conf steht ja auch ein nice-WErt, ist auch gut.

    Die CPU-Zeit in der Limits.conf ist (sowie ich das verstanden hab) ein absolutwert, wenn der Prozess die Zeit überschreitet wird er beendet.



  • Linux unterstützt doch gar keine CPUs!?! 😕



  • TheToast schrieb:

    Ich meinte die Prozentuale Auslastung auch zeitlich gesehen, so dass ein Prozess in einer Sekunde Zeit maximal 500ms CPU-Zeit verbraucht oder so. Allerdings kenn ich mich in dem Bereich der Betriebssysteme nicht sonderlich aus, deswegen weiß ich nicht ob das generell mögloch ist. Aber in der limits.conf steht ja auch ein nice-WErt, ist auch gut.

    Die CPU-Zeit in der Limits.conf ist (sowie ich das verstanden hab) ein absolutwert, wenn der Prozess die Zeit überschreitet wird er beendet.

    Das ist richtig. Die Priorität (also nice) ist wohl der Ansatz den du brauchst.



  • ich glaube das geht mit nice 💡


Anmelden zum Antworten