我在Azure上有一个相当高负载的部署:4个大型实例,每秒服务大约300-600个请求.在正常情况下:"平均响应时间"为70到150毫秒,但有时它可能长到200-300毫秒,但它绝对没问题.
虽然,每天一到两次(不是在"高峰时间"),我在网站监控标签上看到了这样的图片:
因此,每分钟的请求数量显着下降,平均响应时间增加到3分钟,一段时间后 - 一切都恢复正常.
在此"停电"期间,只有0.1%的请求被删除(带有超时的Http服务器错误),其他请求只是在队列中等待,并且通常在几分钟后处理.虽然,并非所有客户都准备等待:-(
内存使用率始终低于30%,CPU使用率仅高达40-50%.
我已经检查了什么?:
这些问题可能是什么原因?我接下来可以检查什么?
谢谢大家!
更新1:BenV提出了尝试的好处,但不幸的是它没有显示任何内容:-(
我配置了每500k请求回收的进程并且还添加了工作节点,因此现在CPU利用率现在不到40%,但仍然会出现停电.
更新2:项目使用ASP.Net MVC 4.
在我的Azure网站的事件日志中,我每1-5分钟看到相同的错误:
1 [varies]
5
50000780
Run Code Online (Sandbox Code Playgroud)
这个错误信息是什么意思?先感谢您!
我有一个相当庞大的(30毫升行,每个最多5-100Kb)表在Azure上.
每个RowKey都是Guid,PartitionKey是第一个Guid部分,例如:
PartitionKey = "1bbe3d4b"
RowKey = "1bbe3d4b-2230-4b4f-8f5f-fe5fe1d4d006"
Run Code Online (Sandbox Code Playgroud)
表每秒有600次读取和600次写入(更新),平均延迟为60ms.所有查询都使用PartitionKey和RowKey.
但是,有些读取需要3000毫秒(!).平均而言,所有读取中> 1%的读取时间超过500毫秒且与实体大小无关(在25ms内可返回100Kb行,在1500ms内可返回10Kb).
我的应用程序是在4-5个大型实例上运行的ASP.Net MVC 4网站.
我已阅读有关Azure表存储性能目标的所有MSDN文章,并已执行以下操作:
UseNagle 已关闭Expect100Continue 也被禁用了MaxConnections 对于表客户端设置为250(设置1000-5000没有任何意义)我也检查过:
这种性能问题可能是什么原因以及如何改进?
asp.net-mvc azure azure-storage azure-table-storage azure-web-sites