Azure SQL 数据库连接问题 - 连接太多?

2024-04-14

我有一个最近推出的白标网站(同一网站的多个版本)。目前还没有大量流量 - 主要是机器人,但每天可能有 800 个用户。它托管在 Azure 上,具有 Azure 数据库以及位于非 Azure 服务器上的管理面板。两个站点都连接到同一 Azure 数据库。还有一些工作角色正在运行来处理数据 - 99% 的时间他们不做任何事情,但他们会定期检查。

我总是遇到随机错误,持续几秒钟,然后又好了,例如:

从服务器接收结果时发生传输级错误。 (提供程序:TCP 提供程序,错误:0 - 现有连接被远程主机强制关闭。)

然而今天早上,我们遇到了一个更严重的问题。它开始于:

System.ComponentModel.Win32Exception:远程主机强制关闭现有连接

这种情况发生在机器人(Google、百度、AhrefsBot 和 Wiseguys.nl)对该网站进行索引时。我从中得到一个或多个错误。然后我得到:

System.Data.SqlClient.SqlException:服务在处理您的请求时遇到错误。请再试一次。错误代码 40143。当前命令发生严重错误。如果有结果,则应丢弃。

这是在 ExecuteReader 阶段。

10 分钟后,真正的问题来了 - 这意味着没有人可以登录到管理界面,但当我测试它时,Azure 托管网站看起来没问题,尽管机器人仍然提出错误。问题是:

System.ComponentModel.Win32Exception:等待操作超时

这种情况持续了大约一个小时,随机连接时断时续。然后我遇到了另一个问题:

System.Data.SqlClient.SqlException:资源 ID:1。数据库的请求限制为 180,已达到。看 'http://go.microsoft.com/fwlink/?LinkId=267637 http://go.microsoft.com/fwlink/?LinkId=267637' 寻求帮助。

这种情况在最后一个小时断断续续地发生——主要是针对工人角色。然后我试图找出是什么占用了所有这些请求,我发现了这个命令:

从 sys.dm_exec_requests 中选择*

当我一遍又一遍地运行它时,它只返回 1 或 2 个请求。

所以我的问题是: 1) 是否有其他人经历过与 Azure 上托管的服务器相对定期(一天一次,也许两次)临时断开连接的情况? 2) 上述事件列表是否表明存在特定问题?当大量管理员同时登录时,这一切都可能发生。 3)当我收到180 limit消息时,如何更好地调试对数据库的请求数量?

提前致谢。


我几年前写了这个问题,并收到标题发生细微变化的通知。在体验了更多 Azure SQL 数据库之后,我现在知道这个问题的答案。为了别人的利益,无非就是你的数据库设置的层太低了。

Azure 的定价层在性能方面存在显着差异。为了实现这一目标,他们限制了许多性能指标,例如CPU 功率、每分钟请求数等。

这意味着,如果您超出层级,您的请求将开始排队,因为 CPU 功率/请求量太高而无法处理。这会导致超时,然后随着请求等待处理,请求限制会增加。最终,它达到了数据库基本上崩溃的地步。

我的经验是,较低的数据库级别(例如 S0 和 S1)确实功能不足,除了开发或非常基本的站点之外不应该用于任何其他用途。

