偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Linux系統(tǒng)上交換空間的介紹

系統(tǒng) Linux
當(dāng)今無論什么操作系統(tǒng)交換空間是非常常見的。Linux 使用交換空間來增加主機可用的虛擬內(nèi)存。它可以在常規(guī)文件或邏輯卷上使用一個或多個專用交換分區(qū)或交換文件。

 [[246065]]

學(xué)習(xí)如何修改你的系統(tǒng)上的交換空間的容量,以及你到底需要多大的交換空間。

當(dāng)今無論什么操作系統(tǒng)交換Swap空間是非常常見的。Linux 使用交換空間來增加主機可用的虛擬內(nèi)存。它可以在常規(guī)文件或邏輯卷上使用一個或多個專用交換分區(qū)或交換文件。

典型計算機中有兩種基本類型的內(nèi)存。***種類型,隨機存取存儲器 (RAM),用于存儲計算機使用的數(shù)據(jù)和程序。只有程序和數(shù)據(jù)存儲在 RAM 中,計算機才能使用它們。隨機存儲器是易失性存儲器;也就是說,如果計算機關(guān)閉了,存儲在 RAM 中的數(shù)據(jù)就會丟失。

硬盤是用于長期存儲數(shù)據(jù)和程序的磁性介質(zhì)。該磁介質(zhì)可以很好的保存數(shù)據(jù);即使計算機斷電,存儲在磁盤上的數(shù)據(jù)也會保留下來。CPU(中央處理器)不能直接訪問硬盤上的程序和數(shù)據(jù);它們必須首先復(fù)制到 RAM 中,RAM 是 CPU 訪問代碼指令和操作數(shù)據(jù)的地方。在引導(dǎo)過程中,計算機將特定的操作系統(tǒng)程序(如內(nèi)核、init 或 systemd)以及硬盤上的數(shù)據(jù)復(fù)制到 RAM 中,在 RAM 中,計算機的處理器 CPU 可以直接訪問這些數(shù)據(jù)。

交換空間

交換空間是現(xiàn)代 Linux 系統(tǒng)中的第二種內(nèi)存類型。交換空間的主要功能是當(dāng)全部的 RAM 被占用并且需要更多內(nèi)存時,用磁盤空間代替 RAM 內(nèi)存。

例如,假設(shè)你有一個 8GB RAM 的計算機。如果你啟動的程序沒有填滿 RAM,一切都好,不需要交換。假設(shè)你在處理電子表格,當(dāng)添加更多的行時,你電子表格會增長,加上所有正在運行的程序,將會占用全部的 RAM 。如果這時沒有可用的交換空間,你將不得不停止處理電子表格,直到關(guān)閉一些其他程序來釋放一些 RAM 。

