syscon-hh schrieb:
Commander Data schrieb:
Oder ist es andersherum gemeint?
1.:
Ja man sollte auf dieses automatische Verfahren (also das mit dem Paket) verzichten. Langwierige Tests haben ergeben, dass das automatische Verfahren, weil es eben unkoordiniert zum Speichern ansetzt, zu starken Belastungen der CPU-Last führte und dann ein weiter arbeiten unmöglich machte, bis hin zum Einfrieren des Systemes.
OK, dann ist das aber nicht "zugunsten des automatischen Verfahrens" (eher "zuungunsten"). Ich ändere die Formulierung und ergänze noch knapp die Begründung.
2.:
Aus dem Abschnitt Prozessorbelastung:
nice -n 15 `btrfs filesystem balance /` &
cpulimit `btrfs filesystem balance /` -l 20 &
und so weiter ...
bis hin zu ...
Den Hinweis "um eine eindeutige Zuweisung zu erhalten" verstehe ich nicht. Geht es um die Zuweisung der Argumente zu den Befehlen
Die sollte bei nice sowieso funktionieren. Bei cpulimit wären vielleicht Anführungszeichen angebracht, wenn der Befehl eine ähnliche Syntax wie im Zitat angegeben hätte.
Es sind hier mehrere Ebenen und Anweisungen mit einander verknüpft worden - mal aufgebröselt:
Das Gleiche bei dem anderen Befehl - nur die Vorgabe der Optionen liegt dabei anders. Zumindest läuft das hier so wie es beschrieben wird. Und es wird nicht das Hochkomma (') sondern das (`) verwendet - hat dann auch eine andere Wertigkeit.
Ich sehe, dass kein Hochkomma / Anführungszeichen verwendet wird, sondern `. Wie ich schon gesagt habe: `Kommando` entspricht $(Kommando). Die Befehle aus dem Artikel könnte man also auch so schreiben:
nice -n 15 $(btrfs filesystem balance /) &
cpulimit $(btrfs filesystem balance /) -l 20 &
Nur führt das nicht dazu, dass btrfs mit einem Nice-Wert von 15 bzw. mit einem CPU-Last-Maximum ausgeführt wird. Ich zeige das mal anhand von sleep statt btrfs. (btrfs nutze ich sowieso noch nicht.)
a@A:~$ nice -n 15 `sleep 10` &
[1] 4402
a@A:~$ ps -o nice,command -C sleep
NI COMMAND
0 sleep 10
a@A:~$ nice: Mit einer Priorität muss ein Befehl angegeben werden
„nice --help“ gibt weitere Informationen.
[1]+ Exit 125 nice -n 15 `sleep 10`
Folgendes ist passiert:
sleep 10 wurde gestartet. Sein Nice-Wert lag bei 0 und nicht bei 15, wie ps gezeigt hat.
Als der sleep-Prozess fertig war, wurde seine (nicht-existente) Ausgabe von der bash in die Befehlszeile eingefügt und nice gestartet: nice -n 15 AUSGABE_VON_SLEEP & (also, da sleep nichts ausgegeben hat: nice -n 15 &)
nice hat sich über die falsche Aufruf-Syntax beschwert und effektiv nichts getan.
Jetzt das ganze ohne `:
a@A:~$ nice -n 15 sleep 10 &
[1] 4409
a@A:~$ ps -o nice,command -C sleep
NI COMMAND
15 sleep 10
a@A:~$
[1]+ Fertig nice -n 15 sleep 10
nice hat sleep mit einer Priorität von 15 gestartet.
Fazit: Bei nice müssen einfach nur die ` weggelassen werden, damit es so funktioniert, wie gewünscht. Bei cpulimit sind noch andere Anpassungen nötig, aber auch nichts gravierendes:
btrfs filesystem balance / & cpulimit -p $! -l 20 &
Dadurch würde zuerst btrfs gestartet und dann sofort cpulimit mit der btrfs-PID aufgerufen (entsprechend der Manpage).
Zum Anderen, dieser Teil der Artikelserie ist ja auch anders zu verstehen - nicht als Anweisung, sondern als Sammlung von Erfahrungen - so wurde es ja auch im Header vorgestellt.
Dennoch scheint mir, dass die angegebenen Befehle nicht so funktionieren, wie angegeben. Vielleicht führst du selbst mal die Befehle aus dem Artikel aus, prüfst die nice-Werte bzw. CPU-Auslastung und postest hier die Terminal-Befehle und -Ausgaben. Das würde mich sehr überraschen, wenn die Befehle aus dem Wiki so funktionieren.
Ansonsten - es ist ein WIKI, jeder der fundierte und gesicherte (Er)Kenntnisse beitragen kann und will, darf das!
Weiß ich.
Ich wollte nur nachfragen, um eventuelle Missverständnisse auszubügeln. Bei "Backup und Replay" habe ich mich ja tatsächlich bzgl. der Intention geirrt. Was "Prozessorbelastung" angeht: Wir werden sehen.