Azure 门户中有一些很棒的工具可让您调试数据库的运行情况,例如 CPU 图表、索引顾问和查询性能洞察。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure SQL 数据库连接问题 - 连接太多? 的相关文章

  • 我应该把 try/catch 和“using”语句放在哪里? [复制]

    这个问题在这里已经有答案了 可能的重复 try catch using 正确的语法 https stackoverflow com questions 4590490 try catch using right syntax 我想try c
  • 元组在 VS2012 中如何工作?

    Visual Studio 2012 功能 tuples但不是可变参数模板 这是如何完成的 如何在不使用可变模板的情况下实现元组 简而言之 微软做了与之前在 NET 中实现类似元组的数据类型完全相同的事情 创建许多版本 每个版本都有固定数量
  • IEnumerable 的 String.Join(string, string[]) 的类似物

    class String包含非常有用的方法 String Join string string 它从数组创建一个字符串 用给定的符号分隔数组的每个元素 但一般来说 它不会在最后一个元素之后添加分隔符 我将它用于 ASP NET 编码 以用
  • 进程退出后 POSIX 名称信号量不会释放

    我正在尝试使用 POSIX 命名信号量进行跨进程同步 我注意到进程死亡或退出后 信号量仍然被系统打开 在进程 打开它 死亡或退出后是否有办法使其关闭 释放 早期的讨论在这里 当将信号量递减至零的进程崩溃时 如何恢复信号量 https sta
  • 司机和提供商之间的区别

    数据库中的驱动程序和提供程序有什么区别 有没有解释一下 不胜感激 样本 ADO NET driver for MySQL vs providerName System Data EntityClient 来自 MSDN 论坛 驱动程序是安装
  • 在 ASP.NET MVC 中将模型从视图传递到控制器

    我正在 ASP NET MVC 中开发我的第一个应用程序 但遇到了一个我无法解决的问题 即使在阅读了整个互联网之后也是如此 因此 我有几个使用视图模型创建的视图 它们是报告 这些视图模型是根据用户选择标准填充的 我正在尝试构建一种接受模型并
  • 将下拉列表与字典绑定

    我将字典绑定到下拉列表 举例来说 我的字典中有以下项目 Test1 123 Test2 321 我希望下拉文本采用以下格式 Test1 Count 123 Test2 Count 321 我沿着以下路径走 但没有运气 MyDropDown
  • C 中“complex”的默认类型

    根据我读过的文档 C99 和更高版本的支持float complex double complex and long double complex作为复杂类型 但是 此代码在使用时编译时不会发出警告gcc Wall Wextra inclu
  • 全局使用和 .NET Standard 2.0

    我最近意识到我可以使用 C 10 功能文件范围的命名空间在 NET Standard 2 0 项目中也可以通过设置
  • 有什么方法可以重载 C# 中的扩展方法吗?

    我有以下模型模式 public abstract class PARENTCLASS public class CHILD A CLASS PARENTCLASS public static class EXTENSION public s
  • 子目录中的头文件(例如 gtk/gtk.h 与 gtk-2.0/gtk/gtk.h)

    我正在尝试使用 GTK 构建一个 hello world 其中包括以下行 include
  • 如何使用递归查找数字中的最小元素 [C]

    好的 所以我正在准备我的 C 考试 当谈到递归时我有点卡住了我是大学一年级的学生 这对我来说似乎有点困难 练习要求在给定的数字中使用递归函数我需要找到最小的元素 例如 52873 是 2 程序需要打印 2 include
  • 将错误代码映射到 C++ 中的字符串

    将错误代码从枚举映射到字符串的更有效方法是什么 在 C 中 例如 现在我正在做这样的事情 std string ErrorCodeToString enum errorCode switch errorCode case ERROR ONE
  • 如何使用 CSI.exe 脚本参数

    当你运行csi exe 安装了 Visual Studio 2015 update 2 您将得到以下语法 Microsoft R Visual C Interactive Compiler version 1 2 0 51106 Copyr
  • ALTER TABLE ... ADD CONSTRAINT 失败时将事务回滚到保存点

    有没有办法在事务中添加检查约束and如果失败回滚到以前的保存点 而不是回滚整个事务 就我而言 当 ALTER TABLE ADD CONSTRAINT 命令失败时 事务无法回滚到保存点 尝试这样做会引发 InvalidOperationEx
  • 使用 xslt 将 xml 转换为 xsl-fo 时动态创建超链接?

    我想使用 xsl 文件在 PDF 报告中创建标题 如果源文件包含超链接 则应将其呈现为超链接 否则呈现为纯文本 例如 我的 xml 如下所示 a href http google com target blank This is the h
  • C 中使用 getrandom 实现随机浮点数

    我试图生成一个介于 0 和 1 之间的随机浮点数 无论是在 0 1 还是 0 1 对我来说都不重要 网上关于此的每个问题似乎都涉及rand 呼叫 播种time NULL 但我希望能够每秒多次调用我的程序 并每次都获得不同的随机数 这引导我找
  • printf或iostream如何指定点后的最大位数

    字符串采用什么格式printf or iomanip我应该使用 iostream 中的运算符以以下格式打印浮点数 125 0 gt 125 125 1 gt 125 1 125 12312 gt 125 12 1 12345 gt 1 12
  • 如何提高环复杂度?

    对于具有大量决策语句 包括 if while for 语句 的方法 循环复杂度会很高 那么我们该如何改进呢 我正在处理一个大项目 我应该减少 CC gt 10 的方法的 CC 并且有很多方法都存在这个问题 下面我将列出一些例如我遇到的问题的
  • C++ Boost ASIO 简单的周期性定时器?

    我想要一个非常简单的周期性计时器每 50 毫秒调用我的代码 我可以创建一个始终休眠 50 毫秒的线程 但这很痛苦 我可以开始研究用于制作计时器的 Linux API 但它不可移植 I d like使用升压 我只是不确定这是否可能 boost

