【问题标题】:Number of connections exceeding instance count * maxpool超过实例数的连接数 * maxpool
【发布时间】:2017-07-25 16:27:25
【问题描述】:

我们在 Microsoft Azure 上托管一个网站,我们有流量管理器在两个 AppService 上分配流量,每个 AppService 有 15 个实例,连接字符串中的最大池大小为 80。

我们还使用最大连接数为 2400 的 P11 数据库

据我们了解,最大可能的连接数为:

实例数 * 最大池
30 * 80 = 2400

但我们收到有关超出最大允许数量的错误,令我们惊讶的是,在数据库上运行查询以显示活动连接数为 2600。

我们没有运行任何网络作业。

有人能解释一下发生了什么吗?

【问题讨论】:

  • 非常愚蠢的问题,但是,您确定要在代码中关闭 SqlConnection 吗?
  • 你能粘贴准确的错误信息,也能分享你用来获取结果的查询吗?你也可以运行这个查询select session_id,count(*) as cnt from sys.dm_os_tasks group by session_id并分享结果

标签: azure azure-sql-database azure-web-app-service


【解决方案1】:

使用以下查询,您可以确定哪个程序名称拥有最多的会话、哪个登录名创建了最多的会话、哪个主机创建了最多的会话。

SELECT
    c.session_id, c.net_transport, c.encrypt_option,
    c.auth_scheme, s.host_name, s.program_name,
    s.client_interface_name, s.login_name, s.nt_domain,
    s.nt_user_name, s.original_login_name, c.connect_time,
    s.login_time
FROM sys.dm_exec_connections AS c
JOIN sys.dm_exec_sessions AS s
    ON c.session_id = s.session_id

以下语句显示当前层的最大连接数。

SELECT @@MAX_CONNECTIONS AS 'Max Connections';

希望这会有所帮助。

问候,

阿尔贝托·莫里洛

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-13
    • 2011-06-18
    • 2018-08-27
    • 2016-04-15
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多