From 5bae9336b025afb77bb0459fc10f333a8ff35d48 Mon Sep 17 00:00:00 2001 From: crazycarry <985737800@qq.com> Date: Sun, 24 Jan 2021 14:53:27 +0800 Subject: [PATCH] update get system load (#4524) Co-authored-by: hujinhui Co-authored-by: dailidong --- .../dolphinscheduler/common/utils/OSUtils.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OSUtils.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OSUtils.java index 08e092d20d..b48f2d30cc 100644 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OSUtils.java +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OSUtils.java @@ -22,6 +22,7 @@ import org.apache.dolphinscheduler.common.shell.ShellExecutor; import org.apache.commons.configuration.Configuration; +import java.lang.management.OperatingSystemMXBean; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; @@ -130,11 +131,17 @@ public class OSUtils { * @return load average */ public static double loadAverage() { - double loadAverage = hal.getProcessor().getSystemLoadAverage(); - if (Double.isNaN(loadAverage)) { - return NEGATIVE_ONE; + double loadAverage; + try { + OperatingSystemMXBean osBean = ManagementFactory.getPlatformMXBean(OperatingSystemMXBean.class); + loadAverage = osBean.getSystemLoadAverage(); + } catch (Exception e) { + logger.error("get operation system load average exception, try another method ", e); + loadAverage = hal.getProcessor().getSystemLoadAverage(); + if (Double.isNaN(loadAverage)) { + return NEGATIVE_ONE; + } } - DecimalFormat df = new DecimalFormat(TWO_DECIMAL); df.setRoundingMode(RoundingMode.HALF_UP); return Double.parseDouble(df.format(loadAverage));