Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Linux系統教程 >> Linux教程 >> 兩個措施補救Linux系統swap分區太小問題

兩個措施補救Linux系統swap分區太小問題

日期:2017/2/7 16:57:31      編輯:Linux教程

為了突破物理內存的限制,在操作系統中實現了“虛擬內存”技術。它使得應用程序可以操縱大於實際物理內存的空間。而且虛擬內存可以用來隔離每個進程,成為進程的安全保護網,使得每個進程都不受其他程序的干擾。如果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空間的。如上圖所示,筆者就在home目錄下創建了一個swap文件,並且通過啟動配置文件讓其隨著系統的啟動而自動啟用。如此配置之後,Oracle數據庫系統就可以順利安裝了。


這兩種調整方式的具體的實現方式如下所示。

 

 

 


措施一:創建新的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空間容量。

Copyright © Windows教程網 All Rights Reserved