內(nèi)核使用一個內(nèi)存管理程序來檢測最近沒有使用的內(nèi)存塊(內(nèi)存頁)。內(nèi)存管理程序?qū)⑦@些相對不經(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 提供了兩種類型的交換空間。默認(rèn)情況下,大多數(shù) Linux 在安裝時都會創(chuàng)建一個交換分區(qū),但是也可以使用一個特殊配置的文件作為交換文件。交換分區(qū)顧名思義就是一個標(biāo)準(zhǔn)磁盤分區(qū),由 mkswap 命令指定交換空間。

如果沒有可用磁盤空間來創(chuàng)建新的交換分區(qū),或者卷組中沒有空間為交換空間創(chuàng)建邏輯卷,則可以使用交換文件。這只是一個創(chuàng)建好并預(yù)分配指定大小的常規(guī)文件。然后運行 mkswap 命令將其配置為交換空間。除非絕對必要,否則我不建議使用文件來做交換空間。(LCTT 譯注:Ubuntu 近來的版本采用了交換文件而非交換空間,所以我對于這種說法保留看法)

頻繁交換

當(dāng)總虛擬內(nèi)存(RAM 和交換空間)變得快滿時,可能會發(fā)生頻繁交換。系統(tǒng)花了太多時間在交換空間和 RAM 之間做內(nèi)存塊的頁面切換,以至于幾乎沒有時間用于實際工作。這種情況的典型癥狀是:系統(tǒng)變得緩慢或完全無反應(yīng),硬盤指示燈幾乎持續(xù)亮起。

使用 free 的命令來顯示 CPU 負(fù)載和內(nèi)存使用情況,你會發(fā)現(xiàn) CPU 負(fù)載非常高,可能達到系統(tǒng)中 CPU 內(nèi)核數(shù)量的 30 到 40 倍。另一個情況是 RAM 和交換空間幾乎完全被分配了。

事實上,查看 SAR(系統(tǒng)活動報告)數(shù)據(jù)也可以顯示這些內(nèi)容。在我的每個系統(tǒng)上都安裝 SAR ,并將這些用于數(shù)據(jù)分析。

交換空間的正確大小是多少?

許多年前,硬盤上分配給交換空間大小是計算機上的 RAM 的兩倍(當(dāng)然,這是大多數(shù)計算機的 RAM 以 KB 或 MB 為單位的時候)。因此,如果一臺計算機有 64KB 的 RAM,應(yīng)該分配 128KB 的交換分區(qū)。該規(guī)則考慮到了這樣的事實情況,即 RAM 大小在當(dāng)時非常小,分配超過 2 倍的 RAM 用于交換空間并不能提高性能。使用超過兩倍的 RAM 進行交換,比實際執(zhí)行有用的工作的時候,大多數(shù)系統(tǒng)將花費更多的時間。

RAM 現(xiàn)在已經(jīng)很便宜了,如今大多數(shù)計算機的 RAM 都達到了幾十億字節(jié)。我的大多數(shù)新電腦至少有 8GB 內(nèi)存,一臺有 32GB 內(nèi)存,我的主工作站有 64GB 內(nèi)存。我的舊電腦有 4 到 8GB 的內(nèi)存。

當(dāng)操作具有大量 RAM 的計算機時,交換空間的限制性能系數(shù)遠低于 2 倍。Fedora 28 在線安裝指南 定義了當(dāng)前關(guān)于交換空間分配的方法。下面內(nèi)容是我提出的建議。

下表根據(jù)系統(tǒng)中的 RAM 大小以及是否有足夠的內(nèi)存讓系統(tǒng)休眠,提供了交換分區(qū)的推薦大小。建議的交換分區(qū)大小是在安裝過程中自動建立的。但是,為了滿足系統(tǒng)休眠,您需要在自定義分區(qū)階段編輯交換空間。

表 1: Fedora 28 文檔中推薦的系統(tǒng)交換空間

 

 

< 如顯示不全,請左右滑動 >
系統(tǒng)內(nèi)存大小 推薦的交換空間 推薦的交換空間大小(支持休眠模式)
小于 2 GB 2 倍 RAM 3 倍 RAM
2 GB - 8 GB 等于 RAM 大小 2 倍 RAM
8 GB - 64 GB 0.5 倍 RAM 1.5 倍 RAM
大于 64 GB 工作量相關(guān) 不建議休眠模式

 

 

在上面列出的每個范圍之間的邊界(例如,具有 2GB、8GB 或 64GB 的系統(tǒng) RAM),請根據(jù)所選交換空間和支持休眠功能請謹(jǐn)慎使用。如果你的系統(tǒng)資源允許,增加交換空間可能會帶來更好的性能。

當(dāng)然,大多數(shù) Linux 管理員對多大的交換空間量有自己的想法。下面的表2 包含了基于我在多種環(huán)境中的個人經(jīng)歷所做出的建議。這些可能不適合你,但是和表 1 一樣,它們可能對你有所幫助。

表 2: 作者推薦的系統(tǒng)交換空間

 

 

< 如顯示不全,請左右滑動 >
RAM 大小 推薦的交換空間
≤ 2GB 2X RAM
2GB – 8GB = RAM
>8GB 8GB

 

 

這兩個表中共同點,隨著 RAM 數(shù)量的增加,超過某一點增加更多交換空間只會導(dǎo)致在交換空間幾乎被全部使用之前就發(fā)生頻繁交換。根據(jù)以上建議,則應(yīng)盡可能添加更多 RAM,而不是增加更多交換空間。如類似影響系統(tǒng)性能的情況一樣,請使用最適合你的建議。根據(jù) Linux 環(huán)境中的條件進行測試和更改是需要時間和精力的。

向非 LVM 磁盤環(huán)境添加更多交換空間

面對已安裝 Linux 的主機并對交換空間的需求不斷變化,有時有必要修改系統(tǒng)定義的交換空間的大小。此過程可用于需要增加交換空間大小的任何情況。它假設(shè)有足夠的可用磁盤空間。此過程還假設(shè)磁盤分區(qū)為 “原始的” EXT4 和交換分區(qū),而不是使用邏輯卷管理(LVM)。

基本步驟很簡單:

  1. 關(guān)閉現(xiàn)有的交換空間。
  2. 創(chuàng)建所需大小的新交換分區(qū)。
  3. 重讀分區(qū)表。
  4. 將分區(qū)配置為交換空間。
  5. 添加新分區(qū)到 /etc/fstab。
  6. 打開交換空間。

應(yīng)該不需要重新啟動機器。

為了安全起見,在關(guān)閉交換空間前,至少你應(yīng)該確保沒有應(yīng)用程序在運行,也沒有交換空間在使用。freetop 命令可以告訴你交換空間是否在使用中。為了更安全,您可以恢復(fù)到運行級別 1 或單用戶模式。

使用關(guān)閉所有交換空間的命令關(guān)閉交換分區(qū):

  1. swapoff -a

現(xiàn)在查看硬盤上的現(xiàn)有分區(qū)。

  1. fdisk -l

這將顯示每個驅(qū)動器上的分區(qū)表。按編號標(biāo)識當(dāng)前的交換分區(qū)。

使用以下命令在交互模式下啟動 fdisk

  1. fdisk /dev/<device name>

例如:

  1. fdisk /dev/sda

此時,fdisk 是交互方式的,只在指定的磁盤驅(qū)動器上進行操作。

使用 fdiskp 子命令驗證磁盤上是否有足夠的可用空間來創(chuàng)建新的交換分區(qū)。硬盤上的空間以 512 字節(jié)的塊以及起始和結(jié)束柱面編號的形式顯示,因此您可能需要做一些計算來確定分配分區(qū)之間和末尾的可用空間。

使用 n 子命令創(chuàng)建新的交換分區(qū)。fdisk 會問你開始柱面。默認(rèn)情況下,它選擇編號***的可用柱面。如果你想改變這一點,輸入開始柱面的編號。

fdisk 命令允許你以多種格式輸入分區(qū)的大小,包括***一個柱面號或字節(jié)、KB 或 MB 的大小。例如,鍵入 4000M ,這將在新分區(qū)上提供大約 4GB 的空間,然后按回車鍵。

使用 p 子命令來驗證分區(qū)是否按照指定的方式創(chuàng)建的。請注意,除非使用結(jié)束柱面編號,否則分區(qū)可能與你指定的不完全相同。fdisk 命令只能在整個柱面上增量的分配磁盤空間,因此你的分區(qū)可能比你指定的稍小或稍大。如果分區(qū)不是您想要的,你可以刪除它并重新創(chuàng)建它。

現(xiàn)在指定新分區(qū)是交換分區(qū)了 。子命令 t 允許你指定定分區(qū)的類型。所以輸入 t,指定分區(qū)號,當(dāng)它要求十六進制分區(qū)類型時,輸入 82,這是 Linux 交換分區(qū)類型,然后按回車鍵。

當(dāng)你對創(chuàng)建的分區(qū)感到滿意時,使用 w 子命令將新的分區(qū)表寫入磁盤。fdisk 程序?qū)⑼顺?,并在完成修改后的分區(qū)表的編寫后返回命令提示符。當(dāng) fdisk 完成寫入新分區(qū)表時,會收到以下消息:

  1. The partition table has been altered!
  2. Calling ioctl() to re-read partition table.
  3. WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
  4. The kernel still uses the old table.
  5. The new table will be used at the next reboot.
  6. Syncing disks.

