創建新的swap空間來增加swap容量
我們知道SWaP 是一個客觀的三維方法,為當今服務器的評估提供了現實而且富有綜合性的標準。那么,我們就發現了問題,如果SWaP空間不夠會產生什么負面作用呢?
簡單的來說,如果系統的物理內存用光了,系統就反映速度會變得很慢,但是操作系統仍能運行;如果SWaP空間用光了,那么系統就會發生錯誤。
例如,Web服務器能根據不同的請求數量衍生出多個服務進程或線程,如果SWaP空間用完,則服務進程無法啟動,就會出現SWaP空間不足的錯誤,嚴重時會造成服務進程的死鎖。可見SWaP空間的分配是很重要的。如果SWaP空間太小會造成應用程序錯誤,而不光光是性能下降的問題。
在Linux系統下,這個虛擬內存就被叫做SWaP。在安裝操作系統的時候,安裝向導會提示用戶需要創建多少的SWaP空間。通常情況下,SWaP比較合適的大小為物理內存的1-2倍。
但是有些應用程序的話,對于SWaP分區比較饑渴,如JAVA或者Oracle應用程序,他們要求SWaP分區的大小能夠達到物理內存的2倍以上。此時原先在安裝系統的時候為其分配的SWaP分區就太小了。那么該如何補救呢?
筆者以前就遇到過類似的問題。有一臺Linux服務器,上面已經部署了文件服務器。后來出于部署ERP系統的需要,要在這臺服務器上部署一個Oracle數據庫系統。不過Oracle數據庫系統對SWaP的空間有要求。
如果不滿足這個要求的話,Oracle操作系統無法安裝。而筆者不能夠通過重裝Linux服務器的方式來擴展SWaP空間,因為上面還運行著文件服務器。為此筆者只好通過其他途徑來實現這個需求了。
針對這種情況,Linux系統提出了一種補償措施,創建新的SWaP空間,增加SWaP容量。
措施:創建新的SWaP空間,增加SWaP容量。
如果在Linux服務器的硬盤中還有比較多的空余容量,或者系統管理員添置了新硬盤,此時就可以利用Linux系統自帶的fdisk硬盤格式化工具,來創建新的SWaP分區。具體的操作如下:
第一步:創建新的分區。如筆者在服務器硬盤中還有一個20G的分區沒有使用過,就可以利用fdisk磁盤格式化工具,來創建新的分區。具體fdisk命令的使用方法大家可以參考其它的相關資料,筆者在這里就不過多展開了。
在使用這個工具的時候,如果要把分區設置為SWaP分區,則需要注意要把空間設置為擴展分區。然后再在擴展分區上設置一個邏輯分區。如此的話,為后續維護與管理提供了方便。如管理員可以陸續增加SWaP空間等等。
第二步:將分區的文件系統設置為SWaP文件系統。
默認情況下系統新增加的分區其文件格式為ext3。為了讓這個分區成為SWaP分區,則需要把這個分區的文件格式改為SWaP文件系統。這個任務也是在fdisk命令中完成。
如果要把這個分區格式改為SWaP,則在fdisk命令執行時,當提示hex code時,系統管理員需要輸入SWaP文件系統的代號。通常情況下SWaP文件系統的代號為82。然歐再繼續后續的工作。如果不修改的話,則系統默認會采用ext3文件系統格式。
第三步:格式化并啟動SWaP分區格式。當fdisk命令執行完畢后,還必須重新啟動計算機,剛才的設置才會生效。但是,fdisk命令只是劃分出了一個SWaP分區,系統還是無法使用這個分區,因為這個分區還沒有格式化與啟動。
與微軟操作系統一樣,當劃分出一個分區之后,系統管理員還需要格式化這個分區。為此,系統管理員需要通過mkSWaP命令來對剛才劃分的SWaP分區進行格式化。不過與微軟操作系統不同的是,對分區格式化之后,這個新的分區默認情況下是沒有啟動的,第一次需要通過系統管理員手工啟動它。此時系統管理員需要采用的命令是SWaPon,來啟動SWaP分區。
通過以上簡單的三個步驟,就可以在硬盤為用的空間中或者新添加的硬盤中增加一個SWaP分區,以實現擴大SWaP分區容量的目的。不過這里需要注意一點,在使用fdisk工具的時候,會把目標空間中的內容都刪除。
為此只有當目標空間中沒有存儲文件或者存儲的文件不再需要時才使用這種方法。如果現在系統中沒有未使用的空間;但是已有的分區中則有多余的空間,則就需要采用另外一種方法,即通過增加SWaP文件的方式來調整SWaP空間容量。
【編輯推薦】