Azure区域-网站上的性能差异
本文关键字:性能 区域 网站 Azure | 更新日期: 2023-09-27 18:29:27
Azure中有两个相同的网站,它们有相同的设置。两者都以"标准"模式运行,实例大小为"小"。没有自动缩放。
一个网站在北欧地区运行,另一个在西欧。
我在网站上体验到大约25%的性能差异。西欧是"缓慢的一个"
- 有人知道这方面的消息吗
- 从不同地区到地区
- 有人有相同的设置,可以尝试相同的测试
波纹管是我用来检查性能的简单压力测试。
public ActionResult StressTest(int loopCount, int dbLoopCount)
{
var sw = new System.Diagnostics.Stopwatch();
sw.Start();
if (user.IsAdmin)
{
var hashTable = new Hashtable();
var list = new List<int>();
var random = new Random();
for (var x = 0; x <= loopCount; x++)
{
list.Add(x);
for (var i = 0; i <= loopCount; i++)
{
hashTable[i] = list.Where(d => d == random.Next(0, x)).Count(); ;
hashTable[i] = list.Where(d => d == random.Next(0, x)).Count(); ;
hashTable[i] = list.Where(d => d == random.Next(0, x)).Count(); ;
hashTable[i] = list.Where(d => d == random.Next(0, x)).Count(); ;
hashTable.Remove(i);
}
}
}
sw.Stop();
var loopTime = sw.ElapsedMilliseconds;
sw.Restart();
#region DBLoop
.........
#endregion
sw.Stop();
var dbTime = sw.ElapsedMilliseconds;
return Json(new
{
WS = new
{
Loops = loopCount.ToString("N0"),
Seconds = (loopTime / 1000.0),
Milliseconds = loopTime
},
DB = new
{
Loops = dbLoopCount.ToString("N0"),
Seconds = (dbTime / 1000.0),
Milliseconds = dbTime
}
}, JsonRequestBehavior.AllowGet);
}
数据库服务器是带有Linux和MongoDB的虚拟机。西欧的VM比北欧的VM慢35%左右。由于Linux的分布、分区和副本设置不同,该测试不如网站测试有效。很难解释任何设置因素导致数据库性能降低35%的原因。人们很容易认为25%的速度下降与我在网站上看到的速度下降相同。
我已经删除了DB压力测试代码,它只是由简单的读取/计数组成。记录在案:我在西欧创建了两个不同的网站,较慢的性能是一致的。同样在几天的时间里,我在周二第一次测试了这个,今天的结果也是一样的。
欢迎使用公有云!嘈杂的邻居、资源限制、瞬态故障和未反应的硬件故障!
虽然所有服务(Azure和其他服务)都提供可用性SLA,但大多数服务都不提供服务的最低性能阈值,除非这是专门作为溢价出售的(例如Azure高级存储,它提供有保证的最低磁盘IOPS)。供应商将根据您满足基本设计概念来保证可用性,但很少提供有保证的性能。
您可以尝试在DC中重新部署看起来很慢的解决方案。这可能意味着您被部署到DC中的另一台主机,并避免嘈杂的邻居或出现问题的主机。如果您发现重新部署无法解决您的问题,您可能需要打开有关该问题的支持票证。
我感觉不那么孤独了。。。我经历了同样的事情jca。差别很大,我在北欧的插入速度大约快2倍。
我想这是"正常的"。