前面兩篇文章我們和大家一起讨論到了SharePoint IIS的應用池回收,W3WP程序數和重置回收等方面的優化,今天來和大家講講後端SQL伺服器的優化。
對于SQL的優化,今天主要介紹的就是兩點,CPU的優化和記憶體的優化。
很多同學在裝好SQL之後,其實并沒有對記憶體優化進行設定,導緻SQL的記憶體配置設定很不合理,針對于SharePoint,建議設定SQL的使用記憶體最少為 8192 MB,最多為 20480 MB 這個臨界值。
<a href="http://s3.51cto.com/wyfs02/M00/8F/14/wKiom1jTJ0aAWh8rAAEtXT3l8VY026.png" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M00/8F/12/wKioL1jTJ0exKk7bAAEpGoKKMH4678.png" target="_blank"></a>
如上設定,注意,這裡的配置值和運作值一定要配置兩次,并且要保證其一直,否則不會生效,如果不比對,多點選幾次即可。
預設情況下,這兩個值的設定是不一樣的,需要我們點選配置項,點選确定儲存,再輸入值,點選運作項目,再點選确定。多設定幾次,兩個地方反複點OK,多試幾次。
OK,說完記憶體,現在我們來說下CPU,在一個SharePoint環境裡面,或者私有雲環境裡面,正常情況下,SQL的CPU應該至少要跑在 40% ,伴随着硬碟會有頻繁的讀寫IO。
如果CPU占用不高,磁盤IO讀寫也不高,那就是SQL拖了後腿,SQL一旦拖後腿了,前端web伺服器再怎麼優化和牛X,使用者通路也還是會很慢的。
預設情況下,SQL和IIS一樣,針對每個請求,也隻會有一個人員來為你服務,但是其實SQL本來是可以用很多個人員來為你服務的,用來處理你的query,但是你如果不優化它,它就會偷懶,預設隻激活一個服務員為你工作。
同樣在SQL執行個體的處理器選項中,注意下面三個值。
<a href="http://s3.51cto.com/wyfs02/M01/8F/12/wKioL1jTJ0jAGsoZAAF8uzoFj0U678.png" target="_blank"></a>
這裡建議是128線程起,最多可以開128個線程來并發為前端提供查詢服務。
并且勾選 強化SQL優先級。
最後和記憶體配置項一樣,記得在 配置值和運作值上都多設定幾次,確定相同的數值生效。
在最大工作線程這個地方,預設是0,就是隻開放1個線程來進行服務,也就是說随便你又多少個查詢過來,隻有一個服務人員接待,後面的查詢全部請排隊。
OK,在修改了SQL的記憶體和CPU配置項之後,大家可以嘗試重新開機一下SQL Server服務,或者直接重新開機伺服器,效果還是很明顯的。今天的讨論就到這裡,歡迎大家一起共同探讨,謝謝大家!
本文轉自horse87 51CTO部落格,原文連結:http://blog.51cto.com/horse87/1909461,如需轉載請自行聯系原作者