2012-05-24 52 views
-1

我正在使用SQL Server 2008 R2。在開發環境中,我可以看到CPU處於幾分鐘的負載下(大約55%-80%,而正常情況下是1-2%。是的 - 在我的開發環境中,正常負載幾乎沒有!)。在此CPU壓力時間內,自動化測試有時會出現超時錯誤。意外的CPU峯值

剛在活動監視器中遇到超時。看起來是這樣的:在這些壓力的時刻 enter image description here

Tipicaly它看起來像這樣: enter image description here

問題是,我無法理解爲什麼它正在發生!持續執行自動化測試,但他們沒有承擔繁重的工作量。在性能測試過程中,系統運行良好,如果速度變慢,總會有很好的解釋。

我試着通過

  • 運行跟蹤來解決問題,但這些CPU高峯期間,存在「沒什麼特別的」事情。沒有昂貴的查詢。
  • 使用SQL活動監視器 - 一切似乎正常,除了CPU(就像1-2等待任務,低I/O,~5請求/秒)。最近昂貴的查詢並不昂貴。
  • 查詢數據。使用着名的sp_WhoIsActive和sys.dm_exec_requests。據我understand-沒什麼不尋常的再次..

關於我的服務器

  • 有數據庫數量少,我知道他們好。
  • 使用Service Broker。
  • 痕跡正在大部分時間運行。

我懷疑是一些後臺進程出現問題。但我真的沒有得到它..你可以請提供一些提示/想法如何解決這個問題?

+0

也許它可能是您的數據庫文件偶爾會踢的自動增長? –

+0

@MikaelEriksson數據庫增長緩慢,並且有足夠的空間。數據庫是在簡單的恢復模式。 –

+0

是的,但分配過程是在一個特定的時間點完成的。如果您的數據庫每次達到極限時都設置爲增長10Gb,則可能導致問題。 – Diego

回答

0

它可能是一些內部的SQL Server作業。像一個大的索引重建。

等待秒殺和run sp_who2 'active'。檢查列CPU時間。

其實,你如何100%確定SQL是負責任的?難道這不是一個SO問題嗎?

+0

SQL Server計算機上的資源監視器顯示,使用CPU的計算機是「sqlservr.exe」。這臺機器上沒有計劃的索引重建。實際上,只有每小時運行一次的計劃備份作業,但CPU峯值不能因爲這些而發生。 –

+0

oh ok,所以試試sp_who2 – Diego

+0

有一堆系統進程與最後批處理時間05/12 03:17:45(它看起來更像SQL Server啓動時間)和3個用戶進程 - 這三個三個都不是CPU昂貴。 –

0

我遇到了同樣的問題,並且向微軟提出過案子。

微軟的傢伙告訴從SQL DB端沒有問題,如果CPU是尖刺的。最後問題由Microsoft解決,實際上問題是在IIS上,而不是在SQL Server上。

每隔29天IIS需要重新啓動,以便您在應用程序上獲得更好的性能。