Documentation
¶
Index ¶
- Constants
- func ReadCPUPeriod(cgroup string) (period time.Duration, err error)
- func ReadCPUQuota(cgroup string) (quota time.Duration, err error)
- func ReadCPUShares(cgroup string) (shares int64, err error)
- func ReadMemoryLimit(pid int) (limit uint64, err error)
- func ReadOpenFileCount(pid int) (n uint64, err error)
- type CGroup
- type Limits
- type ProcCGroup
- type ProcLimits
- type ProcSched
- type ProcStat
- type ProcState
- type ProcStatm
Constants ¶
const (
Unlimited uint64 = 1<<64 - 1
)
Represents Linux's unlimited for resource limits.
Variables ¶
This section is empty.
Functions ¶
func ReadCPUPeriod ¶
ReadCPUPeriod takes a string representing a Linux cgroup and returns the period as a time.Duration that is applied for this cgroup and an error, if any.
func ReadCPUQuota ¶
ReadCPUQuota takes a string representing a Linux cgroup and returns the quota as a time.Duration that is applied for this cgroup and an error, if any.
func ReadCPUShares ¶
ReadCPUShares takes a string representing a Linux cgroup and returns an int64 representing the cpu shares allotted for this cgroup and an error, if any.
func ReadMemoryLimit ¶
ReadMemoryLimit returns the memory limit and an error, if any, for a PID.
func ReadOpenFileCount ¶
ReadOpenFileCount takes an int representing a PID and returns a uint64 representing the open file descriptor count for this process and an error, if any.
Types ¶
type ProcCGroup ¶
type ProcCGroup []CGroup
ProcCGroup is a type alias for a []CGroup.
func ParseProcCGroup ¶
func ParseProcCGroup(s string) (proc ProcCGroup, err error)
ParseProcCGroup parses Linux system cgroup data and returns a ProcCGroup and error, if any is encountered.
func ReadProcCGroup ¶
func ReadProcCGroup(pid int) (proc ProcCGroup, err error)
ReadProcCGroup takes an int argument representing a PID and returns a ProcCGroup and error, if any is encountered.
type ProcLimits ¶
type ProcLimits struct {
CPUTime Limits // seconds
FileSize Limits // bytes
DataSize Limits // bytes
StackSize Limits // bytes
CoreFileSize Limits // bytes
ResidentSet Limits // bytes
Processes Limits // processes
OpenFiles Limits // files
LockedMemory Limits // bytes
AddressSpace Limits // bytes
FileLocks Limits // locks
PendingSignals Limits // signals
MsgqueueSize Limits // bytes
NicePriority Limits
RealtimePriority Limits
RealtimeTimeout Limits
}
ProcLimits holds Limits for processes.
func ParseProcLimits ¶
func ParseProcLimits(s string) (proc ProcLimits, err error)
ParseProcLimits parses system process limits and returns a ProcLimits and error, if any.
func ReadProcLimits ¶
func ReadProcLimits(pid int) (proc ProcLimits, err error)
ReadProcLimits returns the ProcLimits and an error, if any, for a PID.
type ProcSched ¶
type ProcSched struct {
NRSwitches uint64 // nr_switches
NRVoluntarySwitches uint64 // nr_voluntary_switches
NRInvoluntarySwitches uint64 // nr_involuntary_switches
SEAvgLoadSum uint64 // se.avg.load_sum
SEAvgUtilSum uint64 // se.avg.util_sum
SEAvgLoadAvg uint64 // se.avg.load_avg
SEAvgUtilAvg uint64 // se.avg.util_avg
}
ProcSched contains statistics about process scheduling, utilization, and switches.
func ParseProcSched ¶
ParseProcSched processes system process scheduling data and returns a ProcSched and error, if any.
func ReadProcSched ¶
ReadProcSched returns a ProcSched and error, if any, for a PID.
type ProcStat ¶
type ProcStat struct {
Pid int32 // (1) pid
Comm string // (2) comm
State ProcState // (3) state
Ppid int32 // (4) ppid
Pgrp int32 // (5) prgp
Session int32 // (6) session
TTY int32 // (7) tty_nr
Tpgid int32 // (8) tpgid
Flags uint32 // (9) flags
Minflt uint64 // (10) minflt
Cminflt uint64 // (11) cminflt
Majflt uint64 // (12) majflt
Cmajflt uint64 // (13) cmajflt
Utime uint64 // (14) utime
Stime uint64 // (15) stime
Cutime int64 // (16) cutime
Cstime int64 // (17) cstime
Priority int64 // (18) priority
Nice int64 // (19) nice
NumThreads int64 // (20) num_threads
Itrealvalue int64 // (21) itrealvalue
Starttime uint64 // (22) starttime
Vsize uint64 // (23) vsize
Rss uint64 // (24) rss
Rsslim uint64 // (25) rsslim
Startcode uintptr // (26) startcode
Endcode uintptr // (27) endcode
Startstack uintptr // (28) startstack
Kstkeep uint64 // (29) kstkeep
Kstkeip uint64 // (30) kstkeip
Signal uint64 // (31) signal
Blocked uint64 // (32) blocked
Sigignore uint64 // (33) sigignore
Sigcatch uint64 // (34) sigcatch
Wchan uintptr // (35) wchan
Nswap uint64 // (36) nswap
Cnswap uint64 // (37) cnswap
ExitSignal int32 // (38) exit_signal
Processor int32 // (39) processor
RTPriority uint32 // (40) rt_priority
Policy uint32 // (41) policy
DelayacctBlkioTicks uint64 // (42) delayacct_blkio_ticks
GuestTime uint64 // (43) guest_time
CguestTime int64 // (44) cguest_time
StartData uintptr // (45) start_data
EndData uintptr // (46) end_data
StartBrk uintptr // (47) start_brk
ArgStart uintptr // (48) arg_start
ArgEnd uintptr // (49) arg_end
EnvStart uintptr // (50) env_start
EnvEnd uintptr // (51) env_end
ExitCode int32 // (52) exit_code
}
ProcStat contains statistics associated with a process.
func ParseProcStat ¶
ParseProcStat parses system process statistics and returns a ProcStat and error, if any.
func ReadProcStat ¶
ReadProcStat returns a ProcStat and error, if any, for a PID.
type ProcState ¶
type ProcState rune
ProcState represents the underlying OS state of a process.
const ( Running ProcState = 'R' Sleeping ProcState = 'S' WaitingUninterruptibleDiskSleep ProcState = 'D' Zombie ProcState = 'Z' Stopped ProcState = 'T' TracingStop ProcState = 't' Paging ProcState = 'P' Dead ProcState = 'X' //revive:disable-next-line Dead_ ProcState = 'x' Wakekill ProcState = 'W' Parked ProcState = 'P' )
Enumerated ProcStates.
type ProcStatm ¶
type ProcStatm struct {
Size uint64 // (1) size
Resident uint64 // (2) resident
Text uint64 // (4) text
Lib uint64 // (5) lib
Data uint64 // (6) data
Dt uint64 // (7) dt
}
ProcStatm contains statistics about memory utilization of a process.
func ParseProcStatm ¶
ParseProcStatm parses system proc data and returns a ProcStatm and error, if any.
func ReadProcStatm ¶
ReadProcStatm returns a ProcStatm and an error, if any, for a PID.