bcache

package
v0.0.0-...-9ed6e54 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 6, 2022 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package bcache provides access to statistics exposed by the bcache (Linux block cache).

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BcacheStats

type BcacheStats struct {
	AverageKeySize        uint64
	BtreeCacheSize        uint64
	CacheAvailablePercent uint64
	Congested             uint64
	RootUsagePercent      uint64
	TreeDepth             uint64
	Internal              InternalStats
	FiveMin               PeriodStats
	Total                 PeriodStats
}

BcacheStats contains statistics tied to a bcache ID.

type BdevStats

type BdevStats struct {
	Name               string
	DirtyData          uint64
	FiveMin            PeriodStats
	Total              PeriodStats
	WritebackRateDebug WritebackRateDebugStats
}

BdevStats contains statistics for one backing device.

type CacheStats

type CacheStats struct {
	Name            string
	IOErrors        uint64
	MetadataWritten uint64
	Written         uint64
	Priority        PriorityStats
}

CacheStats contains statistics for one cache device.

type FS

type FS struct {
	// contains filtered or unexported fields
}

FS represents the pseudo-filesystem proc, which provides an interface to kernel data structures.

func NewDefaultFS

func NewDefaultFS() (FS, error)

NewDefaultFS returns a new Bcache using the default sys fs mount point. It will error if the mount point can't be read.

func NewFS

func NewFS(mountPoint string) (FS, error)

NewFS returns a new Bcache using the given sys fs mount point. It will error if the mount point can't be read.

func (FS) Stats

func (fs FS) Stats() ([]*Stats, error)

Stats is a wrapper around stats() It returns full available statistics

func (FS) StatsWithoutPriority

func (fs FS) StatsWithoutPriority() ([]*Stats, error)

StatsWithoutPriority is a wrapper around stats(). It ignores priority_stats file, because it is expensive to read.

type InternalStats

type InternalStats struct {
	ActiveJournalEntries                uint64
	BtreeNodes                          uint64
	BtreeReadAverageDurationNanoSeconds uint64
	CacheReadRaces                      uint64
}

InternalStats contains internal bcache statistics.

type PeriodStats

type PeriodStats struct {
	Bypassed            uint64
	CacheBypassHits     uint64
	CacheBypassMisses   uint64
	CacheHits           uint64
	CacheMissCollisions uint64
	CacheMisses         uint64
	CacheReadaheads     uint64
}

PeriodStats contains statistics for a time period (5 min or total).

type PriorityStats

type PriorityStats struct {
	UnusedPercent   uint64
	MetadataPercent uint64
}

PriorityStats contains statistics from the priority_stats file.

type Stats

type Stats struct {
	// The name of the bcache used to source these statistics.
	Name   string
	Bcache BcacheStats
	Bdevs  []BdevStats
	Caches []CacheStats
}

Stats contains bcache runtime statistics, parsed from /sys/fs/bcache/.

The names and meanings of each statistic were taken from bcache.txt and files in drivers/md/bcache in the Linux kernel source. Counters are uint64 (in-kernel counters are mostly unsigned long).

func GetStats

func GetStats(uuidPath string, priorityStats bool) (*Stats, error)

GetStats collects from sysfs files data tied to one bcache ID.

type WritebackRateDebugStats

type WritebackRateDebugStats struct {
	Rate         uint64
	Dirty        uint64
	Target       uint64
	Proportional int64
	Integral     int64
	Change       int64
	NextIO       int64
}

WritebackRateDebugStats contains bcache writeback statistics.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL