【Solaris 性能監(jiān)控的Swap空間管理】
隨著電子商務(wù)如火如荼的開(kāi)展,網(wǎng)站服務(wù)器的性能變得尤其重要 。一旦服務(wù)器的能力不能滿足用戶的需要,就會(huì)對(duì)用戶的服務(wù)大打折扣,那么就需要對(duì)服務(wù)器進(jìn)行升級(jí)擴(kuò)容 。但是,有些時(shí)候只需對(duì)服務(wù)器進(jìn)行一些適當(dāng)?shù)男阅苷{(diào)整,便可以越過(guò)性能的瓶頸,大大提高服務(wù)器的吞吐能力,從而減少服務(wù)器升級(jí)的費(fèi)用 。
本文介紹了在Solaris平臺(tái)上Swap(交換)空間的基本概念、實(shí)現(xiàn)的原理以及對(duì)Swap(交換)空間進(jìn)行監(jiān)控的方法和調(diào)整的策略 。
什么是SWAP(交換)空間
對(duì)于一般的Solaris系統(tǒng)管理員來(lái)說(shuō),很少會(huì)接觸Swap(交換)空間,在他們看來(lái)Swap區(qū)只不過(guò)是磁盤(pán)上的一兩個(gè)分區(qū)或是幾個(gè)Swap(交換)文件,當(dāng)系統(tǒng)沒(méi)有足夠的物理內(nèi)存來(lái)處理當(dāng)前進(jìn)程的時(shí)候,就利用Swap(交換)空間作為虛擬內(nèi)存的臨時(shí)存儲(chǔ)空間,這種說(shuō)法從技術(shù)角度來(lái)說(shuō)是沒(méi)有錯(cuò)的,但Solaris在實(shí)現(xiàn)Swap時(shí)有其非常獨(dú)特的地方 。
SWAP空間作用
眾所周知,現(xiàn)代操作系統(tǒng)都實(shí)現(xiàn)了“虛擬內(nèi)存”這一技術(shù),不但在功能上突破了物理內(nèi)存的限制,使程序可以操縱大于實(shí)際物理內(nèi)存的空間,更重要的是“虛擬內(nèi)存”是隔離每個(gè)進(jìn)程的安全保護(hù)網(wǎng),使每個(gè)進(jìn)程不受其他程序的干擾 。
Swap空間的作用可簡(jiǎn)單描述為:當(dāng)系統(tǒng)的物理內(nèi)存不夠用的時(shí)候,就需要將物理內(nèi)存中的一部分空間釋放出來(lái),以供當(dāng)前運(yùn)行的程序使用 。那些被釋放的空間可能來(lái)自一些很長(zhǎng)時(shí)間沒(méi)有什么操作的程序,這些被釋放的空間被臨時(shí)保存到Swap空間中,等到那些程序要運(yùn)行時(shí),再?gòu)腟wap中恢復(fù)保存的數(shù)據(jù)到內(nèi)存中 。這樣,系統(tǒng)總是在物理內(nèi)存不夠時(shí),才進(jìn)行Swap交換 。這種現(xiàn)象對(duì)于計(jì)算機(jī)使用者是經(jīng)常遇到的 。
有一點(diǎn)要聲明的是,并不是所有從物理內(nèi)存中交換出來(lái)的數(shù)據(jù)都會(huì)被放到Swap中(如果這樣的話,Swap會(huì)不堪重負(fù)),有相當(dāng)一部分的數(shù)據(jù)直接交換到文件系統(tǒng) 。例如,有的程序會(huì)打開(kāi)一些文件,對(duì)文件進(jìn)行讀寫(xiě)(其實(shí)每個(gè)程序都至少打開(kāi)一個(gè)文件,那就是運(yùn)行程序本身),當(dāng)這些程序的內(nèi)存空間需要交換出去時(shí),文件部分的數(shù)據(jù)就沒(méi)有必要放到Swap空間中了,如果是讀文件操作,那么內(nèi)存數(shù)據(jù)直接就釋放了,不需要交換出來(lái),因?yàn)橄麓涡枰獣r(shí),直接從文件系統(tǒng)就能恢復(fù);如果是寫(xiě)文件,只需要將變化的數(shù)據(jù)保存到文件中,以便恢復(fù) 。但是那些用malloc(3C)和new函數(shù)生成的對(duì)象的數(shù)據(jù)則不同,需要Swap空間,因?yàn)樗鼈冊(cè)谖募到y(tǒng)中沒(méi)有相應(yīng)的“儲(chǔ)備”文件,因此被稱為“匿名”(Anonymous)的內(nèi)存數(shù)據(jù),這類(lèi)數(shù)據(jù)還包括堆棧中的一些狀態(tài)和變量數(shù)據(jù)等,所以說(shuō),Swap空間是“匿名”數(shù)據(jù)的交換空間 。
Swap的配置對(duì)性能的影響
太多的Swap空間會(huì)浪費(fèi)磁盤(pán)的空間,而太少的Swap空間,系統(tǒng)則會(huì)發(fā)生錯(cuò)誤 。
如果系統(tǒng)的物理內(nèi)存用光了,你的系統(tǒng)就會(huì)跑得慢,但仍能運(yùn)行;如果Swap空間用光了,那么系統(tǒng)就會(huì)發(fā)生錯(cuò)誤 。例如,Web服務(wù)器能根據(jù)不同的請(qǐng)求數(shù)量衍生出多個(gè)服務(wù)進(jìn)程(或線程),如果Swap空間用完,則服務(wù)進(jìn)程無(wú)法進(jìn)動(dòng),通常會(huì)出現(xiàn)"application is out of memory"的錯(cuò)誤,嚴(yán)重時(shí)會(huì)造成服務(wù)進(jìn)程的死鎖 。因此Swap空間的分配是很重要的 。
通常情況下,Swap空間應(yīng)大于或等于物理內(nèi)存的大小,最小不應(yīng)小于64M,通常Swap空間的大小應(yīng)是物理內(nèi)存的2-2.5倍(Solaris 2以上的版本有所變化,見(jiàn)下文) 。但根據(jù)不同的應(yīng)用,應(yīng)有不同的配置:如果是小的桌面系統(tǒng),只需要較小的Swap空間,而大的服務(wù)器系統(tǒng)則視情況不同需要不同大小的Swap空間 。特別是數(shù)據(jù)庫(kù)服務(wù)器和Web服務(wù)器會(huì)隨著訪問(wèn)量的增加,對(duì)Swap 空間的要求也會(huì)增加,具體配置參見(jiàn)各自服務(wù)器產(chǎn)品的說(shuō)明 。
推薦閱讀
- Solaris 實(shí)現(xiàn)安裝包的反安裝
- 使用 Solaris 系統(tǒng)幫助
- Solaris 8 新增功能一覽 其他軟件
- groupadd,useradd Solaris 用戶增加命令
- Solaris 提高文件系統(tǒng)的使用效率
- Solaris 域名系統(tǒng)配置
- Solaris 終端機(jī)常用控制鍵
- 給 Solaris 打補(bǔ)丁
- Solaris 系統(tǒng)性能維護(hù)
- Solaris 設(shè)置網(wǎng)卡IP地址
