Class LinuxCentralProcessor

    • Field Detail

      • LOG

        private static final org.slf4j.Logger LOG
    • Constructor Detail

      • LinuxCentralProcessor

        LinuxCentralProcessor()
    • Method Detail

      • getLogicalProcessorFromSyspath

        private static CentralProcessor.LogicalProcessor getLogicalProcessorFromSyspath​(java.lang.String syspath,
                                                                                        java.util.Set<CentralProcessor.ProcessorCache> caches,
                                                                                        java.lang.String modAlias,
                                                                                        java.util.Map<java.lang.Integer,​java.lang.Integer> coreEfficiencyMap,
                                                                                        java.util.Map<java.lang.Integer,​java.lang.String> modAliasMap)
      • mapNumaNodesFromLscpu

        private static java.util.Map<java.lang.Integer,​java.lang.Integer> mapNumaNodesFromLscpu()
      • getSystemLoadAverage

        public double[] getSystemLoadAverage​(int nelem)
        Description copied from interface: CentralProcessor
        Returns the system load average for the number of elements specified, up to 3, representing 1, 5, and 15 minutes. The system load average is the sum of the number of runnable entities queued to the available processors and the number of runnable entities running on the available processors averaged over a period of time.

        This method is designed to provide a hint about the system load and may be queried frequently.

        The way in which the load average is calculated is operating system specific but is typically a damped time-dependent average. Linux includes processes waiting for system resources such as disks, while macOS and Unix consider only processes waiting for CPU.

        Windows does not provide a load average. Users may set the configuration property oshi.os.windows.loadaverage to true to start a daemon thread which will provide a similar metric.

        The load average may be unavailable on some platforms (e.g., Windows without the above configuration). If the load average is not available, a negative value is returned.

        Parameters:
        nelem - Number of elements to return.
        Returns:
        an array of the system load averages for 1, 5, and 15 minutes with the size of the array specified by nelem; or negative values if not available.
      • getProcessorID

        private static java.lang.String getProcessorID​(java.lang.String vendor,
                                                       java.lang.String stepping,
                                                       java.lang.String model,
                                                       java.lang.String family,
                                                       java.lang.String[] flags)
        Fetches the ProcessorID from dmidecode (if possible with root permissions), the cpuid command (if installed) or by encoding the stepping, model, family, and feature flags.
        Parameters:
        vendor - The vendor
        stepping - The stepping
        model - The model
        family - The family
        flags - The flags
        Returns:
        The Processor ID string
      • createMIDR

        private static java.lang.String createMIDR​(java.lang.String vendor,
                                                   java.lang.String stepping,
                                                   java.lang.String model,
                                                   java.lang.String family)
        Creates the MIDR, the ARM equivalent of CPUID ProcessorID
        Parameters:
        vendor - the CPU implementer
        stepping - the "rnpn" variant and revision
        model - the partnum
        family - the architecture
        Returns:
        A 32-bit hex string for the MIDR