threshold值一般为CPU核心数*2,看自己需求 看业务调整重试次数已经睡眠时间

function f_retry_check_load
{
    # 传入需要重新请求的命令,默认重试10次 间隔10秒
    local max_attempts=10
    local retries=0
    local threshold=16.00
    while ((${retries} < ${max_attempts}));do
        # 获取系统平均负载情况
      load_avg=$(uptime | awk '{print $NF}')
      # 比较当前负载是否低于阈值
      if (( $(echo "${load_avg} < ${threshold}" | bc -l) )); then
        echo "系统负载低于阈值,可以进行下一步操作"
        break
      else
        retries=$(expr ${retries} + 1)
        echo "系统负载较高,为${load_avg} 请稍后再试"
        sleep 10
        continue
      fi
    done

    # 检查是否达到最大尝试次数
    if [ ${retries} > ${max_attempts} ]; then
      echo "尝试次数已达到最大值,仍未降低负载"
      return 1
    fi

}

f_retry_check_load

版权声明:如无特殊说明,文章均为本站原创,转载请注明出处

本文链接:http://kkxl95.cn/article/1678864659257/