Documentation ¶
Index ¶
- func AlignedBlock(BlockSize int) []byte
- func DisableDirectIO(f *os.File) error
- func Fdatasync(f *os.File) error
- func GetOBDInfo(ctx context.Context, drive, fsPath string) (Latency, Throughput, error)
- func IsRootDisk(diskPath string) (bool, error)
- func OpenFileDirectIO(filePath string, flag int, perm os.FileMode) (*os.File, error)
- type Info
- type Latency
- type Throughput
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AlignedBlock ¶
AlignedBlock - pass through to directio implementation.
func DisableDirectIO ¶
DisableDirectIO - disables directio mode.
func Fdatasync ¶
Fdatasync - fdatasync() is similar to fsync(), but does not flush modified metadata unless that metadata is needed in order to allow a subsequent data retrieval to be correctly handled. For example, changes to st_atime or st_mtime (respectively, time of last access and time of last modification; see inode(7)) do not require flushing because they are not necessary for a subsequent data read to be handled correctly. On the other hand, a change to the file size (st_size, as made by say ftruncate(2)), would require a metadata flush.
The aim of fdatasync() is to reduce disk activity for applications that do not require all metadata to be synchronized with the disk.
func GetOBDInfo ¶
GetOBDInfo about the drive
func IsRootDisk ¶
IsRootDisk returns if diskPath belongs to root-disk, i.e the disk mounted at "/"
Types ¶
type Info ¶
type Info struct { Total uint64 Free uint64 Files uint64 Ffree uint64 FSType string // Usage is calculated per tenant. Usage uint64 }
Info stat fs struct is container which holds following values Total - total size of the volume / disk Free - free size of the volume / disk Files - total inodes available Ffree - free inodes available FSType - file system type
type Latency ¶
type Latency struct { Avg float64 `json:"avg_secs,omitempty"` Percentile50 float64 `json:"percentile50_secs,omitempty"` Percentile90 float64 `json:"percentile90_secs,omitempty"` Percentile99 float64 `json:"percentile99_secs,omitempty"` Min float64 `json:"min_secs,omitempty"` Max float64 `json:"max_secs,omitempty"` }
Latency holds latency information for write operations to the drive
type Throughput ¶
type Throughput struct { Avg float64 `json:"avg_bytes_per_sec,omitempty"` Percentile50 float64 `json:"percentile50_bytes_per_sec,omitempty"` Percentile90 float64 `json:"percentile90_bytes_per_sec,omitempty"` Percentile99 float64 `json:"percentile99_bytes_per_sec,omitempty"` Min float64 `json:"min_bytes_per_sec,omitempty"` Max float64 `json:"max_bytes_per_sec,omitempty"` }
Throughput holds throughput information for write operations to the drive