中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux系統交換空間的示例分析

發布時間:2021-07-14 11:28:27 來源:億速云 閱讀:154 作者:小新 欄目:服務器

小編給大家分享一下Linux系統交換空間的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

交換空間是當今計算的一個共同方面,不管操作系統如何。Linux使用交換空間來增加主機可用的虛擬內存量。它可以在常規文件系統或邏輯卷上使用一個或多個專用交換分區或交換文件。

在一臺典型的計算機中有兩種基本的內存類型。第一種類型,隨機存取存儲器(RAM),用于存儲數據和程序,而這些數據和程序正在由計算機積極使用。除非程序和數據存儲在RAM中,否則計算機無法使用它們。RAM是易失性內存;也就是說,如果關閉計算機,存儲在RAM中的數據就會丟失。
硬盤是用于長期存儲數據和程序的磁性介質.磁性介質是非易失性的;存儲在磁盤上的數據即使從計算機中移除電源也保持不變。CPU(中央處理單元)不能直接訪問硬盤上的程序和數據;必須首先將其復制到RAM中,這就是CPU可以訪問其編程指令和這些指令要操作的數據的地方。在引導過程中,計算機將特定的操作系統程序(如內核、init或systemd)以及硬盤驅動器中的數據復制到RAM中,由計算機的處理器CPU直接訪問。

交換空間

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

例如,假設您有一個具有8GB RAM的計算機系統。如果您啟動的程序不填充該RAM,一切都是好的,不需要交換。但是假設當您添加更多的行時,您正在處理的電子表格會增長,并且,再加上正在運行的所有其他內容,現在將填充所有的RAM。如果沒有可用的交換空間,您將不得不停止電子表格的工作,直到您可以通過關閉一些其他程序來釋放一些有限的RAM。

內核使用內存管理程序來檢測最近沒有使用內容的內存塊,也就是頁面。內存管理程序將這些相對較少使用的內存頁交換到專門指定用于“分頁”或交換的硬盤驅動器上的一個特殊分區。這將釋放RAM,并為將更多數據輸入電子表格騰出空間。內核的內存管理代碼會跟蹤那些交換到硬盤上的內存頁,如果需要的話,可以將它們分頁回RAM。

Linux計算機中的內存總量是RAM加上交換空間,稱為虛擬存儲器.

Linux交換的類型

Linux提供了兩種類型的交換空間。默認情況下,大多數Linux安裝都會創建交換分區,但也可以使用特殊配置的文件作為交換文件。交換分區正是它的名稱所暗示的-一個標準磁盤分區,由mkswap命令。

如果沒有可用的磁盤空間來創建新的交換分區,或者在卷組中可以為交換空間創建邏輯卷,則可以使用交換文件。這只是一個常規文件,它被創建并預先分配到指定的大小。然后mkswap命令將其配置為交換空間。除非絕對必要,否則我不建議使用文件作為交換空間。

震蕩

當整個虛擬內存(包括RAM和交換空間)幾乎滿時,就會發生震蕩。系統在交換空間和RAM之間花費大量的時間分頁內存塊,然后再分頁,這樣就只剩下很少的時間用于實際的工作了。這方面的典型癥狀是顯而易見的:系統變得緩慢或完全沒有響應,硬盤驅動器的活動幾乎不斷地亮著。

如果您能夠設法發出如下命令free這顯示了CPU負載和內存使用情況,您將看到CPU負載非常高,可能是系統中CPU核心數量的30至40倍。另一個癥狀是RAM和交換空間幾乎都被完全分配了。

之后,查看SAR(系統活動報告)數據也可以顯示這些癥狀。我在我工作的每一個系統上安裝了SAR,并使用它進行修復后的法醫分析。

適當的交換空間是多少?

許多年前,應該在硬盤上分配的交換空間數量的經驗法則是計算機中安裝的RAM數量的2倍(當然,大多數計算機的RAM是以KB或MB計算的)。因此,如果計算機有64 KB的RAM,128 KB的交換分區將是最佳大小。這條規則考慮到了這樣一個事實,即當時RAM的大小通常很小,為交換空間分配超過2X的RAM并不能提高性能。由于交換內存超過兩倍,大多數系統花費的時間比實際執行有用的工作花費的時間更多。

RAM已經成為一種廉價的商品,現在大多數電腦都有大量的RAM,可以擴展到幾十GB。我的大多數較新的計算機至少有8GB的RAM,一臺有32 GB,我的主工作站有64 GB。我的舊電腦有4到8GB的內存。

當處理具有大量RAM的計算機時,交換空間的限制性能因子遠遠低于2X乘法器。Fedora 28,定義了當前交換空間分配的思路。我在下面列出了該文件中的一些討論和建議表。

下表提供了交換分區的推薦大小,這取決于系統中的RAM數量以及是否需要為系統冬眠提供足夠的內存。推薦的交換分區大小是在安裝期間自動確定的。但是,為了允許休眠,您需要在自定義分區階段編輯交換空間。

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

系統RAM數量推薦交換空間推薦與休眠的交換
小于2GBRAM數量的2倍RAM數量的3倍
2GB-8GB等于RAM的數量RAM數量的2倍
8 GB-64 GB內存數量的0.5倍1.5倍的RAM數量
超過64 GB工作負荷依賴不建議冬眠

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

當然,大多數Linux管理員對于交換空間的適當數量有自己的想法-以及幾乎所有其他的東西。下表2是我根據個人在多種環境中的經驗提出的建議。這些可能不適用于您,但與表1一樣,它們可能會幫助您開始工作。

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

RAM數量推薦交換空間
≤2GB2x RAM
2GB-8GB=RAM
>8GB8GB

