This program, gprog (download here), is a basic pipemeter along the lines of reblock, cpipe, pv, pipemeter and speedometer - however:
  1. This one's a GUI.
  2. This one's fast for a GUI.
    1. The GUI carefully avoids updating itself for every block
    2. It takes advantage of multicore systems: it uses one process for the GUI, and another for the data transfer. This is done using Python's excellent multiprocessing module, rather than threads.
  3. It shows more statistics than is usual for these tools.
  4. It allows display in SI or IEC units or a mix of the two, and you can change the units mid-transfer.

Here's a pair of pictures of it in action, both run on an Ubuntu 9.10 system with the following specs:

  1. Reading from /dev/zero and writing to /dev/null.
    Here the CPU is the limiting factor.
    Because you can't get a length estimate out of /dev/zero, the progress bar is pulsing back and forth, not progressing. Also for this reason the ETA's are "Unknown".
  2. Reading from a tar process that's reading from disk, and writing to /dev/null.
    Here the disk or perhaps the interprocess communication is the limiting factor.
    This is really invoked via gprog-du-tar, so we have a length estimate, hence the progress bar is growing from the left. Also, we have ETA data.

License:

Bugs:

  1. Rarely, the GUI won't come up until the transfer is complete. I believe this to be an issue on machines with almost no free physical memory - EG, it happened on a system with a huge ramfs (ramdisk).
  2. gprog is not suitable for (direct) use with traditional tape drives, because most tape drives want tape blocks to be of a consistent size. gprog gets a lot of its performance by sacrificing blocksize consistency - this is fine for disk and network, but typically not for tape. If you need (GUI) progress with a tape drive, consider putting something like dd at the end of your pipeline.
  3. The popup signaling a complete transfer is modal. It's no longer modal.



Hits: 4473
Timestamp: 2018-06-24 23:45:45 EDT

Back to Dan's tech tidbits

You can e-mail the author with questions or comments: