【发布时间】:2017-12-24 13:25:38
【问题描述】:
我有一个小型 Web API,其中一个控制器托管为 WebApp(横向扩展),但是在负载下我看到有一个磁盘队列
从控制器返回的数据来自 MemoryCache,不需要磁盘使用。
如果我通过 FTP 连接,LogFiles 或任何其他文件夹中没有新创建的内容。那么这个 Disk Queue 是从哪里来的呢?
会不会影响性能? (没有明显原因的 HTTP 队列,有多个实例,CPU 为 50%,内存甚至没有 20%)
【问题讨论】:
-
MemoryCache 中的数据从哪里来?缓存的内存占用是多少?难道你正在做磁盘 I/O 来获取这些数据?磁盘队列可能是有原因的,您只是不确定它是什么;)
-
@RickvandenBosch - 从 Sql 数据库,为了测试我使用单一路由,数据总是被缓存。我添加的另一件事是 Application Insights SDK,仅此而已。
-
如果只有一个控制器,也许你可以分享一些(相关的)代码?
-
@RickvandenBosch 没什么可显示的,它只是一行
return _dataProvider.GetDogs();从 DB 或 MemoryCache 获取记录。在本地运行我可以看到 IIS 正在以 4MB/s 的速度写入磁盘,但我不确定是什么,并且不认为这会导致磁盘队列。
标签: azure azure-web-app-service