系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當(dāng)前位置:系統(tǒng)之家 > 系統(tǒng)教程 > Linux使用管理交換空間

Linux中如何使用和管理交換空間

時(shí)間:2014-12-18 14:12:56 作者:qipeng 來源:系統(tǒng)之家 1. 掃描二維碼隨時(shí)看資訊 2. 請(qǐng)使用手機(jī)瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20141218/32894.html 手機(jī)查看 評(píng)論

  給計(jì)算機(jī)配置交換空間可以充分利用系統(tǒng),在物理內(nèi)存被充滿時(shí)使用,那么Linux下要如何使用Linux交換空間呢?Linux交換空間又要如何管理呢?下面小編就給大家介紹下Linux下使用交換空間的方法,一起來學(xué)習(xí)下吧。

 Linux中如何使用和管理交換空間

  一、UNIX如何使用交換空間

  所有 UNIX 操作系統(tǒng)都支持某種虛擬內(nèi)存 (VM) 系統(tǒng)。使用 VM 系統(tǒng),您有兩個(gè)主要區(qū)域來存儲(chǔ)有關(guān)活動(dòng)應(yīng)用程序及其使用的數(shù)據(jù)的信息——物理隨機(jī)訪問存儲(chǔ)器 (RAM) 和硬盤驅(qū)動(dòng)器上分配的空間。

  在具有 VM 的計(jì)算機(jī)中,可加載到內(nèi)存中的應(yīng)用程序和數(shù)據(jù)量可以大于物理 RAM,因?yàn)闆]有活動(dòng)地使用的應(yīng)用程序和信息被交換 到了磁盤上(交換空間 這個(gè)術(shù)語由此得名)。

  VM 系統(tǒng)的優(yōu)點(diǎn)在于,物理 RAM 得到了更有效的利用——這是因?yàn)樗鼉H包含正在執(zhí)行的應(yīng)用程序和正在使用的數(shù)據(jù)。由于 RAM 比硬盤空間快,您從活動(dòng)地加載的應(yīng)用程序中獲得了所需的性能,同時(shí)還得益于能夠運(yùn)行比通常所支持的更多的應(yīng)用程序。

  其結(jié)果是您獲得了大得多的可尋址內(nèi)存空間(在 32 為系統(tǒng)上為 4GB,在 64 位系統(tǒng)上則更大),從而使得應(yīng)用程序開發(fā)更加容易,同時(shí)仍然提供高性能。

  二、設(shè)置交換空間值

  您在計(jì)算機(jī)上配置的交換空間量主要取決于應(yīng)用程序和操作系統(tǒng)。如果交換空間太小,則可能無法運(yùn)行您希望運(yùn)行的所有應(yīng)用程序,而如果交換空間太大,則可能在浪費(fèi)那些從未使用的磁盤空間。您可能還會(huì)間接地使得系統(tǒng)過載,因?yàn)榕c太小的交換空間相比,太大的交換空間會(huì)導(dǎo)致糟糕的性能,這是由于與系統(tǒng)執(zhí)行實(shí)際處理所花的時(shí)間相比,它在換入和換出頁面上所花的時(shí)間更多。

  不同的 UNIX 變體以不同的方式使用它們的交換空間。有些變體僅在已經(jīng)使用完物理內(nèi)存時(shí)才使用交換空間。其他變體則對(duì)所有非活動(dòng)的應(yīng)用程序和未使用的頁面使用交換空間。有些變體保留所有應(yīng)用程序中的數(shù)據(jù)副本——同時(shí)包括內(nèi)存和交換空間中的應(yīng)用程序。缺省情況下,有些變體避免使用交換空間,并盡可能提供某種機(jī)制來允許您調(diào)整交換空間的使用方式。許多變體使用這些不同安排的組合來充分利用它們的交換空間。

  例如在 Linux® 中,當(dāng)您使用 2.6 內(nèi)核時(shí),可以通過設(shè)置 /etc/sysctl.conf 中的 vm.swappiness 值來調(diào)整系統(tǒng)的 swappiness。較高的值導(dǎo)致交換更多頁面,較低的值導(dǎo)致將更多應(yīng)用程序保留在內(nèi)存中(即使這些應(yīng)用程序處于空閑狀態(tài))。

  除了這些基礎(chǔ)之外,還有許多關(guān)于應(yīng)該如何配置 VM 和應(yīng)該分配多少磁盤空間的觀點(diǎn)和規(guī)則。下面總結(jié)了其中一些方法:

  1. 有些管理員認(rèn)為,您的交換空間決不應(yīng)該少于物理 RAM。由于其中的 VM 使用方式,這是較舊的 UNIX 版本(尤其是 SunOS)的一個(gè)要求。從理論上講,擁有比物理 RAM 更多的 VM 可以使操作系統(tǒng)能夠在系統(tǒng)變得空閑時(shí)將所有當(dāng)前進(jìn)程換出到磁盤上,并且能夠提高系統(tǒng)的性能,因?yàn)榭梢詫⑿逻M(jìn)程直接加載到 RAM 中,而不必預(yù)先交換應(yīng)用程序。

  2.對(duì)于開發(fā)系統(tǒng),許多管理員都贊成應(yīng)該有與 RAM 一樣多的 VM。采用這種方法的原因在于,交換空間還在系統(tǒng)故障期間用作轉(zhuǎn)儲(chǔ)活動(dòng)內(nèi)存的位置;然后可以在啟動(dòng)期間重新加載所存儲(chǔ)的內(nèi)存轉(zhuǎn)儲(chǔ),并將其保存為內(nèi)核核心文件。如果所配置的交換空間小于物理 RAM,此類轉(zhuǎn)儲(chǔ)就無法實(shí)現(xiàn)。

  3.在高性能部署環(huán)境中,由于您只希望將應(yīng)用程序活動(dòng)地保留在內(nèi)存中,并且不需要大量的交換,您可以配置盡可能小的 VM。崩潰恢復(fù)不是必需的,而確定物理 RAM 的潛在缺乏(由于交換空間用盡)的能力可以提供警告,使您知道應(yīng)用程序環(huán)境未得到優(yōu)化或者您需要升級(jí) RAM。

  4.對(duì)于桌面環(huán)境,擁有非常大的 VM 分配可能對(duì)您有利,因?yàn)樗鼓軌蜻\(yùn)行大量的應(yīng)用程序(其中許多應(yīng)用程序可能是空閑的,可以容易地交換,從而使更多 RAM 對(duì)活動(dòng)應(yīng)用程序可用)。

  選擇正確的交換空間量很大程度上取決于您所配置的平臺(tái)——其預(yù)期用途和您希望如何處理可用 VM 缺乏的情況。

  下面是一些保守值:

  1. 在桌面系統(tǒng)上,至少分配與物理 RAM 一樣多的交換空間。

  2. 在服務(wù)器上,至少分配可用 RAM 的 50% 作為交換空間。一旦頭腦中有了大體數(shù)字,您就需要配置交換空間。

  三、配置交換空間

  所有 UNIX 系統(tǒng)都有多種類型的交換空間。主交換空間是通常在啟動(dòng)時(shí)配置的交換空間,并且通常是作為操作系統(tǒng)安裝的一部分來設(shè)置的。所有 UNIX 系統(tǒng)通常都有一個(gè)主交換空間分配。

  交換空間的創(chuàng)建和配置方式隨不同的系統(tǒng)而異。在 Linux 下,用于交換的磁盤分區(qū)是通過分區(qū) ID 來標(biāo)識(shí)的,該分區(qū)必須通過 mkswap 命令來初始化:

  代碼如下:

  $ mkswap /dev/sda2

  在大多數(shù)傳統(tǒng) UNIX 環(huán)境中,您可以使用任何可用分區(qū)而無需進(jìn)行任何準(zhǔn)備工作。在 HP-UX、AIX® 和 Linux 上,您可以使用 swapon 命令來將分區(qū)添加到可用的交換空間:

  代碼如下:

  $ swapon /dev/sda2

  在 Solaris 上,您可以使用 swap 命令來將交換空間添加到系統(tǒng):

  代碼如下:

  $ swap -a /dev/dsk/c0t0d0s2

  請(qǐng)注意,以這種方式添加的交換空間在重新啟動(dòng)后不會(huì)保留。若要永久地將交換空間添加到系統(tǒng),您必須配置啟動(dòng)配置文件之一來自動(dòng)啟用交換空間分配。

  四、添加啟動(dòng)時(shí)交換空間

  在大多數(shù) UNIX 變體下,交換空間都是作為內(nèi)核初始化的一部分在啟動(dòng)時(shí)自動(dòng)添加的。大多數(shù)變體使用文件系統(tǒng)安裝文件(/etc/fstab、/etc/vfstab 或 /etc/filesystems)中的行來指定要用作交換空間的分區(qū)。您可以從 Solaris 的 /etc/vfstab 文件中看到這樣一個(gè)示例

  在 Solaris 中指定要用作交換空間的分區(qū):

  代碼如下:

  #device device mount FS fsck mount mount

  #to mount to fsck point type pass at boot options

  #

  fd - /dev/fd fd - no -

  /proc - /proc proc - no -

  /dev/dsk/c0d0s1 - - swap - no -

  /dev/dsk/c0d0s0 /dev/rdsk/c0d0s0 / ufs 1 no -

  /dev/dsk/c0d0s7 /dev/rdsk/c0d0s7 /export/home ufs 2 yes -

  /devices - /devices devfs - no -

  ctfs - /system/contract ctfs - no -

  objfs - /system/object objfs - no -

  swap - /tmp tmpfs - yes -

  下面顯示了 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

  您應(yīng)該使用對(duì)應(yīng)的命令或 Smitty 工具來修改該文件內(nèi)容,而不要直接編輯該文件。

  若要?jiǎng)h除額外的交換空間,您可以使用對(duì)應(yīng)的 swapoff 或 swap -d 命令來禁用該交換分區(qū)。然而要注意,您只能禁用當(dāng)前未使用的交換分區(qū),并且不能禁用主交換分區(qū)。

  五、添加臨時(shí)交換容量

  有時(shí)您可能會(huì)用盡已配置的交換空間分區(qū),從而在短時(shí)間內(nèi)需要更多 VM,直到您能夠組織某種更永久性的解決方案。如果有某個(gè)分區(qū)可用,您可以按照上面在配置交換分區(qū)部分中的介紹來準(zhǔn)備它。

  如果沒有空余的分區(qū)可用,您可以創(chuàng)建一個(gè)或多個(gè)文件,并將它們臨時(shí)添加到可用交換池中。大多數(shù)系統(tǒng)甚至允許您在 NFS 安裝的文件系統(tǒng)上使用交換文件,當(dāng)您沒有本地磁盤空間可用時(shí),就可以使用這樣的文件系統(tǒng)。

  若要將文件用于交換空間,請(qǐng)首先創(chuàng)建一個(gè)適當(dāng)?shù)奈募kfile》 命令在這里最合適,因?yàn)樗峁┝藙?chuàng)建大型文件的簡(jiǎn)單方法。您可以在命令行指定文件名和文件大。

  代碼如下:

  mkfile 512m /export/data/swapfile

  然后可以像添加分區(qū)一樣添加該文件:

  代碼如下:

  $ swap -a /export/data/swapfile

  or

  代碼如下:

  $ swapon /export/data/swapfile

  以這種方式使用的交換文件通常決不是針對(duì)交換空間問題的長(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 工具來獲得同樣的信息

  代碼如下:

  $ 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)的問題時(shí),您通常需要內(nèi)存和分頁使用情況的更加交互式的視圖。

  七、活動(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 配置和分配的決策。

  下面顯示了針對(duì) Solaris 計(jì)算機(jī)的輸出示例(間隔為五秒)

  代碼如下:

  kthr memory page disk faults cpu

  r b w swap free re mf pi po fr de sr cd cd cd cd in sy cs us sy id

  0 0 0 945932 385632 9 36 13 0 1 0 100 3 0 0 0 413 172 87 0 36 63

  0 0 0 944616 384068 0 8 3 0 0 0 0 0 0 0 0 654 21 51 0 1 99

  0 0 0 944612 384064 0 0 0 0 0 0 0 0 0 0 0 596 21 52 0 1 99

  0 0 0 944612 384064 0 0 0 0 0 0 0 0 0 0 0 694 12 48 0 1 99

  0 0 0 944612 384064 0 0 0 0 0 0 0 5 0 0 0 658 11 50 0 1 99

  0 0 0 944612 384064 0 0 0 0 0 0 0 0 0 0 0 576 18 52 0 1 99

  0 0 0 944500 383988 115 850 1 0 0 0 0 0 0 0 0 612 1656 120 1 5 94

  0 0 0 942060 382444 6 62 0 0 0 0 0 0 0 0 0 669 256 146 0 2 98

  0 0 0 942048 382432 9 105 0 0 0 0 0 0 0 0 0 699 414 188 0 2 98

  0 0 0 946188 388188 481 2400 10 10 10 0 0 5 0 0 0 595 12613 6082 6 18 76

  0 0 0 944488 386308 769 4753 1 8 8 0 0 7 0 0 0 625 15705 6285 8 29 63

  0 0 0 943128 385104 839 5194 176 9 9 0 0 14 0 0 0 579 16077 6304 8 32 60

  0 0 0 937692 377628 32 209 2 0 0 0 0 2 0 0 0 654 403 131 0 2 97

  0 0 0 937228 377208 0 0 0 0 0 0 0 0 0 0 0 647 38 63 0 1 99

  0 0 0 937220 377200 121 980 0 0 0 0 0 0 0 0 0 623 1246 218 1 6 93

  0 0 0 937348 377320 126 1044 2 1 1 0 0 3 0 0 0 667 1266 228 1 7 93

  0 0 0 937428 377408 57 686 0 0 0 0 0 0 0 0 0 702 890 180 1 5 94

  0 0 0 937436 377404 72 861 0 0 0 0 0 54 0 0 0 689 1113 295 1 6 93

  其中存在許多列——有些列比另一些列更重要。關(guān)鍵的列包括:

  * swap——顯示可用的總交換空間

  * free——顯示空閑的交換空間量

  * pi——換入的千字節(jié)數(shù)

  * po——換出的千字節(jié)數(shù)

  * fr——空閑的千字節(jié)數(shù)

  非常低的空閑空間量和較高的換入或換出頁數(shù)可能表明 VM 不足,非常高的換入和換出頁數(shù)可能表明物理 RAM 不足。

  八、將交換空間用于臨時(shí)存儲(chǔ)

  在某些 UNIX 變體下,特別是 Solaris 和 Linux,您可以使用 tmpfs 文件系統(tǒng);該文件系統(tǒng)使用 VM 作為存儲(chǔ)空間。當(dāng)您有充足的 RAM 時(shí),這提供了支持超快速磁盤訪問的理想方法;未使用的文件將交換到磁盤上。其結(jié)果是實(shí)現(xiàn)了快速訪問最常用文件的高效解決方案,并且它可以顯著提高應(yīng)用程序速度,例如軟件開發(fā),其中要在編譯過程期間創(chuàng)建大量的臨時(shí)文件。

  上面就是Linux下交換空間的使用方法介紹了,如果你的系統(tǒng)空間滿了,可配置交換空間解決該問題,但交換空間內(nèi)存有限,光靠交換空間只能暫時(shí)解決問題。

標(biāo)簽 交換空間

發(fā)表評(píng)論

0

沒有更多評(píng)論了

評(píng)論就這些咯,讓大家也知道你的獨(dú)特見解

立即評(píng)論

以上留言僅代表用戶個(gè)人觀點(diǎn),不代表系統(tǒng)之家立場(chǎng)

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

官方交流群 軟件收錄