none
請問有關SQL Server Profiler 顯示一直不斷出現Exec sp_reset_connection 的情形 RRS feed

  • 問題

  • 各位好:

    請教一個問題

    公司的網站這兩天一直有會員帳戶登入困難的情形

    就是登入公司網站的會員系統, 會一直停留在登入頁面很久

    甚至無法登入

    試著用SQL Profiler 查看

    如下圖, 發現一直有exec sp_reset_connection 的程序在執行

    檢測User Connections 的數量是122個, 平常的連線都在70上下

    我覺得有點多, 因此想請問各位是否登入頁面困難與這個有關

    還請指教, 謝謝

    2010年9月6日 上午 02:04

解答

  • 您好 :

    DB Server 為HP DL580G3 , CPU 為Xeon 2.0Ghz x4 

    因機種很舊,所以效能很弱

    硬碟配置為73G x2 = 作業系統 , 146G x2 = 資料庫存放

    目前會規劃將資料庫搬到HP DL380G4 上 

    DB File 為 5G 大小, 但Log 檔高達16G

    每日有進行完整備份,但Log 卻沒有清除掉

    在一台測試機上試著Restore 上星期尚未出現問題的DB

    發現其Log 檔只有1G 大, 也就是說短短一個星期Log 就成長了10G

    因此先把Log 截斷清除, 目前觀察一個晚上

    已經不再出現無法登入以及效能出現高負載的情形

    因此研判可能是因為Log 檔太大造成磁碟高負載

    進而影響效能

    我會繼續觀察,也請各位先進提供建議

    謝謝

     

    2010年9月9日 上午 01:36

