通過IIS Request Filtering解決SQL Server CPU高的問題

來源:互聯網
上載者:User

標籤:

原文 http://www.peterviola.com/solving-sql-server-high-cpu-with-iis-request-filtering/

 

Top Queries by Total CPU Time

當CPU非常高的時候有可能你的條件反射就是重啟服務或者回收App Pools.SQL Server 2008 內建了非常棒的報表協助我們追蹤CPU的使用方式. 我使用Top Queries by Total CPU Time 報表. 如一項 右鍵服務名選擇相應的報表.

 

 Top Queries by Total CPU Time 報表會需要一點時間來產生. 通過報表能夠獲得是哪10個資料的查詢消費了最多的CPU. 通過報表我們發現這個伺服器上的一個資料庫的4個不同query消耗的大部分CPU. 

 

SQL Profiler and Database Tuning Advisor

現在我知道是哪個資料庫引發高CPU的問題了, 啟動 SQL Profiler 幾分鐘收集下資料.可以看到高的Reads是從 “Internet Information Services” 這個Appliation發出來的.

 

在將注意力集中在網站之前,我想看看通過 Database Engine Tuning Advisor  能不能提高效率 DTA 會分析通過提供的SQL指令碼 分析資料的一些行為,並且提高一個最佳化的方案(包括使用索引,分區...). 通常通過 DTA  我們能提高 5-10 % 的效能改善. 在這個案例中我們能看到提高了97% 的改善!

 

 

Preventing SQL Injection with IIS Request Filtering

通過執行DTA提高的最佳化指令碼能降低一些CPU了. 然而我知道我們的網站有可能正在遭受一些可疑的訪問所以我使用 Log Parser 獲得一些網站的訪問情況.通過下面的query發現打量的訪問是正在利用querystring進行SQL注入.

logparser.exe -i:iisw3c “select top 20 count(*),cs-uri-query from ex140702.log

group by cs-uri-query order by count(*) desc” -rtp:-1 >file.txt

 

通常我們傾向於屏蔽攻擊的IP. 不幸的是一些老道的攻擊會使用大量不同的IP對你進行攻擊. 最佳的解決方案是通過 Request Filtering 過濾屏蔽這些惡意的請求.

 

通過 IIS Request Filtering 我們阻止了SQL注入攻擊. 使用下面Log Parser的查詢我們能看到所有請求的 http status codes .

SELECT STRCAT(TO_STRING(sc-status), STRCAT(‘.’, TO_STRING(sc-substatus))) AS Status, COUNT(*)

AS Total FROM w3svc.log to TopStatusCodes.txt GROUP BY Status ORDER BY Total DESC

 

當一個querystring被拒絕的時候Request Filtering 會使用 http substatus 404.18 . 通過下面的Log Parser report 能看到  50,039 個請求被屏蔽了.

 

通過IIS Request Filtering解決SQL Server CPU高的問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.