Thanks for that one. "yum install buffer". How simple.
So I tried it out:
$ dd if=/dev/zero bs=1M count=256 > /dev/null
256+0 records in
256+0 records out
268435456 bytes (268 MB) copied, 0.0258608 s, 10.4 GB/s
Original throughput is 10.4 GB/sec. Looks not so bad.
$ dd if=/dev/zero bs=1M count=256 | cat > /dev/null
256+0 records in
256+0 records out
268435456 bytes (268 MB) copied, 0.199799 s, 1.3 GB/s
The regular cat is somewhat slower, then.
Now let's try buffer:
$ dd if=/dev/zero bs=1M count=256 | buffer -m 256m > /dev/null
Cannot handle that many blocks, aborting!
Hmmm... The default buffer size is too small, so asking for 256MB didn't
work well. Let's ask for 128kByte buffers:
$ dd if=/dev/zero bs=1M count=256 | buffer -s 128k -m 256m > /dev/null
256+0 records in
256+0 records out
268435456 bytes (268 MB) copied, 0.379354 s, 708 MB/s
On one hand, it's not all that impressive that the rate went down. But
it's still way above the 100 MB/sec needed. On the other hand, going
$ dd if=/dev/zero bs=1M count=256 | buffer -s 128k -m 256m | hexdump -C
> /dev/null
gives exactly the same result, except that command prompt returns after
a second or so, which is the time it took for hexdump to consume the data.
So I suppose we have a winner. Thanks again.
Eli
Baruch Even wrote:
On Sat, Feb 4, 2012 at 4:27 PM, Eli Billauer <[email protected]
<mailto:[email protected]>> wrote:
Hi all,
I need a simple command-line program, which works as a plain FIFO
stream buffer with a huge RAM. Something I can do:
$ fatcat -b 256M /dev/datasource | ./my_shaky_data_sink
The idea is that "fatcat" reads data whenever available and stores
it to non-swappable RAM. It then pushes the data to stdout. So
it's just like good old "cat", only with a potentially large tummy.
I've used pv or buffer for such purposes.
Baruch
--
Web: http://www.billauer.co.il
_______________________________________________
Linux-il mailing list
[email protected]
http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il