VDOSTATS(8)
π VDOSTATS π
okay bestie, welcome to vdostats from the System Manager's Manual (section 8, she's a system manager tool, very important, very demure) π
β¨ NAME β¨
vdostats β displays the configuration and statistics of VDO volumes. she's giving dashboard energy, she's giving receipts ππ
β¨ SYNOPSIS β¨
vdostats [options ...] [device [device ...]]
β¨ DESCRIPTION β¨
so basically, vdostats shows you the configuration and statistics info for the VDO devices you name. no devices named? no problem, she'll show you info about all the VDO devices. main character behaviour honestly π
πΈ tiny but crucial detail: the VDO devices have to be running for the configuration and statistics information to actually get reported. like, she can't read a vibe that isn't there, bestie.
β¨ OPTIONS β¨
-h,--helpβ shows the help message and dips out. short, sweet, iconic π«Ά-a,--allβ this one is only for backwards compatibility, no cap. it's now equivalent to--verbose.--human-readableβ displays block values in readable form (Base 2: 1 KB = 2^10 bytes = 1024 bytes). numbers that don't make your eyes water, we love to see it β¨--siβ modifies the output of the--human-readableoption to use SI units (Base 10: 1 KB = 10^3 bytes = 1000 bytes). and heads up: if you didn't also pass--human-readable, this option has no effect. literally zero. she's a modifier, not a solo act π-v,--verboseβ displays the utilization and block I/O (bios) statistics for the selected VDO devices. the full tea, the whole lore βπ₯-V,--versionβ prints thevdostatsversion number and exits. flyby, no small talk π¦
β¨ OUTPUT β¨
the default output format is a table with the following columns, kinda similar to what the Linux df utility does. familiar, but make it VDO π
- Device β the path to the VDO volume.
- 1K-blocks β the total number of 1K blocks allocated for a VDO volume (= physical volume size * block size / 1024).
- Used β the total number of 1K blocks used on a VDO volume (= physical blocks used * block size / 1024).
- Available β the total number of 1K blocks available on a VDO volume (= physical blocks free * block size / 1024).
- Use% β the percentage of physical blocks used on a VDO volume (= used blocks / allocated blocks * 100).
- Space Saving% β the percentage of physical blocks saved on a VDO volume (= [logical blocks used - physical blocks used] / logical blocks used).
β¨ VERBOSE OUTPUT β¨
the --verbose option displays VDO device statistics in YAML format for the VDO devices you specified. now listen closely bestie:
the following fields will continue to be reported in future releases. but management tools should not rely upon the order in which any of the statistics are reported. order is not the vibe. the data is the vibe. periodt.
here's the whole roster π
versionβ the version of these statistics.release versionβ the release version of the VDO.data blocks usedβ the number of physical blocks currently in use by a VDO volume to store data.overhead blocks usedβ the number of physical blocks currently in use by a VDO volume to store VDO metadata.logical blocks usedβ the number of logical blocks currently mapped.physical blocksβ the total number of physical blocks allocated for a VDO volume.logical blocksβ the maximum number of logical blocks that can be mapped by a VDO volume.1K-blocksβ the total number of 1K blocks allocated for a VDO volume (= physical volume size * block size / 1024).1K-blocks usedβ the total number of 1K blocks used on a VDO volume (= physical blocks used * block size / 1024).1K-blocks availableβ the total number of 1K blocks available on a VDO volume (= physical blocks free * block size / 1024).used percentβ the percentage of physical blocks used on a VDO volume (= used blocks / allocated blocks * 100).saving percentβ the percentage of physical blocks saved on a VDO volume (= [logical blocks used - physical blocks used] / logical blocks used).block map cache sizeβ the size of the block map cache, in bytes.write policyβ the write policy (sync,async, orasync-unsafe). this is configured viavdo modify --writePolicy=policy. πblock sizeβ the block size of a VDO volume, in bytes.completed recovery countβ the number of times a VDO volume has recovered from an unclean shutdown.read-only recovery countβ the number of times a VDO volume has been recovered from read-only mode (viavdo start --forceRebuild).operating modeβ indicates whether a VDO volume is operating normally, is in recovery mode, or is in read-only mode.recovery progress (%)β indicates online recovery progress, orN/Aif the volume is not in recovery mode.compressed fragments writtenβ the number of compressed fragments that have been written since the VDO volume was last restarted.compressed blocks writtenβ the number of physical blocks of compressed data that have been written since the VDO volume was last restarted.
and now, bestie, the plot twist π the remaining fields are primarily intended for software support and are subject to change in future releases β so management tools should not rely upon them. not their fault, they're just built different.
compressed fragments in packerβ the number of compressed fragments being processed that have not yet been written.slab countβ the total number of slabs.slabs openedβ the total number of slabs from which blocks have ever been allocated.slabs reopenedβ the number of times slabs have been re-opened since the VDO was started.journal disk full countβ the number of times a request could not make a recovery journal entry because the recovery journal was full.journal commits requested countβ the number of times the recovery journal requested slab journal commits.journal entries batchingβ the number of journal entry writes started minus the number of journal entries written.journal entries startedβ the number of journal entries which have been made in memory.journal entries writingβ the number of journal entries in submitted writes minus the number of journal entries committed to storage.journal entries writtenβ the total number of journal entries for which a write has been issued.journal entries committedβ the number of journal entries written to storage.journal blocks batchingβ the number of journal block writes started minus the number of journal blocks written.journal blocks startedβ the number of journal blocks which have been touched in memory.journal blocks writingβ the number of journal blocks written (with metadatata in active memory) minus the number of journal blocks committed.journal blocks writtenβ the total number of journal blocks for which a write has been issued.journal blocks committedβ the number of journal blocks written to storage.slab journal disk full countβ the number of times an on-disk slab journal was full.slab journal flush countβ the number of times an entry was added to a slab journal that was over the flush threshold.slab journal blocked countβ the number of times an entry was added to a slab journal that was over the blocking threshold.slab journal blocks writtenβ the number of slab journal block writes issued.slab journal tail busy countβ the number of times write requests blocked waiting for a slab journal write.slab summary blocks writtenβ the number of slab summary block writes issued.reference blocks writtenβ the number of reference block writes issued.block map dirty pagesβ the number of dirty pages in the block map cache.block map clean pagesβ the number of clean pages in the block map cache.block map free pagesβ the number of free pages in the block map cache.block map failed pagesβ the number of block map cache pages that have write errors.block map incoming pagesβ the number of block map cache pages that are being read into the cache.block map outgoing pagesβ the number of block map cache pages that are being written.block map cache pressureβ the number of times a free page was not available when needed.block map read countβ the total number of block map page reads.block map write countβ the total number of block map page writes.block map failed readsβ the total number of block map read errors.block map failed writesβ the total number of block map write errors.block map reclaimedβ the total number of block map pages that were reclaimed.block map read outgoingβ the total number of block map reads for pages that were being written.block map found in cacheβ the total number of block map cache hits.block map discard requiredβ the total number of block map requests that required a page to be discarded.block map wait for pageβ the total number of requests that had to wait for a page.block map fetch requiredβ the total number of requests that required a page fetch.block map pages loadedβ the total number of page fetches.block map pages savedβ the total number of page saves.block map flush countβ the total number of flushes issued by the block map.invalid advice PBN countβ the number of times the index returned invalid advice.no space error countβ the number of write requests which failed due to the VDO volume being out of space.read only error countβ the number of write requests which failed due to the VDO volume being in read-only mode.instanceβ the VDO instance.512 byte emulationβ indicates whether 512 byte emulation is on or off for the volume.current VDO IO requests in progressβ the number of I/O requests the VDO is current processing.maximum VDO IO requests in progressβ the maximum number of simultaneous I/O requests the VDO has processed.current dedupe queriesβ the number of deduplication queries currently in flight.maximum dedupe queriesβ the maximum number of in-flight deduplication queries.dedupe advice validβ the number of times deduplication advice was correct.dedupe advice staleβ the number of times deduplication advice was incorrect.dedupe advice timeoutsβ the number of times deduplication queries timed out.concurrent data matchesβ the number of writes with the same data as another in-flight write.concurrent hash collisionsβ the number of writes whose hash collided with an in-flight write.
πΈ and that's a wrap on this part, bestie β more of vdostats is coming right up, don't go anywhere π
flush outβ how many flush requests VDO sent down to the underlying storage. bye girl, go flush πwrite amplification ratioβ the average number of block writes that hit the underlying storage for every single block written to the VDO device. it's giving "one in, many out" and honestly? concerning π«Άbios in...,bios in partial...,bios out...,bios meta...,bios journal...,bios page cache...,bios out completed...,bios meta completed...,bios journal completed...,bios page cache completed...,bios acknowledged...,bios acknowledged partial...,bios in progress...β okay bestie these all count up the number of bios in each category that carry a given flag. the categories are, and stay with me:bios inβ how many block I/O requests VDO received. the receipts, incoming π₯bios in partialβ how many partial block I/O requests VDO received. only applies in 512-byte emulation mode, fyi.bios outβ how many non-metadata block I/O requests VDO sent out to the storage device.bios metaβ how many metadata block I/O requests VDO sent out to the storage device.bios journalβ how many recovery journal block I/O requests VDO sent out to the storage device.bios page cacheβ how many block map I/O requests VDO sent out to the storage device.bios out completedβ how many non-metadata block I/O requests the storage device finished. slay, done β¨bios meta completedβ how many metadata block I/O requests the storage device finished.bios journal completedβ how many recovery journal block I/O requests the storage device finished.bios page cache completedβ how many block map I/O requests the storage device finished.bios acknowledgedβ how many block I/O requests VDO acknowledged.bios acknowledged partialβ how many partial block I/O requests VDO acknowledged. again, 512-byte emulation mode only, no cap.bios in progressβ how many bios got submitted to the VDO and haven't been acknowledged yet. the "still cooking" pile ππ₯
and there are five types of flags, periodt:
readβ the number of non-write bios (bios that do not have theREQ_WRITEflag set)writeβ the number of write bios (bios with theREQ_WRITEflag set)discardβ the number of bios with aREQ_DISCARDflag setflushβ the number of flush bios (bios with theREQ_FLUSHflag set)fuaβ the number of "force unit access" bios (bios with theREQ_FUAflag set)
lowkey important: every single bio gets counted as either a read bio or a write bio, depending on how the REQ_WRITE flag is set β no matter whether any of the other flags are set too. it's one or the other, always. π
KVDO module bytes usedβ the current count of bytes the kernel VDO module has allocated. right now. as we speak.KVDO module peak bytes usedβ the peak count of bytes the kernel VDO module has allocated since it was loaded. the high score, the record, the main character moment π
πΈ EXAMPLES πΈ
here's what it looks like when you pass no options at all, bestie:
Device 1K-blocks Used Available Use% Space Saving%
/dev/mapper/my_vdo 1932562432 427698104 1504864328 22% 21%
now with the --human-readable option, the block counts get converted into conventional units (that's 1 KB = 1024 bytes):
Device Size Used Available Use% Space Saving%
/dev/mapper/my_vdo 1.8T 407.9G 1.4T 22% 21%
and with the --si option too, the block counts get reported in SI units (so 1 KB = 1000 bytes):
Device Size Used Available Use% Space Saving%
/dev/mapper/my_vdo 2.0T 438G 1.5T 22% 21%
look at that glow-up π
π NOTES π
if an unprivileged user runs this command, the output may be incomplete. yeah. that's the vibe. it's giving "you didn't get the full tea because permissions said no" π
π¦ SEE ALSO π¦
vdo(8).
and that's the whole page, bestie!! this one came from Red Hat, dated 2020-02-18, and it's the VDOSTATS(8) manual page. go forth and read your stats, you absolute icon πβ¨
π¦ where this page comes from
- centos-stream 10: vdo 8.3.2.1-1.el10 Β· GPL-2.0-only
- centos-stream 9: vdo 8.2.2.2-1.el9 Β· GPLv2
- debian trixie: vdo 8.3.1.1-1 Β· GPL-2.0-or-later
- fedora 43: vdo 8.3.0.73-2.fc43 Β· GPL-2.0-only
- fedora 44: vdo 8.3.2.1-2.fc44 Β· GPL-2.0-only
- nixos 26.05: vdo 8.3.2.1
- nixpkgs unstable: vdo 8.3.2.1
- ubuntu questing: vdo 8.3.1.1-1
- ubuntu resolute: vdo 8.3.1.1-1build1 Β· GPL-2.0-or-later
- ubuntu stonking: vdo 8.3.1.1-1build1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms