Documentation ¶
Index ¶
- Constants
- Variables
- func DefaultCPUBurstConfig() slov1alpha1.CPUBurstConfig
- func DefaultCPUBurstStrategy() *slov1alpha1.CPUBurstStrategy
- func DefaultCPUQoS(qos apiext.QoSClass) *slov1alpha1.CPUQoS
- func DefaultMemoryQoS(qos apiext.QoSClass) *slov1alpha1.MemoryQoS
- func DefaultNodeSLOSpecConfig() slov1alpha1.NodeSLOSpec
- func DefaultResctrlQoS(qos apiext.QoSClass) *slov1alpha1.ResctrlQoS
- func DefaultResourceQoSStrategy() *slov1alpha1.ResourceQoSStrategy
- func DefaultResourceThresholdStrategy() *slov1alpha1.ResourceThresholdStrategy
- func DumpJSON(o interface{}) string
- func FindContainerIdAndStatusByName(status *corev1.PodStatus, name string) (string, *corev1.ContainerStatus, error)
- func GenerateCPUSetStr(cpuset []int32) string
- func GetCPUStatUsageTicks() (uint64, error)
- func GetContainerBEMemoryByteLimit(c *corev1.Container) int64
- func GetContainerBEMemoryByteRequest(c *corev1.Container) int64
- func GetContainerBEMilliCPULimit(c *corev1.Container) int64
- func GetContainerBEMilliCPURequest(c *corev1.Container) int64
- func GetContainerBaseCFSQuota(container *corev1.Container) int64
- func GetContainerCPUStatUsageTicks(podCgroupDir string, c *corev1.ContainerStatus) (uint64, error)
- func GetContainerCgroupCFSPeriodPath(podParentDir string, c *corev1.ContainerStatus) (string, error)
- func GetContainerCgroupCFSQuotaPath(podParentDir string, c *corev1.ContainerStatus) (string, error)
- func GetContainerCgroupCPUAcctProcStatPath(podParentDir string, c *corev1.ContainerStatus) (string, error)
- func GetContainerCgroupCPUSharePath(podParentDir string, c *corev1.ContainerStatus) (string, error)
- func GetContainerCgroupCPUStatPath(podParentDir string, c *corev1.ContainerStatus) (string, error)
- func GetContainerCgroupMemLimitPath(podParentDir string, c *corev1.ContainerStatus) (string, error)
- func GetContainerCgroupMemStatPath(podParentDir string, c *corev1.ContainerStatus) (string, error)
- func GetContainerCgroupPathWithKube(podParentDir string, c *corev1.ContainerStatus) (string, error)
- func GetContainerCurCFSPeriod(podParentDir string, c *corev1.ContainerStatus) (int64, error)
- func GetContainerCurCFSQuota(podParentDir string, c *corev1.ContainerStatus) (int64, error)
- func GetContainerCurCPUShare(podParentDir string, c *corev1.ContainerStatus) (int64, error)
- func GetContainerCurMemLimitBytes(podParentDir string, c *corev1.ContainerStatus) (int64, error)
- func GetContainerCurTasks(podParentDir string, c *corev1.ContainerStatus) ([]int, error)
- func GetContainerCurTasksPath(podParentDir string, c *corev1.ContainerStatus) (string, error)
- func GetContainerMemStatUsageBytes(podCgroupDir string, c *corev1.ContainerStatus) (int64, error)
- func GetContainerMemoryByteLimit(c *corev1.Container) int64
- func GetContainerMilliCPULimit(c *corev1.Container) int64
- func GetFastLabelSelector(ps *metav1.LabelSelector) (labels.Selector, error)
- func GetKubeQoSByCgroupParent(cgroupDir string) corev1.PodQOSClass
- func GetKubeQosClass(pod *corev1.Pod) corev1.PodQOSClass
- func GetKubeQosRelativePath(qosClass corev1.PodQOSClass) string
- func GetMemInfoUsageKB() (int64, error)
- func GetNodeAddress(node *corev1.Node, addrType corev1.NodeAddressType) (string, error)
- func GetNodeKey(node *corev1.Node) string
- func GetNodeMetricKey(nodeMetric *slov1alpha1.NodeMetric) string
- func GetPodBEMemoryByteLimit(pod *corev1.Pod) int64
- func GetPodBEMemoryByteRequestIgnoreUnlimited(pod *corev1.Pod) int64
- func GetPodBEMilliCPULimit(pod *corev1.Pod) int64
- func GetPodBEMilliCPURequest(pod *corev1.Pod) int64
- func GetPodCPUStatUsageTicks(podCgroupDir string) (uint64, error)
- func GetPodCgroupCFSPeriodPath(podParentDir string) string
- func GetPodCgroupCFSQuotaPath(podParentDir string) string
- func GetPodCgroupCPUAcctProcStatPath(podParentDir string) string
- func GetPodCgroupCPUSharePath(podParentDir string) string
- func GetPodCgroupCPUStatPath(podParentDir string) string
- func GetPodCgroupDirWithKube(podKubeRelativeDir string) string
- func GetPodCgroupMemLimitPath(podParentDir string) string
- func GetPodCgroupMemStatPath(podParentDir string) string
- func GetPodCurCFSPeriod(podParentDir string) (int64, error)
- func GetPodCurCFSQuota(podParentDir string) (int64, error)
- func GetPodCurCPUShare(podParentDir string) (int64, error)
- func GetPodCurMemLimitBytes(podParentDir string) (int64, error)
- func GetPodKey(pod *corev1.Pod) string
- func GetPodKubeRelativePath(pod *corev1.Pod) string
- func GetPodMemStatUsageBytes(podCgroupDir string) (int64, error)
- func GetPodMetricKey(podMetric *slov1alpha1.PodMetricInfo) string
- func GetPodQoSRelativePath(qosClass corev1.PodQOSClass) string
- func GetPodRequest(pod *corev1.Pod, resourceNames ...corev1.ResourceName) corev1.ResourceList
- func GetRootCgroupCPUSetDir(qosClass corev1.PodQOSClass) string
- func GetRootCgroupCPUStatUsageTicks(qosClass corev1.PodQOSClass) (uint64, error)
- func GetRootCgroupCurCFSPeriod(qosClass corev1.PodQOSClass) (int64, error)
- func GetRootCgroupCurCFSQuota(qosClass corev1.PodQOSClass) (int64, error)
- func GetRootCgroupCurCPUSet(qosClass corev1.PodQOSClass) ([]int32, error)
- func IsNodeAddressTypeSupported(addrType corev1.NodeAddressType) bool
- func IsPodTerminated(pod *corev1.Pod) bool
- func IsResourceDiff(old, new corev1.ResourceList, resourceName corev1.ResourceName, ...) bool
- func MaxInt64(i, j int64) int64
- func MergeCPUSet(old, new []int32) []int32
- func MergeCfg(old, new interface{}) (interface{}, error)
- func MinInt64(i, j int64) int64
- func MultiplyMilliQuant(quant resource.Quantity, factor float64) resource.Quantity
- func MultiplyQuant(quant resource.Quantity, factor float64) resource.Quantity
- func NewZeroResourceList() corev1.ResourceList
- func NoneCPUQoS() *slov1alpha1.CPUQoS
- func NoneMemoryQoS() *slov1alpha1.MemoryQoS
- func NoneResctrlQoS() *slov1alpha1.ResctrlQoS
- func NoneResourceQoS(qos apiext.QoSClass) *slov1alpha1.ResourceQoS
- func NoneResourceQoSStrategy() *slov1alpha1.ResourceQoSStrategy
- func ParseCPUSetStr(cpusetStr string) ([]int32, error)
- func ParseContainerID(basename string) (string, error)
- func ParseContainerId(data string) (cType, cID string, err error)
- func ParsePodID(basename string) (string, error)
- func RunFeature(moduleFunc func(), featureDependency []featuregate.Feature, interval int, ...) bool
- func RunFeatureWithInit(moduleInit func() error, moduleFunc func(), ...) (bool, error)
- func WriteCgroupCPUSet(cgroupFileDir, cpusetStr string) error
- type CPUBasicInfo
- type CPUTotalInfo
- type LocalCPUInfo
- type MemInfo
- type ProcessorInfo
Constants ¶
const (
ProcMemInfoPath = "/proc/meminfo"
)
Variables ¶
var (
CpuacctUsageTypeStat = sets.NewString("user", "nice", "system", "irq", "softirq")
)
Functions ¶
func DefaultCPUBurstConfig ¶ added in v0.3.0
func DefaultCPUBurstConfig() slov1alpha1.CPUBurstConfig
func DefaultCPUBurstStrategy ¶ added in v0.3.0
func DefaultCPUBurstStrategy() *slov1alpha1.CPUBurstStrategy
func DefaultCPUQoS ¶ added in v0.4.0
func DefaultCPUQoS(qos apiext.QoSClass) *slov1alpha1.CPUQoS
func DefaultMemoryQoS ¶ added in v0.3.0
func DefaultMemoryQoS(qos apiext.QoSClass) *slov1alpha1.MemoryQoS
DefaultMemoryQoS returns the recommended configuration for memory qos strategy. Please refer to `apis/slo/v1alpha1` for the definition of each field. In the recommended configuration, all abilities of memcg qos are disable, including `MinLimitPercent`, `LowLimitPercent`, `ThrottlingPercent` since they are not fully beneficial to all scenarios. Whereas, they are still useful when the use case is determined. e.g. lock some memory to improve file read performance. Asynchronous memory reclaim is enabled by default to alleviate the direct reclaim pressure, including `WmarkRatio` and `WmarkScalePermill`. The watermark of async reclaim is not recommended to set too low, since lower the watermark the more excess reclamations. Memory min watermark grading corresponding to `WmarkMinAdj` is enabled. It benefits high-priority pods by postponing global reclaim when machine's free memory is below than `/proc/sys/vm/min_free_kbytes`.
func DefaultNodeSLOSpecConfig ¶
func DefaultNodeSLOSpecConfig() slov1alpha1.NodeSLOSpec
DefaultNodeSLOSpecConfig defines the default config of the nodeSLOSpec, which would be used by the resmgr
func DefaultResctrlQoS ¶ added in v0.3.0
func DefaultResctrlQoS(qos apiext.QoSClass) *slov1alpha1.ResctrlQoS
TODO https://github.com/koordinator-sh/koordinator/pull/94#discussion_r858786733
func DefaultResourceQoSStrategy ¶ added in v0.3.0
func DefaultResourceQoSStrategy() *slov1alpha1.ResourceQoSStrategy
func DefaultResourceThresholdStrategy ¶
func DefaultResourceThresholdStrategy() *slov1alpha1.ResourceThresholdStrategy
func FindContainerIdAndStatusByName ¶ added in v0.2.0
func GenerateCPUSetStr ¶ added in v0.2.0
GenerateCPUSetStr generates the cpuset string from the cpuset slice eg. [3,2,1,0] => "3,2,1,0"
func GetCPUStatUsageTicks ¶ added in v0.2.0
GetCPUStatUsageTicks returns the node's CPU usage ticks
func GetContainerBEMemoryByteLimit ¶ added in v0.2.0
func GetContainerBEMemoryByteRequest ¶ added in v0.3.0
func GetContainerBEMilliCPULimit ¶ added in v0.2.0
func GetContainerBEMilliCPURequest ¶ added in v0.2.0
func GetContainerBaseCFSQuota ¶ added in v0.3.0
func GetContainerCPUStatUsageTicks ¶ added in v0.2.0
func GetContainerCPUStatUsageTicks(podCgroupDir string, c *corev1.ContainerStatus) (uint64, error)
func GetContainerCgroupCFSPeriodPath ¶ added in v0.2.0
func GetContainerCgroupCFSPeriodPath(podParentDir string, c *corev1.ContainerStatus) (string, error)
func GetContainerCgroupCFSQuotaPath ¶ added in v0.2.0
func GetContainerCgroupCFSQuotaPath(podParentDir string, c *corev1.ContainerStatus) (string, error)
func GetContainerCgroupCPUAcctProcStatPath ¶ added in v0.2.0
func GetContainerCgroupCPUAcctProcStatPath(podParentDir string, c *corev1.ContainerStatus) (string, error)
func GetContainerCgroupCPUSharePath ¶ added in v0.2.0
func GetContainerCgroupCPUSharePath(podParentDir string, c *corev1.ContainerStatus) (string, error)
func GetContainerCgroupCPUStatPath ¶ added in v0.2.0
func GetContainerCgroupCPUStatPath(podParentDir string, c *corev1.ContainerStatus) (string, error)
func GetContainerCgroupMemLimitPath ¶ added in v0.2.0
func GetContainerCgroupMemLimitPath(podParentDir string, c *corev1.ContainerStatus) (string, error)
func GetContainerCgroupMemStatPath ¶ added in v0.2.0
func GetContainerCgroupMemStatPath(podParentDir string, c *corev1.ContainerStatus) (string, error)
func GetContainerCgroupPathWithKube ¶ added in v0.2.0
func GetContainerCgroupPathWithKube(podParentDir string, c *corev1.ContainerStatus) (string, error)
@parentDir kubepods-burstable.slice/kubepods-pod7712555c_ce62_454a_9e18_9ff0217b8941.slice/ @return kubepods.slice/kubepods-burstable.slice/kubepods-pod7712555c_ce62_454a_9e18_9ff0217b8941.slice/****.scope
func GetContainerCurCFSPeriod ¶ added in v0.2.0
func GetContainerCurCFSPeriod(podParentDir string, c *corev1.ContainerStatus) (int64, error)
func GetContainerCurCFSQuota ¶ added in v0.2.0
func GetContainerCurCFSQuota(podParentDir string, c *corev1.ContainerStatus) (int64, error)
func GetContainerCurCPUShare ¶ added in v0.2.0
func GetContainerCurCPUShare(podParentDir string, c *corev1.ContainerStatus) (int64, error)
func GetContainerCurMemLimitBytes ¶ added in v0.2.0
func GetContainerCurMemLimitBytes(podParentDir string, c *corev1.ContainerStatus) (int64, error)
func GetContainerCurTasks ¶ added in v0.3.0
func GetContainerCurTasks(podParentDir string, c *corev1.ContainerStatus) ([]int, error)
func GetContainerCurTasksPath ¶ added in v0.3.0
func GetContainerCurTasksPath(podParentDir string, c *corev1.ContainerStatus) (string, error)
func GetContainerMemStatUsageBytes ¶ added in v0.2.0
func GetContainerMemStatUsageBytes(podCgroupDir string, c *corev1.ContainerStatus) (int64, error)
func GetContainerMemoryByteLimit ¶ added in v0.3.0
func GetContainerMilliCPULimit ¶ added in v0.3.0
func GetFastLabelSelector ¶
func GetFastLabelSelector(ps *metav1.LabelSelector) (labels.Selector, error)
func GetKubeQoSByCgroupParent ¶ added in v0.4.0
func GetKubeQoSByCgroupParent(cgroupDir string) corev1.PodQOSClass
func GetKubeQosClass ¶ added in v0.2.0
func GetKubeQosClass(pod *corev1.Pod) corev1.PodQOSClass
func GetKubeQosRelativePath ¶ added in v0.2.0
func GetKubeQosRelativePath(qosClass corev1.PodQOSClass) string
@output like kubepods.slice/kubepods-besteffort.slice/
func GetMemInfoUsageKB ¶ added in v0.2.0
GetMemInfoUsageKB returns the node's memory usage quantity (kB)
func GetNodeAddress ¶ added in v0.4.1
GetNodeAddress get node specified type address.
func GetNodeKey ¶
GetNodeKey returns a generated key with given node
func GetNodeMetricKey ¶
func GetNodeMetricKey(nodeMetric *slov1alpha1.NodeMetric) string
GetNodeMetricKey returns a generated key with given nodeMetric
func GetPodBEMemoryByteLimit ¶ added in v0.2.0
func GetPodBEMemoryByteRequestIgnoreUnlimited ¶ added in v0.3.0
func GetPodBEMilliCPULimit ¶ added in v0.2.0
func GetPodBEMilliCPURequest ¶ added in v0.2.0
func GetPodCPUStatUsageTicks ¶ added in v0.2.0
GetPodCPUStatUsageTicks returns the pod's CPU usage ticks
func GetPodCgroupCFSPeriodPath ¶ added in v0.2.0
func GetPodCgroupCFSQuotaPath ¶ added in v0.2.0
@podParentDir kubepods-burstable.slice/kubepods-pod7712555c_ce62_454a_9e18_9ff0217b8941.slice/ @output /sys/fs/cgroup/cpu/kubepods.slice/kubepods-burstable.slice/kubepods-pod7712555c_ce62_454a_9e18_9ff0217b8941.slice/cpu.cfs_quota_us
func GetPodCgroupCPUAcctProcStatPath ¶ added in v0.2.0
@podParentDir kubepods-burstable.slice/kubepods-pod7712555c_ce62_454a_9e18_9ff0217b8941.slice/ @output /sys/fs/cgroup/cpuacct/kubepods.slice/kubepods-burstable.slice/kubepods-pod7712555c_ce62_454a_9e18_9ff0217b8941.slice/cpuacct.proc_stat
func GetPodCgroupCPUSharePath ¶ added in v0.2.0
@podParentDir kubepods-burstable.slice/kubepods-pod7712555c_ce62_454a_9e18_9ff0217b8941.slice/ @output /sys/fs/cgroup/cpu/kubepods.slice/kubepods-burstable.slice/kubepods-pod7712555c_ce62_454a_9e18_9ff0217b8941.slice/cpu.shares
func GetPodCgroupCPUStatPath ¶ added in v0.2.0
@podParentDir kubepods-burstable.slice/kubepods-pod7712555c_ce62_454a_9e18_9ff0217b8941.slice/ @output /sys/fs/cgroup/cpu/kubepods.slice/kubepods-burstable.slice/kubepods-pod7712555c_ce62_454a_9e18_9ff0217b8941.slice/cpu.stat
func GetPodCgroupDirWithKube ¶ added in v0.2.0
@kubeRelativeDir kubepods-burstable.slice/kubepods-pod7712555c_ce62_454a_9e18_9ff0217b8941.slice/ @return kubepods.slice/kubepods-burstable.slice/kubepods-pod7712555c_ce62_454a_9e18_9ff0217b8941.slice/
func GetPodCgroupMemLimitPath ¶ added in v0.2.0
@podParentDir kubepods-burstable.slice/kubepods-pod7712555c_ce62_454a_9e18_9ff0217b8941.slice/ @output /sys/fs/cgroup/memory/kubepods.slice/kubepods-burstable.slice/kubepods-pod7712555c_ce62_454a_9e18_9ff0217b8941.slice/memory.limit_in_bytes
func GetPodCgroupMemStatPath ¶ added in v0.2.0
@podParentDir kubepods-burstable.slice/kubepods-pod7712555c_ce62_454a_9e18_9ff0217b8941.slice/ @output /sys/fs/cgroup/memory/kubepods.slice/kubepods-burstable.slice/kubepods-pod7712555c_ce62_454a_9e18_9ff0217b8941.slice/memory.stat
func GetPodCurCFSPeriod ¶ added in v0.2.0
func GetPodCurCFSQuota ¶ added in v0.2.0
func GetPodCurCPUShare ¶ added in v0.2.0
func GetPodCurMemLimitBytes ¶ added in v0.2.0
func GetPodKubeRelativePath ¶ added in v0.2.0
@return like kubepods-burstable.slice/kubepods-pod7712555c_ce62_454a_9e18_9ff0217b8941.slice/
func GetPodMemStatUsageBytes ¶ added in v0.2.0
GetPodMemStatUsageBytes returns the pod's memory usage quantity (Byte)
func GetPodMetricKey ¶
func GetPodMetricKey(podMetric *slov1alpha1.PodMetricInfo) string
func GetPodQoSRelativePath ¶ added in v0.2.0
func GetPodQoSRelativePath(qosClass corev1.PodQOSClass) string
@return like kubepods.slice/kubepods-burstable.slice/
func GetPodRequest ¶
func GetPodRequest(pod *corev1.Pod, resourceNames ...corev1.ResourceName) corev1.ResourceList
func GetRootCgroupCPUSetDir ¶ added in v0.2.0
func GetRootCgroupCPUSetDir(qosClass corev1.PodQOSClass) string
GetRootCgroupCPUSetDir gets the cpuset parent directory of the specified podQos' root cgroup @output /sys/fs/cgroup/cpuset/kubepods.slice/kubepods-besteffort.slice
func GetRootCgroupCPUStatUsageTicks ¶ added in v0.4.0
func GetRootCgroupCPUStatUsageTicks(qosClass corev1.PodQOSClass) (uint64, error)
func GetRootCgroupCurCFSPeriod ¶ added in v0.4.0
func GetRootCgroupCurCFSPeriod(qosClass corev1.PodQOSClass) (int64, error)
func GetRootCgroupCurCFSQuota ¶ added in v0.4.0
func GetRootCgroupCurCFSQuota(qosClass corev1.PodQOSClass) (int64, error)
func GetRootCgroupCurCPUSet ¶ added in v0.2.0
func GetRootCgroupCurCPUSet(qosClass corev1.PodQOSClass) ([]int32, error)
GetRootCgroupCurCPUSet gets the current cpuset of the specified podQos' root cgroup
func IsNodeAddressTypeSupported ¶ added in v0.4.1
func IsNodeAddressTypeSupported(addrType corev1.NodeAddressType) bool
IsNodeAddressTypeSupported determine whether addrType is a supported type.
func IsPodTerminated ¶ added in v0.4.0
func IsResourceDiff ¶
func IsResourceDiff(old, new corev1.ResourceList, resourceName corev1.ResourceName, diffThreshold float64) bool
IsResourceDiff returns whether the new resource has big enough difference with the old one or not
func MergeCPUSet ¶ added in v0.2.0
MergeCPUSet merges the old cpuset with the new one, and also deduplicate and keeps a desc order by processor ids e.g. [1,0], [3,2,2,1] => [3,2,1,0]
func MergeCfg ¶ added in v0.2.0
func MergeCfg(old, new interface{}) (interface{}, error)
MergeCfg returns a merged interface. Value in new will override old's when both fields exist. It will throw an error if:
- either of the inputs was nil;
- inputs were not a pointer of the same json struct.
func MultiplyMilliQuant ¶
MultiplyMilliQuant scales quantity by factor
func MultiplyQuant ¶
MultiplyQuant scales quantity by factor
func NewZeroResourceList ¶
func NewZeroResourceList() corev1.ResourceList
func NoneCPUQoS ¶ added in v0.4.0
func NoneCPUQoS() *slov1alpha1.CPUQoS
func NoneMemoryQoS ¶ added in v0.3.0
func NoneMemoryQoS() *slov1alpha1.MemoryQoS
NoneMemoryQoS returns the all-disabled configuration for memory qos strategy.
func NoneResctrlQoS ¶ added in v0.3.0
func NoneResctrlQoS() *slov1alpha1.ResctrlQoS
func NoneResourceQoS ¶ added in v0.3.0
func NoneResourceQoS(qos apiext.QoSClass) *slov1alpha1.ResourceQoS
func NoneResourceQoSStrategy ¶ added in v0.3.0
func NoneResourceQoSStrategy() *slov1alpha1.ResourceQoSStrategy
NoneResourceQoSStrategy indicates the qos strategy with all qos
func ParseCPUSetStr ¶ added in v0.2.0
ParseCPUSetStr parses cpuset string into a slice eg. "0-5,34,46-48" => [0,1,2,3,4,5,34,46,47,48]
func ParseContainerID ¶ added in v0.2.0
@return 7712555c_ce62_454a_9e18_9ff0217b8941 from docker-7712555c_ce62_454a_9e18_9ff0217b8941.scope
func ParseContainerId ¶ added in v0.2.0
func ParsePodID ¶ added in v0.2.0
@return 7712555c_ce62_454a_9e18_9ff0217b8941 from kubepods-pod7712555c_ce62_454a_9e18_9ff0217b8941.slice
func RunFeature ¶ added in v0.2.0
func RunFeature(moduleFunc func(), featureDependency []featuregate.Feature, interval int, stopCh <-chan struct{}) bool
RunFeature runs moduleFunc only if interval > 0 AND at least one feature dependency is enabled
func RunFeatureWithInit ¶ added in v0.2.0
func RunFeatureWithInit(moduleInit func() error, moduleFunc func(), featureDependency []featuregate.Feature, interval int, stopCh <-chan struct{}) (bool, error)
RunFeatureWithInit runs moduleFunc only if interval > 0 , at least one feature dependency is enabled and moduleInit function returns nil
func WriteCgroupCPUSet ¶ added in v0.2.0
WriteCgroupCPUSet writes the cgroup cpuset file according to the specified cgroup dir
Types ¶
type CPUBasicInfo ¶ added in v0.2.0
type CPUBasicInfo struct { HyperThreadEnabled bool `json:"hyperThreadEnabled,omitempty"` CatL3CbmMask string `json:"catL3CbmMask,omitempty"` }
CPUBasicInfo describes the cpu basic features and status
type CPUTotalInfo ¶ added in v0.2.0
type CPUTotalInfo struct { NumberCPUs int32 `json:"numberCPUs"` NumberCores int32 `json:"numberCores"` NumberSockets int32 `json:"numberSockets"` NumberNodes int32 `json:"numberNodes"` NumberL3s int32 `json:"numberL3s"` }
CPUTotalInfo describes the total number infos of the local cpu, e.g. the number of cores, the number of numa nodes
type LocalCPUInfo ¶ added in v0.2.0
type LocalCPUInfo struct { // BasicInfo describe the cpu features and their status BasicInfo CPUBasicInfo `json:"basicInfo,omitempty"` // ProcessorInfos contains topology information of all available CPUs ProcessorInfos []ProcessorInfo `json:"processorInfos,omitempty"` // TotalInfo stores the numbers of cpu processors, cores, sockets and nodes TotalInfo CPUTotalInfo `json:"totalInfo,omitempty"` }
LocalCPUInfo contains the cpu information collected from the node
func GetLocalCPUInfo ¶ added in v0.2.0
func GetLocalCPUInfo() (*LocalCPUInfo, error)
GetLocalCPUInfo returns the local cpu info for cpuset allocation, NUMA-aware scheduling
type MemInfo ¶ added in v0.2.0
type MemInfo struct { MemTotal uint64 `json:"mem_total"` MemFree uint64 `json:"mem_free"` MemAvailable uint64 `json:"mem_available"` Buffers uint64 `json:"buffers"` Cached uint64 `json:"cached"` SwapCached uint64 `json:"swap_cached"` Active uint64 `json:"active"` Inactive uint64 `json:"inactive"` ActiveAnon uint64 `json:"active_anon" field:"Active(anon)"` InactiveAnon uint64 `json:"inactive_anon" field:"Inactive(anon)"` ActiveFile uint64 `json:"active_file" field:"Active(file)"` InactiveFile uint64 `json:"inactive_file" field:"Inactive(file)"` Unevictable uint64 `json:"unevictable"` Mlocked uint64 `json:"mlocked"` SwapTotal uint64 `json:"swap_total"` SwapFree uint64 `json:"swap_free"` Dirty uint64 `json:"dirty"` Writeback uint64 `json:"write_back"` AnonPages uint64 `json:"anon_pages"` Mapped uint64 `json:"mapped"` Shmem uint64 `json:"shmem"` Slab uint64 `json:"slab"` SReclaimable uint64 `json:"s_reclaimable"` SUnreclaim uint64 `json:"s_unclaim"` KernelStack uint64 `json:"kernel_stack"` PageTables uint64 `json:"page_tables"` NFS_Unstable uint64 `json:"nfs_unstable"` Bounce uint64 `json:"bounce"` WritebackTmp uint64 `json:"writeback_tmp"` CommitLimit uint64 `json:"commit_limit"` Committed_AS uint64 `json:"committed_as"` VmallocTotal uint64 `json:"vmalloc_total"` VmallocUsed uint64 `json:"vmalloc_used"` VmallocChunk uint64 `json:"vmalloc_chunk"` HardwareCorrupted uint64 `json:"hardware_corrupted"` AnonHugePages uint64 `json:"anon_huge_pages"` HugePages_Total uint64 `json:"huge_pages_total"` HugePages_Free uint64 `json:"huge_pages_free"` HugePages_Rsvd uint64 `json:"huge_pages_rsvd"` HugePages_Surp uint64 `json:"huge_pages_surp"` Hugepagesize uint64 `json:"hugepagesize"` DirectMap4k uint64 `json:"direct_map_4k"` DirectMap2M uint64 `json:"direct_map_2M"` DirectMap1G uint64 `json:"direct_map_1G"` }
type ProcessorInfo ¶ added in v0.2.0
type ProcessorInfo struct { // logic CPU/ processor ID CPUID int32 `json:"cpu"` // physical CPU core ID CoreID int32 `json:"core"` // cpu socket ID SocketID int32 `json:"socket"` // numa node ID NodeID int32 `json:"node"` // L1 L2 cache ID L1dl1il2 string `json:"l1dl1il2"` // L3 cache ID L3 int32 `json:"l3"` // online Online string `json:"online"` }
ProcessorInfo describes the processor topology information of a single logic cpu, including the core, socket and numa node it belongs to