SQL Server服務器內(nèi)存升級后的煩惱 |
發(fā)布時間: 2012/8/8 19:53:10 |
中國IDC評述網(wǎng)10月28日報道:不久之前,筆者一個在企業(yè)中從事網(wǎng)管工作的朋友向我求助關(guān)于SQL Server服務器內(nèi)存升級后遇到的問題。原來,他們企業(yè)準備上一個企業(yè)郵箱系統(tǒng)。為了節(jié)省開支,他們準備在原來的SQL Server服務器上部署企業(yè)的郵箱服務器。為了提高這個服務器的性能,讓其能夠承擔其兩種應用服務的重任,所以,他們對內(nèi)存進行了升級。從原先的1G升級到了2G。但是,內(nèi)存升級完以后,郵箱應用服務的性能不但沒有改善,而且,還有惡化的趨勢。運行一段時間后,這臺服務器上運行的郵箱系統(tǒng)就出現(xiàn)了異常情況。時不時的會報出內(nèi)存分配不足的情況。一開始,他們還以為是郵箱服務器跟SQL Server服務器不兼容。故還請了郵箱服務器的技術(shù)人員前來查看。經(jīng)過他們的檢查,發(fā)現(xiàn)是SQL Server服務占用的大部分內(nèi)存所導致的。SQL Server服務所需要的內(nèi)存,從升級之前的600M左右一下子到了1.5個G。難怪郵箱應用服務要警報說內(nèi)存不夠了。
原因分析
筆者對這種問題已經(jīng)是見怪不怪了,已經(jīng)遇到過好幾次類似的故障。在SQL Server數(shù)據(jù)庫啟動的時候,數(shù)據(jù)庫系統(tǒng)會根據(jù)物理內(nèi)存的大小來動態(tài)的增大或者縮小高速緩沖區(qū)的容量。這主要是為了提高SQL Server服務器的性能才如此的設計的。
我們知道,一般情況下,高速緩沖區(qū)越大,則SQL Server服務器的性能越好。這主要是因為有些用戶查詢過的數(shù)據(jù)都可以放在高速緩沖區(qū)(即內(nèi)存的其中一部分)中。如此的話,當用戶下次再次需要這些數(shù)據(jù)的時候,就不用到硬盤中去讀取,而直接在內(nèi)存中讀取即可。而從內(nèi)存中讀取數(shù)據(jù)要比在硬盤中讀取速度要快的多。
所以,只要當服務器的可用內(nèi)存在4MB與10MB之間的話,數(shù)據(jù)庫系統(tǒng)就會把它的高速緩沖區(qū)不斷的擴大。如此的話,當郵箱服務器突然需要用到比較大的內(nèi)存,如對郵箱進行備份或者有用戶群發(fā)郵件的時候,就會報錯說“內(nèi)存分配不足”。
故一般只是內(nèi)存升級,往往不能夠解決SQL Server服務與其他應用服務搶占內(nèi)存的情況。為了讓SQL Server能夠與其他應用服務友好的共處,數(shù)據(jù)庫管理員還需要對內(nèi)存進行合理的分配,限制SQL Server數(shù)據(jù)庫服務內(nèi)存的占用率。
從上文中可以總結(jié)出SQL Server數(shù)據(jù)庫服務器內(nèi)存并不是可以無限大的增大,要符合技術(shù)的限制要求,希望上文中介紹的內(nèi)容對大家能夠有所幫助。 本文出自:億恩科技【1tcdy.com】 |