【发布时间】: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