初涉SQL Server效能問題(1/4)

來源:互聯網
上載者:User

標籤:

當你作為DBA時,很多人會向你抱怨:“這個程式資料載入和蝸牛一樣,你看看是不是伺服器出問題了?”造成這個問題的原因有很多。可能是程式應用伺服器問題,網路問題,程式實現方式問題,資料庫伺服器負荷過重。不管是哪個問題,資料庫總是第一個被抱怨的。我們DBA的職責就是找出問題所在,並解決它們。

問題解決第一步,診斷分析:

1 SELECT 2 parent_node_id                  AS Node_Id,3 COUNT(*)                        AS [No.of CPU In the NUMA],4 SUM(COUNT(*)) OVER()            AS [Total No. of CPU],5 SUM(runnable_tasks_count )      AS [Runnable Task Count], 6 SUM(pending_disk_io_count)                    AS [Pending disk I/O count],7 SUM(work_queue_count)          AS  [Work queue count]8 FROM sys.dm_os_schedulers WHERE status=‘VISIBLE ONLINE‘ GROUP BY parent_node_id

返回結果說明:

  • 如果返回的是一條記錄,說明伺服器不支援NUMA架構,否則記錄數就是NUMA架構的節點數(NUMA:非均勻訪存模型)。
  • Node_id:NUMA節點id。
  • No.of CPU in the NUMA:分配給NUMA節點的CPU數,或調度數( number of schedulers)。
  • Total No. of CPU:伺服器上可用CPU總數。
  • Runnable Task Count:在可運行隊列裡,等待被重現調度的,用於分配任務(tasks)的工作者(workers)數。即,可運行隊列裡請求數。
  • Pending disk I/O count:等待被完成的等待IO數。每個調度都有一個等待IO清單,用於判斷它們在環境切換時是否完成。當請求被插入時,這個數字會增加。請求完成後,數字會減少。
  • Work queue count:等待隊列裡的任務數。這些任務等待工作者拿走。

我會把這個指令碼的輸出結果存到一張表,並設定為計劃任務每10分鐘運行一次,收集運行2天。這樣我們對伺服器的健全狀態就有了基本的瞭解。在我測試的伺服器上,當Runnable Task Count一直在10的時候,使用者就是抱怨伺服器慢!正常情況,每個節點的這個數字應該低於10。這就給了我們當前系統啟動並執行大致情況。如果這一步的輸出結果是正常的,我們就可以排除資料庫伺服器的問題了,響應慢的問題可能是我們不能控制的阻塞造成的,或者只是部分會話響應慢,而不是整個伺服器慢。

這就是我們第1步的問題分析診斷方法,接下來的文章會具體解釋後續該如何處理。

附圖2張,協助大家理解任務(tasks)、工作者(works)、調度(schedulers)之間的關係。

對於每個CPU,SQLSERVER都會有一個scheduler與之對應。在每個scheduler裡,會有若干個worker,對應於每個線程。在用戶端發過來請求之後,SQL會將其分解成一個或多個task。根據每個scheduler的繁忙程度,task會被分配到某個scheduler上。如果scheduler裡有閒置worker,task就會被分配到某個worker上。如果沒有,scheduler會建立新的worker,供task使用。如果scheduler裡的worker已經到了他的上限值,而他們都有task要運行,那麼新的task只好進入等待worker的狀態。 

 

初涉SQL Server效能問題(1/4)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.