首頁  >  文章  >  運維  >  centos需要swap分割區嗎

centos需要swap分割區嗎

WBOY
WBOY原創
2022-04-08 10:55:023224瀏覽

centos需要swap分割區。 swap的全稱為“swap place”,即交換區的意思,用途是當物理內存不夠時,可以將資料放到swap中;進程需要進入到swap分區等待,然後把新的進程調入到內存中運行,因此centos是需要swap分割區的。

centos需要swap分割區嗎

本文操作環境:centos 7系統、Dell G3電腦。

centos需要swap分割區嗎

centos需要swap分割區

swap分割區

##swap分區的用處:swap是當實體記憶體不夠用的時候,把資料放到swap中,所以swap起到了一個虛擬記憶體的作用,在某種意義上也算是加大了記憶體空間。

通常memory是機器的實體內存,讀寫速度低於cpu一個量級,但是高於磁碟不只一個量級。所以,程式和資料如果在記憶體的話,會有非常快的讀寫速度。但是,記憶體的造價是要高於磁碟的,雖然相對來說價格一直在降低。除此之外,記憶體的斷電遺失資料也是一個原因說不能把所有資料和程式都保存在記憶體中。

既然不能全部使用內存,那麼資料還有程式肯定不可能一直霸佔記憶體。當記憶體沒有可用的,就必須要把記憶體中不常執行的程式給踢出去。但是踢到哪裡去,這時候swap就出現了。 swap全稱為swap place,也就是交換區,當記憶體不夠的時候,被踢出的進程被暫時儲存到交換區。當需要這條被踢出的進程的時候,就從交換區重新載入到內存,否則它不會主動交換到真實內存中。

 電腦將記憶體分為實體記憶體與虛擬記憶體(注意虛擬記憶體和虛擬位址空間的差異)。實體記憶體就是電腦的實際記憶體大小,由RAM晶片組成的。虛擬記憶體則是虛擬出來的、使用磁碟代替記憶體。虛擬記憶體的出現,讓機器記憶體不夠的情況得到部分解決。當程式運作起來由作業系統做具體虛擬記憶體到實體記憶體的替換與載入(對應的頁與段的虛擬記憶體管理)。這裡的虛擬記憶體即所謂的swap。

當使用者提交程序,然後產生進程,在機器上運行。機器會判斷當前實體記憶體是否還有空閒允許進程調入記憶體運行,如果有那麼則直接調入記憶體進行運行。

如果沒有,那麼會根據優先權選擇一個進程掛起,把該進程交換到swap中等待,然後把新的進程調入到記憶體中運行。根據這種換入和換出,實現了記憶體的循環利用,讓使用者感覺不到記憶體的限制。

從這裡也可以看出swap扮演了一個非常重要的角色,就是暫存被換出的進程。記憶體與swap之間是依照記憶體頁為單位來交換資料的,一般Linux中頁的大小設定為4kb。而記憶體與磁碟則是依照區塊來交換資料的。

新增swap分割區

使用dd指令建立名為swapfile 的swap交換檔(檔名與目錄任意):

 dd  if=/dev/zero  of=/var/swapfile  bs=1024  count=2097152

 或

 dd  if=/dev/zero  of=/var/swapfile  bs=1024  count=2048k

       科普:if(即輸入檔案,input file),of(即輸出檔案,output file)。 dev/zero是Linux的一種特殊字元設備(輸入設備),可以用來創建一個指定長度用於初始化的空文件,如臨時交換文件,該設備無窮無盡地提供0,可以提供任何你需要的數目。 bs=1024  :單位資料區塊(block)同時讀入/輸出的區塊位元組大小為1024  個位元組即1KB,bs(即block size)。 count=2048000  :資料塊(block)數量為2048000 ,即2048000個1KB。可以計算swap分割區的容量為:1KB *2097152=1KB *1024(k)*1024*2=2097152=2G。 (dd命令裡的單位M表示1024*1024,k表示1024)。

        回車後,會執行2g的讀寫操作,系統會卡一段時間,耐心等待執行結果。

執行完畢,對交換檔案格式化並轉換為swap分割區:

mkswap  /var/swapfile

掛載並啟動分割區:

swapon   /var/swapfile

執行以上指令可能會出現:「不安全的權限0644,建議使用0600」類似提示,不要緊張,實際上已經啟動了,可以忽略提示,也可以聽從系統的建議修改下權限:

chmod -R 0600 /var/swapfile

centos需要swap分割區嗎

推薦教學:《

centos教學

以上是centos需要swap分割區嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn