Kann ich Teer ohne Ionen drosseln?

7

Mein Teerbefehl

tar --remove-files -cvif 2011-08-02_14-05-09.tar 2011-08-02_14-05-09

Schreibt 80 MB / s. Dies übersteigt die Kapazität, die wir sparen können, da MySQL Schreibvorgänge in die Warteschlange stellt und schließlich Überwachungswarnungen angezeigt werden, da Systeme nicht ewig auf MySQL warten und eine Zeitüberschreitung aufweisen.

F: Kann ich tarnur 20 MB / s drosseln ?

Ich habe nichts in der Manpage gefunden und wir haben es bereits mit der niedrigsten ioniceKlasse versucht : /usr/bin/ionice -c3 tar <...>aber das hat keinen Einfluss auf die geschriebenen MBs und MySQL friert immer noch ein.

Vielleicht ionicewird ignoriert, weil wir auf einem /dev/md0Software-RAID-Gerät sind?

kvz
quelle
Ich denke, als Hack könnten wir tar sofort das Archiv bzipen lassen, weil wir CPU-Zyklen übrig haben. Aber ich bin wirklich interessiert zu sehen, ob ich IO auf solide Weise begrenzen kann.
kvz
ioniceMöglicherweise haben Sie nicht für Sie gearbeitet, weil Sie mit dem falschen Scheduler ausgeführt wurden. Es funktioniert anscheinend nur mit dem CFQ-Scheduler.
Stu Thompson

Antworten:

5

Sie können Ratepipe verwenden .

Ich habe es heruntergeladen und ausprobiert und es scheint DTRT. Es sollte für Sie funktionieren:

tar --remove-files -cvif - 2011-08-02_14-05-09 | ratepipe -r 20 > 2011-08-02_14-05-09.tar
MikeyB
quelle
2
Großartige Idee! Ich habe eine Alternative namens pv( linux.die.net/man/1/pv ) gefunden, die in apt zu finden ist. Syntax würde werden tar --remove-files -cvif - 2011-08-02_14-05-09 | pv -L 20m > 2011-08-02_14-05-09.tar Kann auch zB einen Fortschrittsbalken
anzeigen
1
Das ist es! Ich wusste, dass es ein sexieres Programm gibt, konnte mich aber nicht erinnern pv.
MikeyB
Dies ist ein Juwel eines Fundes. Vielen Dank. ratepipeFelsen.
Stu Thompson
1

Sie könnten den Teer wahrscheinlich in stdout schreiben (mit -f - ) und ihn in etwas leiten, das drosselt. Ich werde sehen, ob ich schnell etwas finden kann.

Da tar nicht viel puffert, sollte es auf die Lesevorgänge warten.

Edit: MikeB hat mich geschlagen: ratepipe wird reichen.

Joris
quelle