這兩個表中的一個考慮因素是,隨著RAM數量的增加,超過某個點,添加更多的交換空間只會在交換空間幾乎被填滿之前就會導致混亂。如果您在遵循這些建議的同時,虛擬內存太少,則應該在可能的情況下添加更多的RAM,而不是更多的交換空間。與影響系統性能的所有建議一樣,請使用對特定環境最有效的建議。這將需要時間和精力來根據您的Linux環境中的條件進行實驗和進行更改。

將更多的交換空間添加到非lvm磁盤環境中。

由于已經安裝了Linux的主機上對交換空間的需求發生了變化,可能需要修改為系統定義的交換空間的數量。此過程可用于任何需要增加交換空間的一般情況。它假定有足夠的可用磁盤空間。此過程還假定磁盤在“原始”EXT 4和交換分區中分區,不使用邏輯卷管理(LVM)。

要采取的基本步驟很簡單:

  1. 關閉現有的交換空間。

  2. 創建一個所需大小的新交換分區。

  3. 重新讀取分區表。

  4. 將分區配置為交換空間。

  5. 添加新的分區/etc/fSTAB。

  6. 打開交換。

不應該需要重新啟動。

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

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

swapoff -a

現在,在硬盤上顯示現有分區。

fdisk -l

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

啟動fdisk在與命令交互的模式下:

fdisk /dev/<device name>

例如:

fdisk /dev/sda

在這一點上,fdisk現在是交互式的,并且將只在指定的磁盤驅動器上運行。

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

使用n命令創建一個新的交換分區。fdisk會問你啟動汽缸的問題。默認情況下,它選擇編號最低的可用圓柱.如果希望更改,請鍵入起始氣缸的數目。

這,這個,那,那個fdisk命令現在允許您以多種格式輸入分區的大小,包括最后一個圓柱號或以字節、KB或MB為單位的大小。輸入4000米,這將在新分區上提供大約4GB的空間(例如),然后按Enter鍵。

使用p子命令,以驗證分區是否按您指定的方式創建。注意,除非使用結束圓柱號,否則分區可能不是您指定的。這,這個,那,那個fdisk命令只能在整個圓柱上以增量方式分配磁盤空間,因此分區可能比指定的要小或大一些。如果分區不是您想要的,您可以刪除它并再次創建它。

現在有必要指定新分區為交換分區。分命令t允許您指定分區的類型。所以進入t,指定分區號,當它請求十六進制代碼分區類型時,類型82,即Linux交換分區類型,然后按Enter鍵。

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

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

此時,您可以使用partprobe命令強制內核重新讀取分區表,以便不需要執行重新啟動。

partprobe

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

為了指向新的交換分區,必須修改/etc/fSTAB文件。現有的行可能如下所示:

LABEL=SWAP-sdaX  swap    swap  defaults   0 0

哪里X是分區號。根據新交換分區的位置,添加一個類似于此的新行:

/dev/sdaY     swap    swap  defaults   0 0

確保使用正確的分區號。現在,您可以執行創建交換分區的最后一步。使用mkswap命令將分區定義為交換分區。

mkswap /dev/sdaY

最后一步是使用以下命令打開交換:

swapon -a

您的新交換分區現在與以前存在的交換分區一起聯機。您可以使用free或top驗證這一點的命令。

將交換添加到lvm磁盤環境中。

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

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

  1. 關掉所有交換。

  2. 增加指定用于交換的邏輯卷的大小。

  3. 將調整大小的卷配置為交換空間。

  4. 打開交換。

首先,讓我們使用lvs命令(列出邏輯卷)。

[root@studentvm1 ~]# lvs
 LV   VG        Attr    LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
 home  fedora_studentvm1 -wi-ao---- 2.00g                           
 pool00 fedora_studentvm1 twi-aotz-- 2.00g        8.17  2.93              
 root  fedora_studentvm1 Vwi-aotz-- 2.00g pool00    8.17                  
 swap  fedora_studentvm1 -wi-ao---- 8.00g                           
 tmp  fedora_studentvm1 -wi-ao---- 5.00g                           
 usr  fedora_studentvm1 -wi-ao---- 15.00g                           
 var  fedora_studentvm1 -wi-ao---- 10.00g                           
[root@studentvm1 ~]#

您可以看到當前交換大小為8GB。在本例中,我們希望將2GB添加到此交換卷中。首先,停止現有的交換。如果正在使用交換空間,則可能必須終止正在運行的程序。

swapoff -a

現在增加邏輯卷的大小。

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

運行mkswap命令將整個10 GB分區放入交換空間。

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

打開掉包。

[root@studentvm1 ~]# swapon -a
[root@studentvm1 ~]#

現在,使用List塊設備命令驗證新的交換空間是否存在。同樣,不需要重新啟動。

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

您還可以使用swapon -s命令,或top, free,或者其他幾個命令中的任何一個來驗證這一點。

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

注意,不同的命令以不同的形式顯示或要求設備特殊文件作為輸入。在/dev目錄中訪問特定設備的方式有很多種。

看完了這篇文章,相信你對“Linux系統交換空間的示例分析”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

根河市| 广平县| 昆山市| 昌都县| 福鼎市| 江安县| 彭水| 伊春市| 镇雄县| 宣汉县| 定结县| 从化市| 林州市| 海安县| 科技| 琼海市| 钦州市| 五常市| 元阳县| 四川省| 徐汇区| 嫩江县| 阜康市| 泰宁县| 田阳县| 天津市| 太谷县| 肇东市| 咸宁市| 耒阳市| 德昌县| 平昌县| 三原县| 独山县| 从江县| 双柏县| 昌吉市| 青海省| 重庆市| 雷波县| 漳州市|