此時,你使用 partprobe 命令強制內(nèi)核重新讀取分區(qū)表,這樣就不需要執(zhí)行重新啟動機器。

  1. partprobe

使用命令 fdisk -l 列出分區(qū),新交換分區(qū)應(yīng)該在列出的分區(qū)中。確保新的分區(qū)類型是 “Linux swap”。

修改 /etc/fstab 文件以指向新的交換分區(qū)。如下所示:

  1. LABEL=SWAP-sdaX   swap        swap    defaults        0 0

其中 X 是分區(qū)號。根據(jù)新交換分區(qū)的位置,添加以下內(nèi)容:

  1. /dev/sdaY         swap        swap    defaults        0 0

請確保使用正確的分區(qū)號?,F(xiàn)在,可以執(zhí)行創(chuàng)建交換分區(qū)的***一步。使用 mkswap 命令將分區(qū)定義為交換分區(qū)。

  1. mkswap /dev/sdaY

***一步是使用以下命令啟用交換空間:

  1. swapon -a

你的新交換分區(qū)現(xiàn)在與以前存在的交換分區(qū)一起在線。您可以使用 freetop 命令來驗證這一點。

在 LVM 磁盤環(huán)境中添加交換空間

如果你的磁盤使用 LVM ,更改交換空間將相當(dāng)容易。同樣,假設(shè)當(dāng)前交換卷所在的卷組中有可用空間。默認(rèn)情況下,LVM 環(huán)境中的 Fedora Linux 在安裝過程將交換分區(qū)創(chuàng)建為邏輯卷。您可以非常簡單地增加交換卷的大小。

