我们使用,目前使用的是S3层,我们的一个服务遇到了问题,该服务正在将数据推送到数据库中。它经常被称为,大多数情况下,我们的DTU超过95%。我们已经优化了我们能做的事情,但基本上是太多的DB命中了。我们正在进行其他优化、缓存等工作。
问题是,这个DB被我们的另一个应用程序使用,而且由于DTU被其他服务占用,所以我们存在性能问题。
我在想,如果有办法的话,我们什么时候可以为DTU设置一个SQL用户的最大限制?例如30%。我试图在谷歌上搜索,但是找不到任何与这个话题相关的东西。非常感谢你的回答或建议
发布于 2016-03-08 18:32:18
目前SQL数据库中没有办法根据每个查询/客户端限制资源。您正在优化哪个资源维度(CPU、读、写)?如果您不能进一步优化,您可能不得不咬紧牙关,扩大规模。如果你是IO绑定的,切换到P1会对你有帮助。如果您是CPU绑定的,您可能必须上到P2。
发布于 2016-03-02 21:09:38
%始终基于S2层db。如果您在95,这意味着您在95%的S2层db在您的DTU使用率。在这种情况下,您接近100%,因此您可能很快需要一个更大的层,如S2。您正在使用S3,所以您有正确的层。
azure-sql-database-introduces-new-near-real-time-performance-metrics
例如,如果您的DTU消耗显示值为80%,则它指示它正在以S2数据库限制的80%的速率使用DTU。如果在此视图中看到大于100%的值,则意味着需要一个大于S2的性能层。 例如,假设您看到的百分比值为300%。这告诉您,您使用的资源是S2中可用资源的三倍。要确定一个合理的启动大小,请将S2中可用的DTU(50个DTU)与下一个更高的大小(P1 =100个DTU,或S2的200%,P2 =200个DTU或S2的400% )进行比较。因为您是S2的300%,所以您需要从P2开始并重新测试。 根据DTU使用率,您可以确定数据库是否能够适应S2性能级别(或者是一个较低/更高的级别,如DTU百分比和各种性能层的相对DTU功率所示,如MSDN站点中所记录的那样)。
当您有锁定问题时,您需要找到锁定数据库的查询并重写它们。扩展到更大的db层只会有一点帮助,给出导致问题的应用程序更少的db性能只会延长锁时间。
https://stackoverflow.com/questions/35753527
复制相似问题