簡體   English   中英

Azure SQL Server最大池大小已達到錯誤

[英]Azure SQL server max pool size was reached error

我們有azure sql server,連接超過40個並發用戶時我們得到以下錯誤。

超時已過期。 從池中獲取連接之前經過的超時時間。 這可能是因為所有池連接都在使用中並且達到了最大池大小。

在進行負載測試時,我們得到了錯誤。我們使用工具直接執行存儲過程([ http://www.datamanipulation.net/sqlquerystress/] [1 ] )。 對於單個用戶存儲過程,將在1秒內返回結果。

azure的硬件詳細信息是標准服務級別和s2(50DTU)性能級別。 數據庫大小為705 MB。

我們在本地pc中恢復相同的數據庫。 本地我們使用的是SQL Server 2014快遞版。 使用此工具,我們已成功連接200個用戶。

如何在azure中實現200個並發用戶? 感謝您的寶貴意見。

  1. 這些查詢必須在SQL DB中運行足夠長的時間才能使連接耗盡。 查看sys.dm_exeC_requests和/或sys.dm_exec_connections以查看為40個用戶測試打開的數量。 慢查詢也可能是因為您在S2層上遇到的資源限制。 查看sys.resource_stats視圖以查看是否達到了任何資源限制。 如果是這種情況,擴展可能有助於您的問題。

  2. 確保明確打開和關閉連接,以便.Net可以管理您的連接

  3. 將連接字符串中的Max Pool Size設置為更大的值

您的用戶是否直接連接數據庫(或許來自某個桌面客戶端應用程序)? 因為如果我們討論支持200個並發用戶的Web應用程序,這並不意味着您需要200個並發連接到數據庫來為它們提供服務 - 很可能為1-2個用戶提供1-2個連接。 達到連接池限制幾乎總是意味着,你只是不關閉你的連接(它們沒有物理關閉,當你在SqlConnection上調用Close()時它們被返回到連接池並標記為可用。我不熟悉壓力測試您正在使用的工具,但情況可能如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM