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