这些请求在现实中的同步程度如何?他们会同时输入地址吗?
也就是说,在本地分析您的应用程序,这将使您能够估计 Azure 上的 CPU、网络和内存使用情况。然后,与其查看需要多少实例,不如查看如何减少需求!应用这些提示,并再次在本地配置文件。
大多数性能提示在 cpu、内存或带宽使用之间进行权衡,其想法是确保它们平等地扩展。如果您的应用程序内存不足,但您有大量 CPU 和网络,请不要
对于单页调查,确保您的 html、css 和 js 被缩小,确保其可缓存。
如果可能,将它们组合起来,并获得真正的可扩展性,将静态文件(css、js 和图像)推送到 CDN。这一切都减少了网络服务器必须处理的请求数量,因此减少了您需要的 webroles 数量 = 更少的网络。
ashx 如何返回响应?即它是发送html、xml 还是json?就个人而言,我会让它返回 JSON,因为这将需要更少的网络带宽,并且很可能需要更少的服务器端处理 = 更少的内存和网络。
使用异步 API 访问 azure 存储(这使用 IO 完成端口来释放 iis 线程以处理更多请求,直到 azure 存储恢复 = 使 cpu 能够扩展)
tijmenvdk 已经提到使用队列来编写。问题列表会改变吗?如果没有,则缓存它们,这样应用程序只需在启动时从表存储中读取一次,并且为每个客户端读取一次以进行最终总结 = 以内存为代价节省网络和 CPU。
所有这些技巧都同样适用于普通的 Web 应用程序,在单个服务器或 Web 农场环境中。
我想说的是,你无法衡量的东西,你也无法改进,衡量、改进和成本都是齐头并进的。动态扩展将降低成本,但从根本上说,如果您的应用程序没有被测量和资源使用优化,那么询问您需要多少实例是没有意义的。