Skip to main content

A much faster du that tells you why your quota is full.

Project description

rapiDU

A much faster du that tells you why your quota is full.

CI Python 3.6+ No dependencies MIT License

rapiDU walking a project tree and explaining that it occupies 266.8 MiB to hold 75.5 MiB of data, ranking the same tree by file count, printing a quota table with the age of its snapshot, finding 512 MiB held by a deleted-but-open file descriptor, and catching a freshly written GPFS tree that loses 224 MiB while it settles.

Install

pip install rapidu

Use

rdu                      # this directory: how big, and what is big inside it
rdu /project/mylab       # any other path
rdu ~/scratch -n 20      # list 20 entries instead of 10

rdu -i                   # rank by file count -- what an inode quota limits
rdu -c                   # count files only, no stat: ~8x again on GPFS
rdu -Q                   # the quota table, and the age of its figures
rdu -D                   # space held by files deleted while still open
rdu -a                   # the full audit: quota + /proc scan + reconciliation

Faster, and the same number

Cold GPFS walk: du takes 168.1s against rapiDU's 25.4s on a 792,225-file package cache (6.6x), and 298.5s against 57.4s on a 1,686,589-file project directory (5.2x).

Same total as du, to the byte. That is checked on every commit.

Reading the table

╭───────────────────────────────────────────────────────────────────────────────────╮
│ 1.4 TiB   /project/lab/shared                                                     │
│ 5,435 files  ·  87 entries  ·  4.12s                                              │
│                                                                                   │
│   ──────────────────────────────────────────────────────                          │
│         size  share                           files  path                         │
│    661.5 GiB  █████▏░░░░░░░░░░░░   31.9%        350  checkpoints/                 │
│    343.8 GiB  ██▊░░░░░░░░░░░░░░░   16.6%        968  datasets/                    │
│    470.9 GiB  ▒▒▒▒▒▒▒▒░░░░░░░░░░   22.9%      4,117  (84 more — use -n 0 for all) │
╰───────────────────────────────────────────────────────────────────────────────────╯

The frame carries no title and it always closes: a line too wide for it wraps inside, at a path separator, rather than running past the border. Its colour is a gradient sweeping from the top-left corner, and it degrades — 24-bit if your terminal advertises COLORTERM=truecolor, a 12-step ramp at 256 colours, and a calm three-step cyan at 8. --ascii turns it into +--+; --no-box removes it, which is what you want when piping into grep or a diff.

share labels the bar and the percentage beside it: they are one measurement in two forms, the picture and the number. The bar is share of the whole walk, so it always agrees with the number beside it. The hatched row is everything not listed. The column you sorted by is the one in colour — under -i, files takes the tone and size steps back. Sizes are cumulative, so any row agrees with du -s on that path.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rapidu-0.2.0.tar.gz (138.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rapidu-0.2.0-py3-none-any.whl (88.7 kB view details)

Uploaded Python 3

File details

Details for the file rapidu-0.2.0.tar.gz.

File metadata

  • Download URL: rapidu-0.2.0.tar.gz
  • Upload date:
  • Size: 138.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for rapidu-0.2.0.tar.gz
Algorithm Hash digest
SHA256 c08290242e06543f1ed2254071415471f1e7067c43315b5c670a7f37e707e85c
MD5 1d81c7ccd7c82e2d9caaf8e6362bda85
BLAKE2b-256 84782f853e8cb309e59e6cb9c3d5888ae25a4f8b54ed656693252918621844c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidu-0.2.0.tar.gz:

Publisher: release.yml on PursuitOfDataScience/rapidu

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidu-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: rapidu-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 88.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for rapidu-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3bfdc46183a8a6e4f2ad8a78320cd398d70197cacb63e68ebc916c2d38e6a911
MD5 89a4df497fad22ed59b250d59566294a
BLAKE2b-256 4272c8a47bc17bc273953c9b0e7fce239c67088f9fb45f5fb3b11f5995830873

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidu-0.2.0-py3-none-any.whl:

Publisher: release.yml on PursuitOfDataScience/rapidu

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page