Linux交換空間(swap space)是磁盤上的一塊區(qū)域,可以是一個分區(qū)或一個文件,或者是他們組合。當系統(tǒng)物理內(nèi)存吃緊時,Linux會將內(nèi)存中不常訪問的數(shù)據(jù)保存到swap上,這樣系統(tǒng)就有更多的物理內(nèi)存為各個進程服務。

網(wǎng)站設計制作過程拒絕使用模板建站;使用PHP+MYSQL原生開發(fā)可交付網(wǎng)站源代碼;符合網(wǎng)站優(yōu)化排名的后臺管理系統(tǒng);網(wǎng)站設計、成都網(wǎng)站設計收費合理;免費進行網(wǎng)站備案等企業(yè)網(wǎng)站建設一條龍服務.我們是一家持續(xù)穩(wěn)定運營了十年的成都創(chuàng)新互聯(lián)公司網(wǎng)站建設公司。
Linux 交換空間(swap space)是磁盤上的一塊區(qū)域,可以是一個分區(qū),也可以是一個文件,或者是他們的組合。簡單點說,當系統(tǒng)物理內(nèi)存吃緊時,Linux 會將內(nèi)存中不常訪問的數(shù)據(jù)保存到 swap 上,這樣系統(tǒng)就有更多的物理內(nèi)存為各個進程服務,而當系統(tǒng)需要訪問 swap 上存儲的內(nèi)容時,再將 swap 上的數(shù)據(jù)加載到內(nèi)存中,這就是我友判們常說的 swap out 和 swap in。
交換空間 Linux swap
理論上來說,如果物理內(nèi)存足夠多并且不需要休眠功能,那 swap 就沒什么用,可關鍵問題是我們很難保證物理內(nèi)存在任何情況下都夠用,因為總有意想不到的情況發(fā)生,比如某些進程耗內(nèi)存超預期,服務器壓力超預期,內(nèi)存泄漏等。
Linux swap 的好處
1.對于一些大型的應用程序(如 LibreOffice、video editor 等),在啟動的過程中會使用大量的內(nèi)存,但這些內(nèi)存很多時候只是在啟動的時候用一下,后面的運行過程中很少再用到這些內(nèi)存。有了 swap 后,系統(tǒng)就可以將這部分不這么使用好讓改的內(nèi)存數(shù)據(jù)保存到 swap 上去,從而釋放出更多的物理內(nèi)存供系統(tǒng)使用。
2.很多發(fā)行版(如 ubuntu)的休眠功能依賴于 swap 分區(qū),當系統(tǒng)休眠的時候,會將內(nèi)存中的數(shù)據(jù)保存到 swap 分區(qū)上,等下次系統(tǒng)啟動的時候,再將數(shù)據(jù)加載到內(nèi)存中,這樣可以加快系統(tǒng)的啟動速度,所以如果要使用休眠的功能,必須要配置 swap 分區(qū),并且大小一定要大于等于物理內(nèi)存
3.在某些情況下,物理內(nèi)存有限,但又想運行耗內(nèi)存的程序怎么辦?這時可以通過配置足夠的 swap 空間來達到目標,雖然慢一點,但至少可以運行。
4.雖然大部分情況下,物理內(nèi)存都是夠用的,但是總有一些意想不到的狀況,比如某個進程需要的內(nèi)存超過了預期,或者有進程存在內(nèi)存泄漏等,當內(nèi)存不夠的時候,就會觸發(fā)內(nèi)核的 OOM killer,根據(jù) OOM killer 的配置,某些進程會被 kill 掉或者系統(tǒng)直接重啟(默認情況是優(yōu)先 kill 耗內(nèi)存最多的那個進程),不過有了 swap 后,可以拿 swap 當內(nèi)存用,雖然速度慢了點,但至少給了我們一個去 debug、kill 進程或者保存當前工作進度的機會。
5.如果看過 Linux 內(nèi)存管理,就會知道系統(tǒng)會盡可能多的將空閑內(nèi)存用于 cache,以加快系統(tǒng)的 I/O 速度,所以如果能將不怎么常用的內(nèi)存數(shù)據(jù)移動到 swap 上,就會有更多滑手的物理內(nèi)存用于 cache,從而提高系統(tǒng)整體性能。
計算機的存儲空間問題相信大部分的管理員都有不同的處理方式。今天我們就一起來了解一下,在linux系統(tǒng)中,交換空間的具體使用情況是什么。希望通過對本文的閱讀,大家對于linux系統(tǒng)有更多的了解,下面就開始今天的主要內(nèi)容吧。
交換空間
交換空間是現(xiàn)代Linux系統(tǒng)中的二種內(nèi)存類型。交換空間的主要功能是當全部的RAM被占用并且需要更多內(nèi)存時,用磁盤空間代替RAM內(nèi)存。
例如,假設你有一個8GBRAM的計算機。如果你啟動的程序沒有填滿RAM,一切都好,不需要交換。假設你在處理電子表格,當添加更多的行時,你電子表格會增長,加正滑悔上所有正在運行的程序,將會占用全部的RAM。如果這時沒有可用的交換空間,你將不得不停止處理電子表格,直到關閉一些其他程序來釋放一些RAM。
內(nèi)核使用一個內(nèi)存管理程序來檢測近沒有使用的內(nèi)存塊(內(nèi)存頁)。內(nèi)存管理程序將這些相對不經(jīng)常使用的內(nèi)存頁交換到硬盤上專門指定用于“舉正分頁”或交換的特殊分區(qū)。這會釋放RAM,為輸入電子表格更多數(shù)據(jù)騰出了空間。那些換出到硬盤的內(nèi)存頁面被內(nèi)核的內(nèi)存管理代碼跟蹤,如果需要,可以被分頁回RAM。
Linux計算機中的內(nèi)存總量是RAM+交換分區(qū),交換分區(qū)被稱為虛擬內(nèi)存.
Linux交換分區(qū)類型
Linux提供了兩種類型的交換空間。默認情況下,大多數(shù)Linux在安裝時都會創(chuàng)建一個交換分區(qū),但是也可以使用一個特殊配置的文件作為交換文件。電腦培訓發(fā)現(xiàn)交換分區(qū)顧名思義就是一個標準磁盤分區(qū),由mkswap命令指定交換空間。
如果沒有可用磁盤空間來創(chuàng)建新的交換分區(qū),或者卷組中沒有空間為交換空間創(chuàng)建邏輯讓悶卷,則可以使用交換文件。這只是一個創(chuàng)建好并預分配指定大小的常規(guī)文件。然后運行mkswap命令將其配置為交換空間。除非絕對必要,否則我不建議使用文件來做交換空間。(LCTT譯注:Ubuntu近來的版本采用了交換文件而非交換空間,所以我對于這種說法保留看法)
下面顯示了 Linux 中的 /etc/fstab 文件示例
代碼如下:
# 《fs》 《mountpoint》 《type》 《opts》
《dump/pass》
/dev/sda1 /boot ext2 noauto,noatime 1 1
/dev/sda3 / ext3 noatime 0 0
/dev/sda2 none swap sw 0 0
/dev/hda1 /var/lib/mysql ext3 noatime 1 2
/dev/hdb1 /export/data ext3 noatime 1 2
/dev/hde1 /export/home ext3 noatime 1 2
/dev/hde2 /var/tmp ext3 noatime 1 2
/dev/hde3 /usr/portage/distfiles ext3 noatime 1 2
/dev/hde4 /tmp ext3 noatime 1 2
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
none /proc proc defaults 0 0
最后,您可以在 AIX 中使用 /etc/swapspaces 文件來配置交換空間分區(qū)
代碼如下:
* This file is modified by the chps, mkps and rmps commands and referenced
* by the lsps and swapon commands.
hd6:
dev = /dev/hd6
paging00:
dev = /dev/paging00
paging01:
dev = /dev/paging01
您應該使用對應的命令或 Smitty 工具來修改該文件內(nèi)容,而不要直接編輯該文件。
若要刪除額外的交換空間,您可以使用對應的 swapoff 或 swap -d 命令來禁用該交換分區(qū)。然而要注意,您只能禁用當前未使用的交換分區(qū),并且不能禁用主交換分區(qū)。
五、添加臨時交換容量
有時您可能會用盡已配置的交換空間分區(qū),從而在短時間內(nèi)需要更多 VM,直到您能夠組織某種更永久性的解決方案。如果有某個分區(qū)可用,您可以按照上面在配置交換分區(qū)部分中的介紹來準備它。
如果沒有空余的分區(qū)可用,您可以創(chuàng)建一個或多個文件,并將它們臨時添加到可用交換池中。大多數(shù)系統(tǒng)甚至允許您迅兆在 NFS 安裝的文件系統(tǒng)上使用交換文件,當您沒有本地磁盤空間可用時,就可以使用這樣的文件系統(tǒng)。
若要將文件用于交換空間,請首先創(chuàng)建一個適當?shù)奈募kfile》 命令在這里最合適,因橘螞為它提供了創(chuàng)建大型文件的簡單方法。您可以在命令行指定文件名圓昌埋和文件大小:
代碼如下:
mkfile 512m /export/data/swapfile
然后可以像添加分區(qū)一樣添加該文件:
代碼如下:
$ swap -a /export/data/swapfile
or
代碼如下:
$ swapon /export/data/swapfile
以這種方式使用的交換文件通常決不是針對交換空間問題的長期解決方案。您應該盡快為交換空間配置專用分區(qū)。
六、監(jiān)視交換空間使用情況
交換空間及其使用情況的監(jiān)視包括兩個方面:當前使用情況和活動使用情況。您可以在各種 UNIX 變體中找到一批不同的工具,它們報告可用空閑內(nèi)存和 VM 使用情況以及當前使用情況。
在 Solaris 下,swap 工具提供了大多數(shù)交換接口功能,包括報告使用情況和可用設備。例如,若要獲得已配置的交換設備列表,如在 Solaris 下監(jiān)視交換空間使用情況
代碼如下:
$ swap -l
swapfile dev swaplo blocks free
/dev/dsk/c0d0s1 102,1 8 1220928 1220928
在 AIX 下,您可以使用 lsps 工具來獲得同樣的信息
代碼如下:
$ lsps -a
Page Space Physical Volume Volume Group Size %Used Active Auto
hd6 hdisk0 rootvg 2048MB 3 yes yes
在 Linux 下,您可以使用 swapon 工具
代碼如下:
$ swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 1004052 319744 -1
在上述每個示例中,您都可以看到可用交換空間位置列表及其用途,并大致了解交換空間的當前使用量情況。
這些快照視圖非常有用,但它們僅顯示了當前使用情況。其中有關交換空間的定期或全面使用情況的信息非常少。出于性能的考慮,或者在診斷您懷疑可能與交換空間有關的問題時,您通常需要內(nèi)存和分頁使用情況的更加交互式的視圖。
七、活動 VM 監(jiān)視
vmstat 命令可以提供虛擬內(nèi)存使用情況的長期視圖,包括提供有關交換空間與 RAM 之間正在活動地交換的內(nèi)存量的信息。在命令行上,您需要指定要在報告統(tǒng)計信息時使用的間隔(以秒為單位)。結果輸出顯示了大量的信息,并且可用于做出有關 VM 配置和分配的決策。
當前題目:linux交換空間命令 linux交換空間不足的原因
當前路徑:http://chinadenli.net/article26/ddpihjg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、定制開發(fā)、靜態(tài)網(wǎng)站、網(wǎng)站設計公司、網(wǎng)站維護、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)