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