performance - 从表存储读取期间 CPU 使用率高

标签 performance azure cpu-usage azure-table-storage

先决条件:

Azure 存储3.0.0
VM大小:小型(1核)
表:1 个分区 - 2k 行,10 列

故事:

我观察我的一个角色的高 CPU 使用率有一段时间了,然后我决定深入研究一下。在分析器的帮助下,我发现了热路径。

enter image description here 一旦我意识到不是我的代码产生了这样的负载,我就删除了除了表本身的读数之外的所有内容。我也删除了自定义实体解析器。读取代码就像 Microsoft's how-to 中的.

不幸的是,我只发现了一种类似的情况,而那里的答案没有给我任何信息: similar situation here

问题:

有什么想法吗?

最佳答案

我所在的团队负责开发 Azure 存储的客户端库。我们将对此进行研究,看看是否可以在我们这边重现它。话虽这么说,如果您使用 3.0 和 POCO 类型,您可以通过在 CloudTableClient 上设置 PayloadFormat 或通过 TableRequestOptions 传递它来切换到 JSON nometadata(例如,请参阅 here )。这不仅会减少负载,而且会使用 Newtonsoft JSON 反序列化器而不是 Odata。很高兴看看您是否可以在该配置下重现高 cpu。

此外,您能否提供有关您的场景的更多信息,即每秒查询数等。最好在调试器下运行它,看看是否有异常被抛出并被 odata 内部吸收。

关于performance - 从表存储读取期间 CPU 使用率高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20567394/

相关文章:

javascript - 合并 JavaScript 文件

javascript - 您希望页面上的最大元素 ID 数?

c++ - 在 C/C++ 中的特定地址边界上对齐内存是否仍能提高 x86 性能?

node.js - 使用 Github Actions 将 Angular 应用程序部署到 Azure 失败。找不到 package.json

windows - 更改 Azure 存储 Blob 中文件的内容类型

c# - Azure EventHub - EventHubClient.Send() 导致 NullReferenceException

linux - 第二次从 Proc-FS 文件读取时使用 lseek() 是否安全

c++ - 性能:一次做所有事情,还是每个操作循环几次?

Eclipse 索引需要很长时间

xamarin - Visual Studio 2015运行aapt.exe进程使用100%的CPU使用率