以下是在 LVM 環(huán)境中增加交換空間大小的步驟:

  1. 關(guān)閉所有交換空間。
  2. 增加指定用于交換空間的邏輯卷的大小。
  3. 為交換空間調(diào)整大小的卷配置。
  4. 啟用交換空間。

首先,讓我們使用 lvs 命令(列出邏輯卷)來驗證交換空間是否存在以及交換空間是否是邏輯卷。

  1. [root@studentvm1 ~]# lvs
  2. LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
  3. home fedora_studentvm1 -wi-ao---- 2.00g
  4. pool00 fedora_studentvm1 twi-aotz-- 2.00g 8.17 2.93
  5. root fedora_studentvm1 Vwi-aotz-- 2.00g pool00 8.17
  6. swap fedora_studentvm1 -wi-ao---- 8.00g
  7. tmp fedora_studentvm1 -wi-ao---- 5.00g
  8. usr fedora_studentvm1 -wi-ao---- 15.00g
  9. var fedora_studentvm1 -wi-ao---- 10.00g
  10. [root@studentvm1 ~]#

你可以看到當(dāng)前的交換空間大小為 8GB。在這種情況下,我們希望將 2GB 添加到此交換卷中。首先,停止現(xiàn)有的交換空間。如果交換空間正在使用,終止正在運行的程序。

  1. swapoff -a

現(xiàn)在增加邏輯卷的大小。

  1. [root@studentvm1 ~]# lvextend -L +2G /dev/mapper/fedora_studentvm1-swap
  2.   Size of logical volume fedora_studentvm1/swap changed from 8.00 GiB (2048 extents) to 10.00 GiB (2560 extents).
  3.   Logical volume fedora_studentvm1/swap successfully resized.
  4. [root@studentvm1 ~]#

運行 mkswap 命令將整個 10GB 分區(qū)變成交換空間。

  1. [root@studentvm1 ~]# mkswap /dev/mapper/fedora_studentvm1-swap
  2. mkswap: /dev/mapper/fedora_studentvm1-swap: warning: wiping old swap signature.
  3. Setting up swapspace version 1, size = 10 GiB (10737414144 bytes)
  4. no label, UUID=3cc2bee0-e746-4b66-aa2d-1ea15ef1574a
  5. [root@studentvm1 ~]#

