docs: private boolean isMachineResEnough() {
  
          if (!machineResCheckEnable) {
              // 如果没有启用,直接返回
              return true;
          }
  
          boolean enough = true;
  
          try {
              // 1. Cpu usage
              Double maxCpuTimeRate = appContext.getConfig().getParameter(ExtConfig.LB_CPU_USED_RATE_MAX, 90d);
              Object processCpuTimeRate = JVMMonitor.getAttribute(JVMConstants.JMX_JVM_THREAD_NAME, "ProcessCpuTimeRate");
              if (processCpuTimeRate != null) {
                  Double cpuRate = Double.valueOf(processCpuTimeRate.toString()) / (Constants.AVAILABLE_PROCESSOR * 1.0);
                  if (cpuRate >= maxCpuTimeRate) {
                      LOGGER.info("Pause Pull, CPU USAGE is " + String.format("%.2f", cpuRate) + "% >= " + String.format("%.2f", maxCpuTimeRate) + "%");
                      enough = false;
                      return false;
                  }
              }
  
              // 2. Memory usage
              Double maxMemoryUsedRate = appContext.getConfig().getParameter(ExtConfig.LB_MEMORY_USED_RATE_MAX, 90d);
              Runtime runtime = Runtime.getRuntime();
              long maxMemory = runtime.maxMemory();
              long usedMemory = runtime.totalMemory() - runtime.freeMemory();
  
              Double memoryUsedRate = new BigDecimal(usedMemory / (maxMemory*1.0), new MathContext(4)).doubleValue();
  
              if (memoryUsedRate >= maxMemoryUsedRate) {
                  LOGGER.info("Pause Pull, MEMORY USAGE is " + memoryUsedRate + " >= " + maxMemoryUsedRate);
                  enough = false;
                  return false;
              }
              enough = true;
              return true;
          } catch (Exception e) {
              LOGGER.warn("Check Machine Resource error", e);
              return true;
          } finally {
              Boolean machineResEnough = appContext.getConfig().getInternalData(Constants.MACHINE_RES_ENOUGH, true);
              if (machineResEnough != enough) {
                  appContext.getConfig().setInternalData(Constants.MACHINE_RES_ENOUGH, enough);
              }
          }
      }