Come posso limitare la velocità di uscita di stdout?


24

Sono in esecuzione CentOS 5.7 e ho un'utilità di backup che ha la possibilità di scaricare il suo file di backup su stdout. Il file di backup è piuttosto grande (più gigabyte). Il target è un filesystem SSHFS. Per essere sicuro di non limitare la larghezza di banda e degradare le prestazioni della rete, vorrei limitare la velocità con cui i dati vengono scritti sul "disco".

Come posso limitare la possibilità di stdoutbasarsi su un numero di byte? Ad esempio, limitando la capacità di un processo di scrivere a circa 768 Bps.


6
@msw questa domanda riguarda la limitazione della velocità stdout, la domanda precedente riguardava la limitazione del traffico di rete.
Animali

7
@msw L'ultima volta che ho verificato, il punto della rete SE è quello di raccogliere una grande quantità di conoscenze in aree specifiche. In questo caso, si tratta di * nix. Limitare l'uscita di stdoutè diverso dal limitare la larghezza di banda. Solo perché il problema di fondo è lo stesso non significa che i futuri visitatori non troveranno ciascuna domanda utile indipendentemente dall'altra. Ricorda che le domande e risposte sono tanto per i googler quanto per i veri richiedenti, motivo per cui eliminare le domande con risposta è un peccato così cardinale qui.
MDMarra,

Risposte:


27

È possibile aggiungere uno strumento di limitazione della velocità alla pipeline.

Ad esempio, esiste pvun'opzione che limita la velocità:

-L RATE, --rate-limit RATE

Limitare il trasferimento a un massimo di RATE byte al secondo. È possibile aggiungere un suffisso "k", "m", "g" o "t" per indicare i kilobyte (* 1024), i megabyte e così via

Un'alternativa è lo strumento bufferche ha:

   -u microseconds

Dopo ogni pausa di scrittura per questo numero di microsecondi. Il valore predefinito è zero. (Sorprendentemente un piccolo sonno, 100 usec, dopo ogni scrittura può migliorare notevolmente il throughput su alcune unità.)


3

Sarei tentato di scaricare questo su un disco locale invece di scriverlo direttamente sul volume remoto. In questo modo è possibile utilizzare rsynccon --bwlimitper limitare facilmente il trasferimento.

Uno dei vantaggi di questo approccio è che se c'è un singhiozzo di connettività alla macchina remota, il trasferimento viene interrotto, ma il backup stesso non esplode in un tripudio di gloria.


Notato. Vorrei tanto che rsyncfosse una soluzione praticabile in questa situazione piuttosto limitata in cui mi trovo. = |
Wesley,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.