重新啟用交換空間。

  1. [root@studentvm1 ~]# swapon -a
  2. [root@studentvm1 ~]#

現(xiàn)在,使用 lsblk 命令驗證新交換空間是否存在。同樣,不需要重新啟動機器。

  1. [root@studentvm1 ~]# lsblk
  2. NAME                                 MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
  3. sda                                    8:0    0   60G  0 disk
  4. |-sda1                                 8:1    0    1G  0 part /boot
  5. `-sda2                                 8:2    0   59G  0 part
  6.   |-fedora_studentvm1-pool00_tmeta   253:0    0    4M  0 lvm  
  7.   | `-fedora_studentvm1-pool00-tpool 253:2    0    2G  0 lvm  
  8.   |   |-fedora_studentvm1-root       253:3    0    2G  0 lvm  /
  9.   |   `-fedora_studentvm1-pool00     253:6    0    2G  0 lvm  
  10.   |-fedora_studentvm1-pool00_tdata   253:1    0    2G  0 lvm  
  11.   | `-fedora_studentvm1-pool00-tpool 253:2    0    2G  0 lvm  
  12.   |   |-fedora_studentvm1-root       253:3    0    2G  0 lvm  /
  13.   |   `-fedora_studentvm1-pool00     253:6    0    2G  0 lvm  
  14.   |-fedora_studentvm1-swap           253:4    0   10G  0 lvm  [SWAP]
  15.   |-fedora_studentvm1-usr            253:5    0   15G  0 lvm  /usr
  16.   |-fedora_studentvm1-home           253:7    0    2G  0 lvm  /home
  17.   |-fedora_studentvm1-var            253:8    0   10G  0 lvm  /var
  18.   `-fedora_studentvm1-tmp            253:9    0    5G  0 lvm  /tmp
  19. sr0                                   11:0    1 1024M  0 rom  
  20. [root@studentvm1 ~]#

您也可以使用 swapon -s 命令或 top、free 或其他幾個命令來驗證這一點。

  1. [root@studentvm1 ~]# free
  2.               total        used        free      shared  buff/cache   available
  3. Mem:        4038808      382404     2754072        4152      902332     3404184
  4. Swap:      10485756           0    10485756
  5. [root@studentvm1 ~]#

請注意,不同的命令以不同的形式顯示或要求輸入設(shè)備文件。在 /dev 目錄中訪問特定設(shè)備有多種方式。在我的文章 在 Linux 中管理設(shè)備 中有更多關(guān)于 /dev 目錄及其內(nèi)容說明。

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2017-01-18 22:16:47

Linux交換空間優(yōu)缺點

2015-06-19 11:04:29

linux運維

2012-02-06 09:49:40

2012-05-21 17:02:19

Linux審計

2013-04-18 09:39:51

交換機網(wǎng)絡(luò)連接

2023-01-28 13:39:31

Linuxzram

2024-08-07 13:00:00

2009-12-22 10:46:35

2010-08-02 17:30:47

Linux NFS

2010-01-14 14:57:06

三層交換機技術(shù)

2017-08-24 11:00:56

Linux用戶空間內(nèi)核空間

2010-06-17 15:01:24

Linux查看磁盤空間

2015-06-16 10:41:57

Linux清除內(nèi)存Buffer

2024-12-06 11:58:16

2012-05-14 14:09:53

Linux內(nèi)核調(diào)度系統(tǒng)

2010-01-07 09:42:02

Linux遠程監(jiān)控系統(tǒng)

2010-10-27 16:33:39

Oracle查看表空間

2010-10-29 10:22:21

Oracle表空間

2023-04-18 23:31:59

Linux磁盤系統(tǒng)

2009-12-24 15:59:58

Linux hal
點贊
收藏

51CTO技術(shù)棧公眾號