随机推荐

  • Winforms:SuspendLayout/ResumeLayout 还不够?

    我有一个包含一些 自定义控件 的库 本质上 我们有自己的按钮 圆角面板和一些带有一些自定义油漆的分组框 尽管 OnPaint 方法中存在 数学 但控件还是相当标准的 大多数时候 我们所做的只是绘制圆角并向背景添加渐变 我们使用 GDI 来实
  • ADO.NET 实体框架中的乐观并发

    I found MSDN 文章 http msdn microsoft com en us library bb738618 v vs 90 aspx描述了 EF 在保存更改时如何处理并发 默认情况下 对象服务保存对象 对数据库的更改没有
  • 查找 javascript 数组中的空索引列表

    Javascript 有没有办法找到数组为空或不包含 x 的索引 x x 会返回类似 1 2 4 5 6 我尝试过这样的事情 empty roster findIndex obj gt Object keys obj length 0 但是
  • 如何在 _layout.cshtml 中使用 data-ng-view

    我正在尝试使用 Angular 创建 MVC 应用程序 我的应用程序有通用的页眉和页脚 所以我将其添加到 layout cshtml中 应用程序中有一些静态页面 因此我想使用 Angular 路由来加载它 这是我的 layout cshtm
  • JQuery UI Datepicker:如何添加下一年/上一年按钮

    我使用通过下拉菜单选择年份的功能 我用它来设置至少 18 岁的人的生日 到目前为止 它运行得很好 我已经使用这些参数进行了设置 datepicker datepicker changeMonth true changeYear true d
  • git diff HEAD 与 git diff --staged 之间有什么区别?

    有什么区别git diff HEAD and git diff staged 我尝试了两者 但都给出了相同的输出 假设这个输出为git status git status On branch master Changes to be com
  • 如何在android中使用xml布局进行绘制

    我正在尝试完成开发人员页面上给出的 android 示例 它提供了两种在画布上绘图的方法 第一种方法是使用名为 CustomDrawableView 的类 如下所示 public class CustomDrawableView exten
  • 如何清除 WPF Frame 控件托管的整个导航历史记录

    在 WPF 应用程序中 Frame 控件用于托管 导航页面 我想清除导航历史记录 有 NavigationService RemoveBackEntry 方法可用于清除历史记录的向后部分 但是前向导航历史又如何呢 这部分怎么清除呢 最佳实践
  • Android WebView 显示纯文本而不是 html

    首先 我想说这只是 Android 2 及更早版本上的问题 4 似乎不受影响 我没有测试 3 我有一个WebView从字符串加载 html HTML 看起来像这样 h1 Hello World h1 您可以看到 css 文件如下所示 bod
  • H2DB WITH 子句

    我正在使用以下 sql 为方法编写单元测试 WITH temptab i id i name i effective i expires i lefttag i righttag hier id hier dim id parent ite
  • iPad 弹出文本字段 - resignFirstResponder 不会关闭键盘

    我有两个文本字段电子邮件和密码 当字段显示在常规视图上时 以下代码工作正常 但当它们显示在弹出窗口上时 resignFirstResponder 不起作用 becomeFirstResponder 起作用 为这两个字段调用了 textFie
  • 将 C dll 代码编组为 C#

    我在 dll 中有以下 C 代码签名 extern declspec dllexport unsigned char funct name int w int h char enc int len unsigned char text in
  • 当使用 apply() 和 call() 方法很容易继承时,为什么人们在 JavaScript 中使用原型?

    形状由矩形继承 这种继承可以通过多种方法来完成 这里我使用了apply 和call 当子类的draw方法被调用时 从该方法中再次调用基类的draw方法 我通过两种方式完成了这件事 一种是制作基类的原型绘制方法 另一种是使用 apply 和
  • Google 应用引擎 - 如何禁用缓存

    所以一些背景 我有一个在谷歌应用程序引擎上运行的nodeJS api 默认情况下 应用程序引擎会将我的所有获取请求缓存 10 分钟 我将 cloudflare 用于我的 API 因为这允许我在需要时从缓存中删除特定项目 您可以想象这会引起一
  • Swift iOS - 标签集合视图

    我正在编写我的第一个 iOS 应用程序 我只想回答最知名的解决方案是什么 这是简单的标签收集 我已经在互联网上查看过 但一无所获 我认为最好的方法可能是制作我自己的按钮结构 这是我想要实现的目标 有时你需要自己做 import UIKit
  • 在 Visual Studio Code 中自动导入以进行 React-Native 开发 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有扩展名吗VS Code这使得自动导入 for 反应本机组件 例如 当我打字时
  • 异步映射中的同步部分

    我有一个大的 IO 函数 它将持续从文件夹加载数据 对数据执行纯计算 然后写回 我正在多个文件夹上并行运行此函数 mapConcurrently iofun folderList from http hackage haskell org
  • 使用 AutoMapper 进行集合的多态映射

    TL DR 我在多态映射方面遇到了麻烦 我已经制作了一个 github 存储库 其中包含一个测试套件来说明我的问题 请在这里找到它 回购链接 https github com 780Farva AutoMapperInquiry 我正在努力
  • Neo4j 客户端使用“DateTime?”展开

    我目前正在尝试展开具有 日期时间 的 TravelEdges 列表 但我不断收到以下错误 CypherTypeException 类型不匹配 需要一个地图 但是字符串 2018 05 21T08 38 00 我目前正在使用最新版本的 neo
  • Azure SQL 数据库连接问题 - 连接太多?

    我有一个最近推出的白标网站 同一网站的多个版本 目前还没有大量流量 主要是机器人 但每天可能有 800 个用户 它托管在 Azure 上 具有 Azure 数据库以及位于非 Azure 服务器上的管理面板 两个站点都连接到同一 Azure