所有回覆

  • Does your app use connection polling? How many connections in the pool?
    2010年9月6日 上午 02:55
  • Hi : 

    The Connection Polling Setting from web.config

    Min Pool Size =5

    Max Pool Size = 50

    Connection Timeout = 30

    Thanks, 

    2010年9月6日 上午 03:40
  • 您好:

    謝謝, 目前檢測之前記錄的效能紀錄

    發現在登入會員網頁很慢的時間點中

    其SQL 的User Connections 數量都超過100,最高達到122

    因此想請問若把Connection Pooling 的連線數加大

    是否會有改善 ? 

    而且查看Web.config 的設定

    發現RD 另外新增了連線到另一個資料庫的Connection String (主機是同一台)

    也許也有關係, 目前就先使用SQL Profiler 以及 Performance Monitor 來紀錄

    再來找出可能的原因

    謝謝

    2010年9月6日 上午 06:41
  • sp_reset_connection 會重設連線,我們可以看到 Audit Loginexec sp_reset_connection、與 Audit Logout 伴隨發生。
    程式是怎麼寫的?用完連線之後,有沒有關掉連線資源?
    參考資料:SQL Server 連接共用 (ADO.NET)



    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    2010年9月6日 下午 12:50
    版主
  • 您好:

    謝謝, 目前檢測之前記錄的效能紀錄

    發現在登入會員網頁很慢的時間點中

    其SQL 的User Connections 數量都超過100,最高達到122

    因此想請問若把Connection Pooling 的連線數加大

    是否會有改善 ? 

    而且查看Web.config 的設定

    發現RD 另外新增了連線到另一個資料庫的Connection String (主機是同一台)

    也許也有關係, 目前就先使用SQL Profiler 以及 Performance Monitor 來紀錄

    再來找出可能的原因

    謝謝

    You set max pool size to 50 but there were more than 100 users tried to make connection at same time, that means had at least 50 users were waiting for connection in the pool. Better to increase max pool size. 
    2010年9月6日 下午 04:04
  • 您好 :

    昨晚又出現會員無法登入網站的情形

    附上DB Server當時的效能

    Process Time : 78%

    Physical Disk

    % Disk Time : 111

    Avg Disk Queue Length : 1.111

    Current Disk Queue Length :1

    SQL Server 

    Users Connections : 78

    記憶體使用量 :2.3G , 可用1.5G

    感覺瓶頸在I/O 效能上

    下SP_Who  語法

    有59個connections , 但有一半的status 都是Sleeping 

    所以是否表示應該不是SQL 這邊連線的問題 ? 

     

    檢測兩台WebServer 的Web Service 

    Server1 : Current Connections : 109 

    Server2 : Current Connections : 101

    所以IIS 這邊的連線數量高於SQL 的User Connections 

    請問兩者是否有甚麼相關性 ? 

    謝謝

    2010年9月8日 上午 03:59
  • sleeping  並不一定就代表 SQL 連線有問題哦

    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    2010年9月8日 上午 04:05
    版主
  • Alex 大您好:

    我了解, 只是我的想法是

    既然SQL 本身的connections 有這麼多的sleeping 在閒置的狀態

    是否表示問題就不是在於RD 反應的SQL 連線數太多造成回應慢 ? 

    目前在下就是要釐清到底是SQL Server 本身硬體 , 設定上的問題

    還是RD 的程式造成的 

    因為目前程式有新增讓會員決定保留登入cookie 的設定

    類似mobile01 網站登入時可以選擇保留登入狀態的時間

    謝謝您

     

    2010年9月8日 上午 04:54
  • 個人比較傾向是 RD 程式碼撰寫的方式
    保留 cookie 的設定,可以不需要把此項設定寫入資料庫啊,一樣記在 cookie 裡

    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    2010年9月8日 上午 05:56
    版主
  • 您好 :

    了解, 那我要問RD 看看

    另外請問若資料庫Log 很大是否會影響效能 ? 

    因為查看Log 都會出現Log File 自動成長的訊息

    要我減小Log 檔自動成長的設定值

    目前Log 大小高達16G

    謝謝

    2010年9月8日 上午 09:21
  • Log 太大了吧
    磁碟的 I/O 一定會影響效能的

    您的資料庫應該也沒那麼大吧?

    建議您參考下列資料,將其縮小或截斷:

    1. 縮小 壓縮 交易記錄檔 (Shrink Transaction Log);以使用 SQL Server 2008/2005 SSMS 管理工具 為例
    2. 交易記錄檔已滿、爆掉;截斷交易記錄檔。(The transaction log for database 'DB1' is full. ;Transaction Log Truncation)


    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    2010年9月8日 上午 10:16
    版主
  • Cpu time was high, how many procesors and what kind of storage does the server have? Log file size doesn't play big role here because sql writes to it sequentially, but you should backup log regulally to prevent file expand if the db is not in simple recovery model. How do you place db files on disk? That will affect performance dramatically.
    2010年9月8日 下午 02:17
  • 您好 :

    DB Server 為HP DL580G3 , CPU 為Xeon 2.0Ghz x4 

    因機種很舊,所以效能很弱

    硬碟配置為73G x2 = 作業系統 , 146G x2 = 資料庫存放

    目前會規劃將資料庫搬到HP DL380G4 上 

    DB File 為 5G 大小, 但Log 檔高達16G

    每日有進行完整備份,但Log 卻沒有清除掉

    在一台測試機上試著Restore 上星期尚未出現問題的DB

    發現其Log 檔只有1G 大, 也就是說短短一個星期Log 就成長了10G

    因此先把Log 截斷清除, 目前觀察一個晚上

    已經不再出現無法登入以及效能出現高負載的情形

    因此研判可能是因為Log 檔太大造成磁碟高負載

    進而影響效能

    我會繼續觀察,也請各位先進提供建議

    謝謝

     

    2010年9月9日 上午 01:36
  • Backup db will not truncate log, you have to set job to backup log in schedule (say every hour or so) too. For better performance, should put db data files, log files and tempdb on seperate disks. Means server should have at least 4 disks, one for OS, one for system dbs (including tempdb) data files, one for user dbs data files, and one for log files of all dbs.
    2010年9月9日 上午 02:06
  • 您好:

    了解,昨天發現Backup Log 的Plan Fail 

    應該是已經無法備份Log 一段時間

    所以才會造成Log File 不斷成長

    有關硬碟的配置,新的Server 上會進行調整

    我下次會注意

    謝謝指教

    2010年9月9日 上午 02:16