performance - Azure 云服务性能差异

标签 performance azure azure-web-roles

目前我们的网络应用程序有以下设置:

预制作:

1 个中型实例(运行 Windows 2012 的 Web 角色) 1 个 Web 层 SQL Server Blob 的存储帐户

直播:

2 个大型实例(运行 Windows 2012 的 Web 角色) 1 个 Web 层 SQL Server blob 的存储帐户(与预生产版本共享相同的帐户)

所有服务器、存储帐户都位于同一区域(北欧)

我们遇到的问题是预生产服务器提供页面的速度比实时设置更快,但我们无法弄清楚原因。它们的设置完全相同,只是指向不同的数据库。

差异的任何示例是主仪表板页面在预生产框中需要 300 毫秒,而在实时情况下需要 600 毫秒。这是在机器人应用程序没有被除我们之外的任何其他人使用时进行测试的,因此它无法下载到盒子上加载。

我们还在两种设置上进行了角色内缓存(30% 的内存)。查看服务器本身,CPU 使用率或 RAM 使用率都没有过多。

有人知道我们应该检查为什么实时部署比预生产慢得多吗?

最佳答案

希望一切都好! :)

我主要关注两件事:

  1. 根据您管理预生产数据库的方式以及您网站的历史,您的生产数据库中可能包含更多数据 - 因此,当您计算统计数据时,需要更长的时间。根据我的经验,Web 和标准数据库的性能较弱 - 比您对运行 SQL 2000 的 10 年旧服务器的预期还要差。因此,当您运行计算或收集大量数据时,这些版本确实会产生很大的差异。商业版速度更快,与 P1 类似,但性能各异,因此可能值得升级。
  2. 数据库是否托管在同一服务器上?从网络/业务模型转向基本/标准/高级定价模型的主要(官方)原因是尝试提供一致且可靠的性能。如果您的一个数据库位于另一台服务器上,则您可能会与那些正在破坏数据库并降低性能的人共享这些资源。

我发现数据库是 Azure 上的瓶颈,并且 2 个中型实例每天可以轻松应对 10,000 名左右的访问者,因此您也许能够降低这些实例的成本,以平衡使用业务数据库。

唯一可能有用的事情是,在 Windows Azure 管理中,在数据库 > 监视器下,他们不久前升级了指标,以包括 CPU %、IO % 等内容,但它们没有打开默认情况下的图表。如果您在其中添加这些指标,可能会为您提供更多调试信息。

还有一个理由去北欧而不是西欧吗?

关于performance - Azure 云服务性能差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27123011/

相关文章:

c# - C# 中的编译器是否会删除始终为假的条件

c++ - 与仿函数的函数组合 - 性能开销

java - JacksonAdapter 无法在 azure-core-1.20 和 Java Web 应用程序中正确解析

.net - Web 角色和云服务的多站点策略

caching - Windows Azure 角色内缓存与共享缓存

JVM 8 更新后 Java Sound 显着变慢

java - 从 Java 内部测量单个方法性能的确切方法?

azure - 如果在 31 天内完成从本地到 Azure 的一次性迁移,Azure Site Recovery 是否需要付费?

session - 让 Windows Azure 共享缓存与 ReportViewer 配合使用

c# - 堆栈跟踪没有 Azure webrole 项目的行号