這樣來實現(xiàn)Swap空間的管理,是要防止Swap空間中有壞塊。如果系統(tǒng)檢查到Swap中有壞塊,則在相應(yīng)的位映射上標(biāo)記上0,表示此頁不可用。這樣在使用Swap時,不至于用到壞塊,而使系統(tǒng)產(chǎn)生錯誤。
現(xiàn)在的系統(tǒng)設(shè)計者認(rèn)為:
1.現(xiàn)在硬盤質(zhì)量很好,壞塊很少。
2.就算有,也不多,只需要將壞塊羅列出來,而不需要為每一頁建立映射。
3.如果有很多壞塊,就不應(yīng)該將此硬盤作為Swap空間使用。
于是,現(xiàn)在的Linux取消了位映射的方法,也就取消了128M的限制。直接用地址訪問,限制為2G。
Swap配置對性能的影響
對于分配太多的Swap空間,會浪費磁盤空間,而Swap空間太少,則系統(tǒng)會發(fā)生錯誤。
當(dāng)系統(tǒng)的物理內(nèi)存用光了,系統(tǒng)就會跑得很慢,但仍能運行;如果Swap空間用光了,那么系統(tǒng)就會發(fā)生錯誤。例如,Web服務(wù)器能根據(jù)不同的請求數(shù)量衍生出多個服務(wù)進程(或線程),如果Swap空間用完,則服務(wù)進程無法啟動,通常會出現(xiàn)“application is out of memory”的錯誤,嚴(yán)重時會造成服務(wù)進程的死鎖。因此Swap空間的分配是很重要的。
一般情況下,Swap空間應(yīng)大于或等于物理內(nèi)存的大小,最小不應(yīng)小于64M,通常Swap空間的大小應(yīng)是物理內(nèi)存的2-2.5倍。但根據(jù)不同的應(yīng)用,應(yīng)有不同的配置:如果是小的桌面系統(tǒng),則只需要較小的Swap空間,而大的服務(wù)器系統(tǒng)則視情況不同需要不同大小的Swap空間。特別是數(shù)據(jù)庫服務(wù)器和Web服務(wù)器,隨著訪問量的增加,對Swap空間的要求也會增加,具體配置參見各服務(wù)器產(chǎn)品的說明。
此外,Swap分區(qū)的數(shù)量對性能也有很大的影響。因為Swap交換的操作是磁盤IO的操作,如果有多個Swap交換區(qū),Swap空間的分配會以輪流的方式操作于所有的Swap,這樣會大大均衡IO的負(fù)載,加快Swap交換的速度。如果只有一個交換區(qū),所有的交換操作會使交換區(qū)變得很忙,使系統(tǒng)大多數(shù)時間處于等待狀態(tài),效率很低。用性能監(jiān)視工具就會發(fā)現(xiàn),此時的CPU并不很忙,而系統(tǒng)卻慢。這說明,瓶頸在IO上,依靠提高CPU的速度是解決不了問題的。
系統(tǒng)性能監(jiān)視
Swap空間的分配固然很重要,而系統(tǒng)運行時的性能監(jiān)控卻更加有價值。通過性能監(jiān)視工具,可以檢查系統(tǒng)的各項性能指標(biāo),找到系統(tǒng)性能的瓶頸。本文只介紹一下在Solaris下和Swap相關(guān)的一些命令和用途。
最常用的是Vmstat命令(在大多數(shù)Unix平臺下都有這樣一些命令),此命令可以查看大多數(shù)性能指標(biāo)。 例如:
vmstat 3
procs memory swap io system cpu r b w swpd free buff cache si so bi bo in cs us sy id 0 0 0 0 93880 3304 19372 0 0 10 2 131 10 0 0 99 0 0 0 0 93880 3304 19372 0 0 0 0 109 8 0 0 100 0 0 0 0 93880 3304 19372 0 0 0 0 112 6 0 0 100 …………
命令說明:
vmstat 后面的參數(shù)指定了性能指標(biāo)捕獲的時間間隔。3表示每三秒鐘捕獲一次。第一行數(shù)據(jù)不用看,沒有價值,它僅反映開機以來的平均性能。從第二行開始,反映每三秒鐘之內(nèi)的系統(tǒng)性能指標(biāo)。這些性能指標(biāo)中和Swap有關(guān)的包括以下幾項:
procs下的w
它表示當(dāng)前(三秒鐘之內(nèi))需要釋放內(nèi)存、交換出去的進程數(shù)量。
memory下的swpd
它表示使用的Swap空間的大小。
Swap下的si,so
si表示當(dāng)前(三秒鐘之內(nèi))每秒交換回內(nèi)存(Swap in)的總量,單位為kbytes;so表示當(dāng)前(三秒鐘之內(nèi))每秒交換出內(nèi)存(Swap out)的總量,單位為kbytes。
以上的指標(biāo)數(shù)量越大,表示系統(tǒng)越忙。這些指標(biāo)所表現(xiàn)的系統(tǒng)繁忙程度,與系統(tǒng)具體的配置有關(guān)。系統(tǒng)管理員應(yīng)該在平時系統(tǒng)正常運行時,記下這些指標(biāo)的數(shù)值,在系統(tǒng)發(fā)生問題的時候,再進行比較,就會很快發(fā)現(xiàn)問題,并制定本系統(tǒng)正常運行的標(biāo)準(zhǔn)指標(biāo)值,以供性能監(jiān)控使用。
另外,使用Swapon-s也能簡單地查看當(dāng)前Swap資源的使用情況。例如:
swapon -s
Filename Type Size Used Priority
/dev/hda9 partition 361420 0 3
能夠方便地看出Swap空間的已用和未用資源的大小。
應(yīng)該使Swap負(fù)載保持在30%%u4EE5下,這樣才能保證系統(tǒng)的良好性能。
增加Swap空間,分以下幾步:
1)成為超級用戶
$su - root
2)創(chuàng)建Swap文件
dd if=/dev/zero of=swapfile bs=1024 count=65536
創(chuàng)建一個有連續(xù)空間的交換文件。
3)激活Swap文件
/usr/sbin/swapon swapfile
swapfile指的是上一步創(chuàng)建的交換文件。
4)現(xiàn)在新加的Swap文件已經(jīng)起作用了,但系統(tǒng)重新啟動以后,并不會記住前幾步的操作。因此要在/etc/fstab文件中記錄文件的名字,和Swap類型,如:
/path/swapfile none Swap sw,pri=3 0 0
5)檢驗Swap文件是否加上
/usr/sbin/swapon -s
刪除多余的Swap空間。
1)成為超級用戶
2)使用Swapoff命令收回Swap空間。
#/usr/sbin/swapoff swapfile
3)編輯/etc/fstab文件,去掉此Swap文件的實體。
4)從文件系統(tǒng)中回收此文件。
#rm swapfile
5)當(dāng)然,如果此Swap空間不是一個文件,而是一個分區(qū),則需創(chuàng)建一個新的文件系統(tǒng),再掛接到原來的文件系統(tǒng)上。
總結(jié)
以上就是本文關(guān)于詳細(xì)解讀linux下swap分區(qū)的作用的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
更多關(guān)于云服務(wù)器,域名注冊,虛擬主機的問題,請訪問西部數(shù)碼官網(wǎng):m.ps-sw.cn