成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux系統上交換空間的介紹

系統 Linux
當今無論什么操作系統交換空間是非常常見的。Linux 使用交換空間來增加主機可用的虛擬內存。它可以在常規文件或邏輯卷上使用一個或多個專用交換分區或交換文件。

 [[246065]]

學習如何修改你的系統上的交換空間的容量,以及你到底需要多大的交換空間。

當今無論什么操作系統交換Swap空間是非常常見的。Linux 使用交換空間來增加主機可用的虛擬內存。它可以在常規文件或邏輯卷上使用一個或多個專用交換分區或交換文件。

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

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

交換空間

交換空間是現代 Linux 系統中的第二種內存類型。交換空間的主要功能是當全部的 RAM 被占用并且需要更多內存時,用磁盤空間代替 RAM 內存。

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

內核使用一個內存管理程序來檢測最近沒有使用的內存塊(內存頁)。內存管理程序將這些相對不經常使用的內存頁交換到硬盤上專門指定用于“分頁”或交換的特殊分區。這會釋放 RAM,為輸入電子表格更多數據騰出了空間。那些換出到硬盤的內存頁面被內核的內存管理代碼跟蹤,如果需要,可以被分頁回 RAM。

Linux 計算機中的內存總量是 RAM + 交換分區,交換分區被稱為虛擬內存.

Linux 交換分區類型

Linux 提供了兩種類型的交換空間。默認情況下,大多數 Linux 在安裝時都會創建一個交換分區,但是也可以使用一個特殊配置的文件作為交換文件。交換分區顧名思義就是一個標準磁盤分區,由 mkswap 命令指定交換空間。

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

頻繁交換

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

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

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

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

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

RAM 現在已經很便宜了,如今大多數計算機的 RAM 都達到了幾十億字節。我的大多數新電腦至少有 8GB 內存,一臺有 32GB 內存,我的主工作站有 64GB 內存。我的舊電腦有 4 到 8GB 的內存。

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

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

表 1: Fedora 28 文檔中推薦的系統交換空間

 

 

< 如顯示不全,請左右滑動 >
系統內存大小 推薦的交換空間 推薦的交換空間大?。ㄖС中菝吣J剑?/strong>
小于 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 工作量相關 不建議休眠模式

 

 

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

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

表 2: 作者推薦的系統交換空間

 

 

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

 

 

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

向非 LVM 磁盤環境添加更多交換空間

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

基本步驟很簡單:

  1. 關閉現有的交換空間。
  2. 創建所需大小的新交換分區。
  3. 重讀分區表。
  4. 將分區配置為交換空間。
  5. 添加新分區到 /etc/fstab。
  6. 打開交換空間。

應該不需要重新啟動機器。

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

使用關閉所有交換空間的命令關閉交換分區:

  1. swapoff -a

現在查看硬盤上的現有分區。

  1. fdisk -l

這將顯示每個驅動器上的分區表。按編號標識當前的交換分區。

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

  1. fdisk /dev/<device name>

例如:

  1. fdisk /dev/sda

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

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

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

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

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

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

當你對創建的分區感到滿意時,使用 w 子命令將新的分區表寫入磁盤。fdisk 程序將退出,并在完成修改后的分區表的編寫后返回命令提示符。當 fdisk 完成寫入新分區表時,會收到以下消息:

  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 命令強制內核重新讀取分區表,這樣就不需要執行重新啟動機器。

  1. partprobe

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

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

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

其中 X 是分區號。根據新交換分區的位置,添加以下內容:

  1. /dev/sdaY         swap        swap    defaults        0 0

請確保使用正確的分區號?,F在,可以執行創建交換分區的***一步。使用 mkswap 命令將分區定義為交換分區。

  1. mkswap /dev/sdaY

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

  1. swapon -a

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

在 LVM 磁盤環境中添加交換空間

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

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

  1. 關閉所有交換空間。
  2. 增加指定用于交換空間的邏輯卷的大小。
  3. 為交換空間調整大小的卷配置。
  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 ~]#

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

  1. swapoff -a

現在增加邏輯卷的大小。

  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 分區變成交換空間。

  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 ~]#

現在,使用 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 ~]#

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

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2017-01-18 22:16:47

Linux交換空間優缺點

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

交換機網絡連接

2023-01-28 13:39:31

Linuxzram

2009-12-22 10:46:35

2010-08-02 17:30:47

Linux NFS

2024-08-07 13:00:00

2010-01-14 14:57:06

三層交換機技術

2017-08-24 11:00:56

Linux用戶空間內核空間

2010-06-17 15:01:24

Linux查看磁盤空間

2015-06-16 10:41:57

Linux清除內存Buffer

2024-12-06 11:58:16

2012-05-14 14:09:53

Linux內核調度系統

2010-01-07 09:42:02

Linux遠程監控系統

2010-10-29 10:22:21

Oracle表空間

2010-10-27 16:33:39

Oracle查看表空間

2023-04-18 23:31:59

Linux磁盤系統

2010-02-25 18:09:41

Linux系統軟件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 特级做a爱片免费69 精品国产鲁一鲁一区二区张丽 | 国产精彩视频 | 国产无人区一区二区三区 | 午夜视频一区 | 日韩免费中文字幕 | 国产福利在线 | 羞羞的视频免费在线观看 | 久久久久久国产精品久久 | 日韩欧美精品在线 | 亚洲精品在线国产 | 国家一级黄色片 | 亚洲一级毛片 | 一区二区三区国产精品 | 91精品国产麻豆 | 国产福利在线播放 | 久夜精品 | 久久成人免费 | 欧美日韩三级视频 | 爱爱免费视频网站 | 中文字幕av第一页 | 99re在线视频免费观看 | 日韩一区二区在线播放 | 国产农村妇女毛片精品久久麻豆 | 一区二区成人 | 国产99久久精品一区二区永久免费 | 中文字幕久久精品 | 日本欧美在线 | 欧美激情一区二区 | 亚洲免费在线 | 国产视频一区二区 | 亚洲97| 三级免费| 欧美小视频在线观看 | 日韩成人av在线 | 粉嫩国产精品一区二区在线观看 | 久久99精品久久久久久国产越南 | 九九亚洲 | 久久精品亚洲欧美日韩久久 | 精品中文字幕久久 | 成人在线中文字幕 | 亚洲精品99 |