Bagaimana saya bisa membatasi kecepatan keluaran stdout?

24

Saya menjalankan CentOS 5.7 dan saya memiliki utilitas cadangan yang memiliki opsi untuk membuang file cadangannya stdout. File cadangan agak besar (beberapa gigabytes). Targetnya adalah sistem file SSHFS. Untuk memastikan bahwa saya tidak memakan bandwidth dan menurunkan kinerja jaringan, saya ingin membatasi kecepatan data ditulis ke "disk".

Bagaimana saya bisa membatasi kemampuan stdoutberdasarkan nomor byte? Misalnya, membatasi kemampuan proses untuk menulis hingga sekitar 768Bps.

Wesley
sumber
6
@msw pertanyaan ini adalah tentang pembatasan tingkat stdout, pertanyaan sebelumnya adalah tentang membatasi lalu lintas jaringan. Binatang yang berbeda ...
voretaq7
7
@ msw Terakhir saya periksa, titik dari jaringan SE adalah untuk mengumpulkan sejumlah besar pengetahuan di bidang-bidang tertentu. Dalam hal ini, ini tentang * nix. Membatasi output stdoutberbeda dengan membatasi bandwidth. Hanya karena masalah mendasarnya sama, tidak berarti bahwa pengunjung di masa mendatang tidak akan menemukan setiap pertanyaan berguna terpisah dari yang lain. Ingatlah bahwa Qs & As sama banyaknya bagi para googler dan bagi para penanya yang sebenarnya, itulah sebabnya menghapus pertanyaan yang dijawab adalah dosa besar di sini.
MDMarra

Jawaban:

27

Anda dapat menambahkan alat pembatas laju ke pipa Anda.

Misalnya ada pvyang memiliki opsi pembatasan tingkat:

-L RATE, --rate-limit RATE

Batasi transfer hingga maksimum RATE byte per detik. Sufiks "k", "m", "g", atau "t" dapat ditambahkan untuk menunjukkan kilobyte (* 1024), megabita, dan seterusnya

Alternatif adalah alat bufferyang memiliki:

   -u microseconds

Setelah menulis setiap jeda untuk ini banyak mikrodetik. Standarnya ke nol. (Anehnya tidur kecil, 100 USD, setelah setiap penulisan dapat sangat meningkatkan throughput pada beberapa drive.)

maxschlepzig
sumber
3

Saya akan tergoda untuk membuang ini pada disk lokal daripada menulisnya langsung ke volume jarak jauh. Dengan cara ini Anda dapat menggunakan rsyncdengan --bwlimitmudah membatasi transfer.

Salah satu manfaat dari pendekatan ini adalah bahwa jika ada gangguan konektivitas ke mesin jarak jauh, transfer terputus, tetapi cadangan itu sendiri tidak meledak dalam nyala api kemuliaan.

MDMarra
sumber
Dicatat. Saya sungguh berharap itu rsyncadalah solusi yang layak dalam situasi yang agak terbatas ini. = |
Wesley
3

pv (tampilan pipa)

echo asdlfkjasdf | pv -q -L 12
Ole Tange
sumber