LINUX擴充套件虛擬記憶體

2021-08-28 14:24:17 字數 2728 閱讀 6370

1.檢查現有交換空間的大小

如果你想檢查你現有虛擬記憶體的大小,可以使用命令『free -m 』

[root@chenfancentos ~]# free -m

total used free shared buffers cached

mem: 988 164 823 0 26 48

-/+ buffers/cache: 90 898

swap: 1999 0 1999

根據現有交換空間的大小,選擇合適的拓展大小。

2.建立適合的swapfile

我們經常可以使用"dd"命令來建立乙個檔案,用 「if」 指定源,基本上除了 「/dev/zero」 外基本上不會寫別的,而/dev/zero 是unix系統特有的乙個檔案。「of」 指定目標檔案, 「bs」 定義塊的大小, 「count」 定義塊的數量,這兩個引數的多少決定了目標檔案的大小。

[root@chenfancentos ~]# dd if=/dev/zero of=/tmp/swapfile  bs=300m count=1

記錄了1+0 的讀入

記錄了1+0 的寫出

314572800位元組(315 mb)已複製,13.9027 秒,22.6 mb/秒

[root@chenfancentos ~]# du -h /tmp/swapfile

300m /tmp/swapfile

可以看到新生成了乙個swapfile檔案,大小為300m.

3.格式化剛才建立的swapfile

[root@chenfancentos ~]# mkswap -f /tmp/swapfile

setting up swapspace version 1, size = 307196 kib

no label, uuid=c4e2a8b1-fa09-41ab-bcbf-63c273ed9598

可以看到格式化後成功的uuid資訊

4.實現開機自動掛載交換檔案

我們在/etc/fstab中增加一下條目 /tmp/swapfile swap swap defaults 0 0,就能實現開機自動掛載。

[root@chenfancentos ~]# cat /etc/fstab

# /etc/fstab

# created by anaconda on sat apr 2 19:37:01 2016

## accessible filesystems, by reference, are maintained under '/dev/disk'

# see man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#uuid=301b2f9f-91d3-47dd-8a43-d377cba1cd5c / ext4 defaults 1 1

uuid=812455f9-a63f-4b09-9336-05e3ada6f9a7 /boot ext4 defaults 1 2

uuid=416480d0-662c-406c-a328-b4c2f370577b swap swap defaults 0 0

tmpfs /dev/shm tmpfs defaults 0 0

devpts /dev/pts devpts gid=5,mode=620 0 0

sysfs /sys sysfs defaults 0 0

proc /proc proc defaults 0 0

/tmp/swapfile swap swap defaults 0 0

就這樣即使後續重啟,也能做到自動掛載。

5.啟用swapfile,檢視虛擬記憶體大小

[root@chenfancentos ~]# swapon /tmp/swapfile

[root@chenfancentos ~]# free -m

total used free shared buffers cached

mem: 988 136 852 0 10 50

-/+ buffers/cache: 74 913

swap: 2299 0 2299

可以興奮的看到,相對於初始的虛擬記憶體,現在增加了300m。是不是有點激動,想要體驗linux之美,跟著山醫的小凡一起動手實驗。

Linux虛擬記憶體

linux採用虛擬段頁式儲存方式來管理記憶體,程式的基本邏輯儲存單元,也可以說是程式段。linux中有四個段,段,資料段,bss段,堆疊段。虛擬位址從低到高依次是 段,資料段,bss段,堆疊段。其中 段為程式本身 二進位制指令 資料段為 中初始化了的全域性變數和靜態變數,bss段為為初始化的全域性變...

Linux虛擬記憶體

一 虛擬記憶體 1 系統會為每個程序分4g的虛擬記憶體空間。32個0 32個1 位址範圍。2 使用者只能使用虛擬位址,無法直接使用物理記憶體。3 虛擬位址與物理記憶體進行對映才能使用,否則就會產生段錯誤。4 虛擬位址與物理記憶體的對映由作業系統動態維護。5 讓使用者使用虛擬位址一方面為了安全,另一方...

linux記憶體與虛擬記憶體

linux支援虛擬記憶體 記憶體 記憶體條 物理記憶體 實際存在 程式中的記憶體 虛擬記憶體 os對映出來的 直接對映 檔案對映 提速 檔案io操作 耗時長 記憶體操作 耗時短 mmap函式可以把檔案對映成虛擬記憶體,像操作記憶體一樣去操作檔案。mmap函式可以直接對映一塊虛擬記憶體。include...