不久之前,筆者一個(gè)在企業中從事網管工作(zuò)的朋友(yǒu)向我求助關于SQL Server服務器(qì)內(nèi)存升級後遇到的問題。原來(lái),他們企業準備上(shàng)一個(gè)企業郵箱系統。為(wèi)了節省開(kāi)支,他們準備在原來(lái)的SQL Server服務器(qì)上(shàng)部署企業的郵箱服務器(qì)。為(wèi)了提高(gāo)這個(gè)服務器(qì)的性能,讓其能夠承擔其兩種應用服務的重任,所以,他們對內(nèi)存進行(xíng)了升級。從原先的1G升級到了2G。
但(dàn)是,內(nèi)存升級完以後,郵箱應用服務的性能不但(dàn)沒有(yǒu)改善,而且,還(hái)有(yǒu)惡化的趨勢。運行(xíng)一段時(shí)間(jiān)後,這台服務器(qì)上(shàng)運行(xíng)的郵箱系統就出現了異常情況。時(shí)不時(shí)的會(huì)報出內(nèi)存分配不足的情況。一開(kāi)始,他們還(hái)以為(wèi)是郵箱服務器(qì)跟SQL Server服務器(qì)不兼容。故還(hái)請(qǐng)了郵箱服務器(qì)的技(jì)術(shù)人(rén)員前來(lái)查看。經過他們的檢查,發現是SQL Server服務占用的大(dà)部分內(nèi)存所導緻的。SQL Server服務所需要的內(nèi)存,從升級之前的600M左右一下子到了1.5個(gè)G。難怪郵箱應用服務要警報說內(nèi)存不夠了。
一、原因分析。
筆者對這種問題已經是見怪不怪了,已經遇到過好幾次類似的故障。在SQL Server數(shù)據庫啓動的時(shí)候,數(shù)據庫系統會(huì)根據物理(lǐ)內(nèi)存的大(dà)小(xiǎo)來(lái)動态的增大(dà)或者縮小(xiǎo)高(gāo)速緩沖區(qū)的容量。這主要是為(wèi)了提高(gāo)SQL Server服務器(qì)的性能才如此的設計(jì)的。
我們知道(dào),一般情況下,高(gāo)速緩沖區(qū)越大(dà),則SQL Server服務器(qì)的性能越好。這主要是因為(wèi)有(yǒu)些(xiē)用戶查詢過的數(shù)據都可(kě)以放在高(gāo)速緩沖區(qū)(即內(nèi)存的其中一部分)中。如此的話(huà),當用戶下次再次需要這些(xiē)數(shù)據的時(shí)候,就不用到硬盤中去讀取,而直接在內(nèi)存中讀取即可(kě)。而從內(nèi)存中讀取數(shù)據要比在硬盤中讀取速度要快的多(duō)。
所以,隻要當服務器(qì)的可(kě)用內(nèi)存在4MB與10MB之間(jiān)的話(huà),數(shù)據庫系統就會(huì)把它的高(gāo)速緩沖區(qū)不斷的擴大(dà)。如此的話(huà),當郵箱服務器(qì)突然需要用到比較大(dà)的內(nèi)存,如對郵箱進行(xíng)備份或者有(yǒu)用戶群發郵件的時(shí)候,就會(huì)報錯說“內(nèi)存分配不足”。
故一般隻是內(nèi)存升級,往往不能夠解決SQL Server服務與其他應用服務搶占內(nèi)存的情況。為(wèi)了讓SQL Server能夠與其他應用服務友(yǒu)好的共處,數(shù)據庫管理(lǐ)員還(hái)需要對內(nèi)存進行(xíng)合理(lǐ)的分配,限制(zhì)SQL Server數(shù)據庫服務內(nèi)存的占用率。
二、解決方法。
針對他們企業的這種情況,筆者給出兩個(gè)建議。一是合理(lǐ)地給SQL Server數(shù)據庫分配內(nèi)存。而是不要把SQL Server服務跟其他應用服務放在同一台服務器(qì)上(shàng),畢竟數(shù)據庫服務的并發行(xíng)訪問比較多(duō),對服務器(qì)的性能要求比較高(gāo)。
若果企業選擇第一種應對措施的話(huà),就需要限制(zhì)SQL Server服務器(qì)的內(nèi)存使用率。為(wèi)了使得(de)運行(xíng)在同一台服務器(qì)的SQL Server服務器(qì)與郵箱服務能夠達到一個(gè)合理(lǐ)的性能,能夠和(hé)平共處,就需要采取一定的措施限制(zhì)SQL Server數(shù)據庫服務的內(nèi)存使用量。在SQL Server服務器(qì)中,專門(mén)提供了一個(gè)工具(數(shù)據庫引擎),可(kě)以用來(lái)幫助我們幹預SQL Server服務器(qì)的內(nèi)存分配。
具體(tǐ)的說,可(kě)以按如下方法進行(xíng)配置。
第一步:打開(kāi)SQL Server企業管理(lǐ)器(qì)。
在SQL Server數(shù)據庫中,提供了一個(gè)圖形化界面的企業管理(lǐ)器(qì)。在這個(gè)管理(lǐ)平台上(shàng)可(kě)以對SQL Server的大(dà)部分服務進行(xíng)管理(lǐ)與配置。SQL Server數(shù)據庫服務的內(nèi)存分配規則當然也不例外,可(kě)以在這裏進行(xíng)調整。
第二步:找到我們需要調整的服務器(qì)。
有(yǒu)些(xiē)企業,可(kě)能在網絡中部署了多(duō)個(gè)SQL Server服務器(qì)。為(wèi)了管理(lǐ)的方面,會(huì)在其中一台服務器(qì)上(shàng)的企業管理(lǐ)器(qì)中集中進行(xíng)管理(lǐ)。不過,這家(jiā)企業他們隻有(yǒu)一個(gè)SQL Server服務器(qì)。在我們需要調整的服務器(qì)上(shàng),右鍵單擊,選擇“屬性”。然後就會(huì)彈出一個(gè)對話(huà)框。在對話(huà)框中選擇“內(nèi)存選項卡”。在這裏就可(kě)以對數(shù)據庫應用服務的內(nèi)存分配方法進行(xíng)設置。
第三步:調整相關的內(nèi)存參數(shù)。
在這張選項卡中,一般有(yǒu)兩個(gè)參數(shù),分别為(wèi)最小(xiǎo)服務內(nèi)存與最大(dà)服務內(nèi)存。在實際工作(zuò)中,我們往往有(yǒu)兩種配置方法。
一是配置一個(gè)最大(dà)最小(xiǎo)內(nèi)存。即給SQL Server數(shù)據庫應用服務設置一個(gè)最大(dà)的使用內(nèi)存。如此的話(huà),在這個(gè)最大(dà)的範圍之後,數(shù)據庫系統會(huì)根據實際情況,在最大(dà)內(nèi)存範圍之內(nèi)對內(nèi)存的分配進行(xíng)調整。一般情況下,最小(xiǎo)內(nèi)存我們可(kě)以不設置,隻對最大(dà)內(nèi)存進行(xíng)限制(zhì)即可(kě)。這就給數(shù)據庫一種自主選擇的權利。可(kě)以提高(gāo)內(nèi)存的使用效率。
二是固定內(nèi)存分配。即把“最小(xiǎo)服務內(nèi)存”與“最大(dà)服務內(nèi)存”兩個(gè)參數(shù)設置為(wèi)相同。如此的話(huà),不管數(shù)據庫服務需要多(duō)大(dà)的內(nèi)存,在服務器(qì)啓動的時(shí)候,操作(zuò)系統都會(huì)給其預留這麽大(dà)的內(nèi)存。其他的應用程序及時(shí)內(nèi)存再怎麽不足,也不會(huì)跨越數(shù)據庫的內(nèi)存領地。很(hěn)明(míng)顯,這種方式雖然保證了數(shù)據庫服務的內(nèi)存需求,但(dàn)是,內(nèi)存的使用率并不是很(hěn)高(gāo)。
針對上(shàng)面兩種方法,筆者比較傾向與使用第一種配置,即隻對數(shù)據庫應用服務的最大(dà)內(nèi)存使用率進行(xíng)限制(zhì)。隻要不超過這個(gè)範圍,則服務器(qì)可(kě)以自主的進行(xíng)調解。那(nà)麽這個(gè)最大(dà)的使用率設置成多(duō)少(shǎo)合适呢?這主要要看企業所部屬的服務了。由于這家(jiā)企業,在同一台服務器(qì)上(shàng)運行(xíng)了郵箱服務器(qì)與數(shù)據庫服務器(qì),可(kě)能對硬件的壓力比較大(dà)。因為(wèi)這兩個(gè)應用服務,都涉及到比較多(duō)的并發訪問。所以,即使把硬件升級成了2G,估計(jì)也不能夠給數(shù)據庫服務分配比較多(duō)的內(nèi)存。一般來(lái)說,并發性訪問越多(duō),則最好能夠給其配置比較多(duō)的內(nèi)存。
配置完成之後,不用重新啓動,這個(gè)規則就會(huì)起效。不過筆者還(hái)是建議把SQL Server服務重新啓動一下。在可(kě)以的情況下,把服務器(qì)重新啓動一下最好。如此的話(huà),操作(zuò)系統就會(huì)根據這個(gè)規則,對內(nèi)存進行(xíng)重新的調整分配。也可(kě)以讓SQL Server服務器(qì)更好的隊內(nèi)存進行(xíng)合理(lǐ)的安排。如可(kě)以把SQL Serve可(kě)用內(nèi)存固定在一個(gè)連續的區(qū)域內(nèi),以提高(gāo)數(shù)據庫的性能。
三、總結。
針對這個(gè)內(nèi)存升級後所産生(shēng)的煩惱,筆者有(yǒu)幾句話(huà)說。
一是硬件升級隻是數(shù)據庫服務器(qì)性能提升的一個(gè)充分條件,而不是必要條件。也就是說,硬件的升級并不一定會(huì)導緻服務器(qì)性能的提升。在硬件升級的同時(shí),往往也需要調整相關的配置。讓硬件升級的優勢得(de)到極大(dà)的發揮。筆者認為(wèi),有(yǒu)時(shí)候服務配置比純粹的硬件升級更加重要。一些(xiē)經驗不足的網絡管理(lǐ)人(rén)員隻知道(dào)升級硬件,而忽視(shì)了服務的調整配置。他們這是走進了一個(gè)死胡同,效果往往不能夠達到他們的預期。
二是一些(xiē)并發性比較大(dà)的應用服務器(qì),最好不要放在同一個(gè)服務器(qì)上(shàng)。現在企業基于服務器(qì)、客戶端模式的管理(lǐ)軟件應用越來(lái)越多(duō)。這種模式一個(gè)顯著的特點,就是并發性訪問比較頻繁,給應用服務器(qì)帶來(lái)了很(hěn)大(dà)的壓力。在一些(xiē)性能要求比較高(gāo)的企業,它們把數(shù)據庫與前台的應用程序服務器(qì)都分開(kāi)放置,以求優化服務器(qì)的性能。而且,現在服務器(qì)價格已經逐漸能夠被企業所接受。筆者認為(wèi),企業沒有(yǒu)必要在這方面省錢(qián)。若多(duō)個(gè)應用服務并發性訪問比較多(duō)的情況下,則最好考慮把他們部署在不同的服務器(qì)上(shàng)。以提高(gāo)各個(gè)應用服務的性能。
三是在同一個(gè)服務器(qì)上(shàng)部署多(duō)個(gè)應用服務的話(huà),要考慮應用服務的穩定性。因為(wèi)像這家(jiā)企業在同一個(gè)服務器(qì)上(shàng)部署數(shù)據庫與郵箱服務器(qì),筆者并不是很(hěn)贊同。因為(wèi)郵箱服務器(qì)是一個(gè)比較容易遭受到攻擊的服務器(qì)。垃圾郵件、病毒郵件等等都可(kě)能導緻服務期運行(xíng)不正常。把郵箱服務放在SQL Server數(shù)據庫服務旁邊,會(huì)降低(dī)數(shù)據庫服務的穩定性。最好還(hái)是能夠分開(kāi)部署。
企業網站(zhàn)建設解決方案 營銷型網站(zhàn)建設解決方案 行(xíng)業門(mén)戶網站(zhàn)建設解決方案 外貿網站(zhàn)解建設決方案 品牌形象網站(zhàn)建設解決方案 購物商城網站(zhàn)建設解決方案 政府網站(zhàn)建設解決方案 手機網站(zhàn)建設解決方案 教育培訓網站(zhàn)建設解決方案 珠寶高(gāo)端奢飾品網站(zhàn)建設解決方案 房(fáng)地産、地産項目網站(zhàn)建設解決方案 集團、上(shàng)市企業網站(zhàn)建設解決方案 數(shù)碼、電(diàn)子産品網站(zhàn)建設解決方案 美容、化妝品行(xíng)業網站(zhàn)建設解決方案
10年專業互聯網服務經驗 重慶最專業網站(zhàn)團隊 資深行(xíng)業分析策劃 B2C營銷型網站(zhàn)建設領先者 最前沿視(shì)覺設計(jì)、研發能力 時(shí)刻最新技(jì)術(shù)領先研發能力 具有(yǒu)完備的項目管理(lǐ) 完善的售後服務體(tǐ)系 深厚的網絡運營經驗
中技(jì)互聯一直秉承專業、誠信、服務、進取的價值觀,堅持優秀的商業道(dào)德,以用戶最終價值為(wèi)導向,向用戶提供優質産品和(hé)優質服務,從而赢得(de)了用戶的信賴。始終以不懈的努力、更高(gāo)的目标來(lái)要求自己。
主營業務:網站(zhàn)建設 | 重慶網站(zhàn)建設 | 重慶網站(zhàn)設計(jì) | 重慶網站(zhàn)制(zhì)作(zuò) | 重慶網頁設計(jì) | 重慶網站(zhàn)開(kāi)發
CopyrightZJCOO technology Co., LTD. All Rights Reserved.
渝ICP 備11003429号