【问题标题】:How to round in Azure batch autoscale formula如何在 Azure 批量自动缩放公式中舍入
【发布时间】:2016-01-19 22:34:21
【问题描述】:

当我提交我的公式时,Azure 抱怨计算错误。我把它缩小到有一个带小数位的数字。这是我的公式:

pivot = (0.15*($CurrentDedicated/20)+0.84);
target = $CurrentDedicated*(($CPUPercent.GetSample(TimeInterval_Minute*5)/100)/pivot);

它自然会抱怨没有样本,所以我在三元表达式中输入了$CPUPercent.GetSamplePercent(TimeInterval_Minute*0,TimeInterval_Minute*5),但它抱怨“评估错误”。我认为发生这种情况是因为我正在尝试配置一小部分专用机器。

那么……我怎样才能在这样的表达中上下四舍五入?

更新:

所以我发现了我的问题,$CPUPercent.GetSample 不应该用作数字。相反,应该在其上使用 max()、min() 或 avg() 来生成一个数字。修正后的公式如下:

samplepercent = $CPUPercent.GetSamplePercent(TimeInterval_Minute*0,TimeInterval_Minute*5);
pivot = (0.15*($CurrentDedicated/20)+0.84);
$TargetDedicated = samplepercent < 0.7 ? 1 : $CurrentDedicated*((avg($CPUPercent.GetSample(TimeInterval_Minute*5))/100)/pivot);

遗憾的是,没有办法向上或向下舍入。自动缩放表达式没有函数,也没有定义 % 运算符(x = x - x%1 和 x = x - x%1 + 1 分别向下和向上舍入)。这确实令人难过,可能需要我检查上述等式以确保它按预期工作。

【问题讨论】:

    标签: c# azure azure-batch


    【解决方案1】:

    【讨论】:

    • 谢谢。仔细阅读,我发现我对 CPUPercent.GetSample 的使用是不正确的,当我将它视为一个数字时,它实际上是一个向量,所以这是问题所在,而不是小数值。
    猜你喜欢
    • 2022-06-18
    • 2018-02-02
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-10
    • 2019-11-07
    • 2014-05-16
    • 2015-04-18
    相关资源
    最近更新 更多