0

当我提交我的公式时,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 分别向下和向上舍入)。这确实令人难过,可能需要我查看上述等式以确保它按预期工作。

4

1 回答 1

1

检查这个线程,他们有一些例子https://social.msdn.microsoft.com/Forums/azure/en-US/21161846-6b6b-4e34-85fc-333663414714/autoscaleformula-improvements-needed?forum=azurebatch

于 2016-01-19T23:32:32.977 回答